설치
sudo apt install vsftpd -y
#체크&설정변경
sudo systemctl status vsftpd
sudo systemctl stop vsftpd
sudo nano /etc/vsftpd.conf
/etc/vsftpd.conf 내용
listen=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
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port= 65000
pasv_max_port= 65535
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
utf8_filesystem=YES
- listen=YES: vsftpd를 독립 실행형 모드로 실행합니다. 이 모드에서는 inetd와 같은 슈퍼서버가 필요하지 않습니다12.
- anonymous_enable=NO: 익명 사용자의 FTP 접근을 비활성화합니다. 보안을 위해 일반적으로 비활성화하는 것이 좋습니다5.
- local_enable=YES: 로컬 사용자 계정으로 로그인할 수 있도록 허용합니다. /etc/passwd에 정의된 사용자 계정을 통해 접근이 가능합니다5.
- write_enable=YES: 서버에 파일 업로드 및 디렉토리 생성 등 쓰기 작업을 허용합니다5.
- local_umask=022: 로컬 사용자가 파일을 생성할 때 적용되는 기본 권한 마스크입니다. 022는 파일 권한을 755로 설정합니다.
- dirmessage_enable=YES: 디렉토리에 접속할 때마다 .message 파일의 내용을 표시합니다.
- use_localtime=YES: 서버의 로컬 시간을 사용합니다.
- xferlog_enable=YES: 전송 로그를 활성화하여 파일 전송 내역을 기록합니다.
- connect_from_port_20=YES: 데이터 연결에 포트 20을 사용하도록 설정합니다. 이는 FTP 표준에 맞추기 위한 설정입니다5.
- chroot_local_user=YES: 로컬 사용자를 자신의 홈 디렉토리로 제한하여 보안을 강화합니다. 사용자가 홈 디렉토리를 벗어나지 못하게 합니다5.
- allow_writeable_chroot=YES: chroot 환경에서 쓰기 가능한 디렉토리를 허용합니다. 보안 위험이 있을 수 있으므로 주의가 필요합니다.
- pasv_enable=YES: PASV 모드를 활성화하여 클라이언트가 서버에 연결할 때 패시브 모드를 사용할 수 있도록 합니다.
- pasv_min_port=65000, pasv_max_port=65535: 패시브 모드에서 사용할 포트 범위를 지정합니다. 방화벽 설정 시 이 포트 범위를 열어야 합니다.
- secure_chroot_dir=/var/run/vsftpd/empty: vsftpd가 보안 목적으로 사용하는 빈 디렉토리입니다.
- pam_service_name=vsftpd: PAM 인증에 사용할 서비스 이름을 지정합니다.
- rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem, rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key: SSL 인증서와 개인 키 파일의 경로를 지정합니다.
- ssl_enable=NO: SSL/TLS 암호화를 비활성화합니다. 보안을 위해 활성화하는 것이 좋습니다4.
- utf8_filesystem=YES: UTF-8 인코딩을 사용하는 파일 시스템을 지원합니다.
재시작
#재시작
sudo systemctl restart vsftpd
#체크
sudo systemctl status vsftpd
방화벽
1. ufw
sudo apt install ufw
sudo ufw allow 20/tcp
sudo ufw allow 21/tcp
sudo ufw allow 65000:65535/tcp
sudo ufw allow 22/tcp
2. iptables
#iptable 설정 저장하게하는 패키지 설치
sudo apt install iptables-persistent
sudo iptables -L
#포트추가
sudo iptables -A INPUT -p tcp --dport 20 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 21 -j ACCEPT
sudo iptables -A INPUT -p tcp -m multiport 65000:65535 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 65000:65535 -j ACCEPT
#포트의 확인
sudo iptables -nL
sudo iptables --list
#변경된 포트 저장
sudo netfilter-persistent save
# vsftpd 재시작
sudo systemctl restart vsftpd
# vsftpd 상태 확인
sudo systemctl status vsftpd
728x90
'서버 > Package' 카테고리의 다른 글
qbittorrent 로그인 블락 (0) | 2024.11.07 |
---|---|
bpytop 모니터링 (0) | 2024.10.24 |
ftp를 위한 가상 마운트-바인드 (0) | 2024.10.19 |
fastfetch - neofetch 포크 (0) | 2024.10.19 |
screen 사용법과 팁 (0) | 2024.10.18 |