웹사이트 검색

데비안 11에서 vsftpd FTP 서버를 설치하고 TLS로 보호하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 데비안 11(Bullseye)
  • 데비안 6(Squeeze)

이 페이지에서

  1. 전제 조건
  2. 1. Vsftpd 설치
  3. 2. FTP 사용자 생성 및 FTP 로그인 구성
  4. 3. FTP 사용자 디렉토리 생성
  5. 4. Vsftpd 구성
  6. 5. 방화벽에서 vsftpd 허용 및 vsftpd 서버 액세스\n
  7. 6. SSL/TLS를 사용하여 보안 Vsftpd\n
  8. 7. SSL/TLS를 통한 FTP 액세스\n
  9. 결론

파일 전송 프로토콜 또는 FTP는 매우 오래되고 가장 잘 알려진 네트워크 프로토콜 중 하나입니다. 요즘 SFTP나 SCP에 비해 안전하지 않지만 여전히 서버와 클라이언트 간에 파일을 전송할 때 많은 사용자가 가장 먼저 선택합니다. FTP는 어떤 유형의 암호화도 없이 사용자 자격 증명과 함께 데이터를 전송하기 때문에 안전하지 않은 것으로 알려져 있습니다.

요즘에는 FTPD, VSFTPD, PROFTPD 및 pureftpd와 같은 광범위한 오픈 소스 FTP 서버를 사용할 수 있습니다. 그 중에서도 VSFTPD는 두 시스템 간에 파일을 전송하는 데 매우 안전하고 빠르며 가장 광범위하게 사용되는 프로토콜입니다.

VSFPD는 SSL을 지원하는 "매우 안전한 파일 전송 프로토콜 데몬"으로도 알려져 있습니다. , IPv6, 명시적 및 암시적 FTPS.

이 가이드에서는 Debian 11에 vsftpd FTP 서버를 설치하는 방법을 보여줍니다.

전제 조건

Debian 11을 실행하는 서버.
sudo 권한이 있는 루트가 아닌 사용자.

1. Vsftpd 설치

설치를 시작하기 전에 터미널에서 다음 명령을 실행하여 Debian 11 서버를 업데이트하십시오.

sudo apt update -y
sudo apt upgrade -y

데비안에는 매우 큰 저장소가 있으며 vsftpd 패키지는 공식 저장소에서 사용할 수 있으므로 다음 명령을 실행하여 vsftpd를 쉽게 설치할 수 있습니다.

sudo apt install vsftpd -y

패키지 설치 후 Vsftpd 서비스를 시작하고 서비스 상태를 확인하고 시작 시 서비스를 활성화합니다.

sudo systemctl start vsftpd

sudo systemctl status vsftpd

systemctl enable vsftpd.service

2. FTP 사용자 생성 및 FTP 로그인 구성

이제 FTP용 새 사용자 계정을 만듭니다. 이 사용자를 사용하여 나중에 FTP 서버에 로그인합니다.

sudo adduser sohan

vsftpd.userlist 파일에 추가된 사용자는 FTP 서버에 액세스할 수 있는 권한이 있습니다.

다음으로 vsftpd 사용자 목록에 sohan 사용자를 추가해야 합니다. 파일을 열고 다음 명령을 실행하여 사용자를 추가합니다.

echo "sohan" | sudo tee -a  /etc/vsftpd.userlist

3. FTP 사용자 디렉토리 생성

다음으로 FTP 사용자를 위한 FTP 디렉토리를 생성하고 다음 명령을 사용하여 소유권을 설정해야 합니다.

sudo mkdir -p /home/sohan/ftp_directory

sudo chown nobody:nogroup /home/sohan/ftp_directory

sudo chmod a-w /home/sohan/ftp_directory

이제 파일을 업로드할 수 있는 디렉토리를 생성하고 다음 명령을 실행하여 sohan 사용자에게 소유권을 부여합니다.

sudo mkdir -p /home/sohan/ftp_directory/ftp_data
sudo chown sohan:sohan /home/sohan/ftp_directory/ftp_data
cd /home/sohan/ftp_directory/
chmod -R 777 ftp_data

4. Vsftpd 구성

다음으로 FTP 서버를 설정하기 위해 몇 가지 기본 매개변수를 변경해야 합니다.

먼저 원본 vsftpd 구성 파일의 백업 복사본을 만듭니다.

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

FTP 서버에서는 익명 사용자에게 기본적으로 액세스 권한이 부여됩니다. FTP 서버의 보안을 강화하기 위해 익명 사용자 로그인을 비활성화하고 특정 사용자에게만 액세스 권한을 부여합니다.

다음으로 vsftpd.conf 파일을 열고 아래와 같이 변경합니다.

vim /etc/vsftpd.conf
anonymous_enable=NO

local_enable=YES

구성에서 변경해야 할 몇 가지 다른 사항이 있습니다. First Open vsftpd.conf

sudo vim /etc/vsftpd.conf

다음으로 vsftpd.conf에 다음 줄이 포함되어 있는지 확인하십시오.

listen=NO
listen_ipv6=YES
anonymous_enable=NO
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
user_sub_token=$USER
local_root=/home/$USER/ftp_directory
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

파일을 저장하고 닫습니다. 필요에 따라 위의 구성을 변경할 수 있습니다.

이제 vsftpd 서비스를 다시 시작하고 다음 명령을 실행하여 서비스 상태를 확인하십시오.

sudo systemctl restart vsftpd


다음으로 터미널에서 다음 명령을 실행하여 vsftpd 서비스가 실행 상태인지 확인합니다.

sudo systemctl status vsftpd

5. 방화벽에서 vsftpd 허용 및 vsftpd 서버 액세스

그런 다음 방화벽을 사용하는 경우 다음 명령을 실행하여 포트 21과 포트 22를 허용합니다.

sudo ufw allow 21/tcp

sudo ufw allow 22/tcp

그런 다음 방화벽을 다시 로드하여 변경 사항을 적용합니다.

sudo ufw reload

다음으로 FileZilla와 같은 FTP 클라이언트를 열고 프로토콜, 호스트, 사용자와 같은 서버 세부 정보를 입력합니다.

그러면 아래와 같이 세부 정보가 표시되며 확인을 클릭합니다.

이제 FTP 서버에 연결되어 파일/폴더를 업로드 및 다운로드할 수 있습니다.

6. SSL/TLS를 사용하여 Vsftpd 보호

FTP를 통해 암호화된 데이터를 전송하려면 SSL 인증서를 생성하고 SSL/TLS 연결을 활성화해야 합니다.

다음 명령을 사용하여 OpenSSL을 사용하여 인증서를 생성할 수 있습니다.

sudo mkdir /etc/cert
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/cert/vsftpd.pem -out /etc/cert/vsftpd.pem

이제 vsftpd.conf 파일을 편집하고 몇 가지 사항을 변경해야 합니다.

sudo vim /etc/vsftpd.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

파일을 저장하고 종료한 후 다음 명령을 사용하여 Vsftpd를 다시 시작합니다.

sudo systemctl restart vsftpd

7. SSL/TLS를 통한 FTP 액세스

다음으로 비밀번호를 입력합니다.

결론

위 가이드에서는 데비안 11에 VSFTPD 서버를 설치했습니다. SSL 인증서를 사용하여 암호화되지 않은 연결과 암호화된 연결을 통해 연결하는 방법도 알아봅니다.