ubuntu 18.04 vsftpd 설치 셋팅!
명령어 복붙만 해도 해결! 설명 달아둘태니 원하는데로 커스텀해보자!
sudo apt-get install vsftpd
vsftpd 설치
sudo systemctl stop vsftpd.service
vsftpd 서비스 종료
sudo systemctl start vsftpd.service
vsftpd 서비스 시작
sudo systemctl enable vsftpd.service
ubuntu 재시작 될시 같이 실행되게 설정
sudo adduser ftpUser
ftp를 사용을 유저를 생성한다
sudo passwd ftpUser
유저 비밀번호를 변경한다
sudo mkdir /home/ftpUser/ftp
ftp를 사용할 디렉토리를 만들어준다
sudo chown nobody:nogroup /home/ftpUser/ftp
그룹을 설정해준다.
sudo chmod a-w /home/ftpUser/ftp/
디렉토리의 권한을 설정해준다. chomod 다음이 권한 설정. 형식은 755라던지 a-w라던지 다양함.
sudo mkdir /home/ftpUser/ftp/files
ftp에서 사용할 files 디렉토리를 만들어준다. 명칭은 자유롭게 해도 무관
sudo chown ftpUser:ftpUser /home/tongchun/ftp/files
files 폴더의 소유자를 지정해준다. 방금 만들어준 id로 할것.
vsftpd의 설정을 위한 셋팅
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
conf파일을 건드리기전 원본을 미리 백업해둔다. .orig대신 다른것을 써도 무방.
sudo vim /etc/vsftpd.conf
설정파일 수정을 위해 오픈. vim가 없으면 vi를 써도 되는데 아마 있을거임.
default 설정을 전부 지워준다.
gg를 입력하면 첫줄로 이동되며 dG를 입력하면 현재줄 이하를 전부 제거한다.
한줄씩 제거하고싶으면 dd를 입력하면 된다.
화면에는 아무것도 안써지니 당황하지말고 일단 눌러볼것.
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
pasv_enable=Yes
pasv_min_port=10000
pasv_max_port=11000
user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
다 지웠으면 해당 내용을 복사해서 그대로 붙여넣으면 된다.
vim에서 i를 눌러 입력상태로 전환후 ctrl + c 한것을 마우스 우클릭으로 붙여넣을 수 있음.
이제 접속 가능한 userlist를 만들어줘야한다.
sudo vim /etc/vsftpd.userlist
그 후 내가 방금 만든 id를 입력한다.
ftpUser
입력했으면 저장하고 종료.
vim 사용법은 알거라고 생각하니 생략.
sudo systemctl restart vsftpd
설정을 변경했으니 vsftpd를 재실행해준다.
이것만 해도 될거라 생각하지만 보안 이슈가 있을수도 있으니
ssl/tls를 설정해주겠다.
sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem
pem 파일을 만들 디렉토리를 생성 후 만들어 준다.
뭐라뭐라 뜨는데 그냥 밑에거 그대로 복붙해도 된다.
Country Name (2 letter code) [AU]:KR
State or Province Name (full name) [Some-State]:Gyeonggi-do
Locality Name (eg, city) []:Seongnam
Organization Name (eg, company) [Internet Widgits Pty Ltd]:nGle
Organizational Unit Name (eg, section) []:platform
Common Name (e.g. server FQDN or YOUR name) []:ftpUser
Email Address []:ftpUser@ngle.co.kr
해당 항목을 그대로 복붙해도 문제는 없다.
sudo vim /etc/vsftpd.conf
이제 설정한 ssl/tcl을 conf파일에 추가해줘야 한다. 오픈!
rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
해당 내용을 제일 아래에 넣어주면 된다.
sudo systemctl restart vsftpd
설정이 완료되었으니 재시작 후 ftp를 사용하면 된다.
이렇게 설정했는데도 안될경우
1. port의 확인
2. 서버 방화벽 확인
3. iptable 확인
등을 통해 해결하면 되겠다.
참고로 conf파일은 실제 운영할 경우 추가되거나 변경된 설정이 있는데
listen=NO
listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
ascii_upload_enable=YES
ascii_download_enable=YES
pasv_enable=Yes
pasv_min_port=9900
pasv_max_port=9999
pasv_address=192.168.0.44
# address는 ftp 서버 ip를 입력하면 된다.
# 서버가 내부라면 router ip를 지정하면 됨.
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO
rsa_cert_file=/etc/cert/vsftpd.pem
rsa_private_key_file=/etc/cert/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH
이것을 넣어주면 된다.
vsftp에 대한 자세한 레퍼런스는
'IT이야기 > ubuntu' 카테고리의 다른 글
ubuntu 현재시간 확인과 시간 변경하는 법! (0) | 2019.11.08 |
---|---|
ubuntu] mysql 재설치하기! (0) | 2019.11.07 |
ubuntu 18.04 mysql 설치 및 기본 셋팅 (0) | 2019.08.22 |
ubuntu mysql or maria db 삭제법 (0) | 2019.08.22 |
ubuntu 16.04 mysql workbench 접속 (0) | 2019.08.22 |