웹사이트 검색

Ubuntu VPS에서 SSL/TLS를 사용하도록 vsftpd를 구성하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 Ubuntu 버전에 대해 설명합니다. 현재 Ubuntu 12.04를 실행하는 서버를 운영 중인 경우 지원되는 Ubuntu 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

  • Ubuntu 14.04로 업그레이드합니다.
  • Ubuntu 14.04에서 Ubuntu 16.04로 업그레이드
  • 서버 데이터를 지원되는 버전으로 마이그레이션

이유:

대신 참조:

소개

FTP 또는 파일 전송 프로토콜은 과거에 로컬 컴퓨터와 원격 컴퓨터 간에 파일을 전송하는 일반적인 방법이었습니다. 프로토콜은 본질적으로 안전하지 않기 때문에 사용이 선호되지 않습니다.

SSH 프로토콜을 사용하여 파일 전송을 구현하는 SFTP와 같은 보다 안전한 대안 대신 여전히 FTP를 사용하려는 경우 SSL을 사용하도록 FTP를 구성하여 어느 정도 보안을 유지할 수 있습니다.

이 가이드에서는 Ubuntu 12.04 VPS에서 SSL 인증서를 사용하도록 vsftpd를 구성합니다.

vsftpd 설치

vsftpd 서버는 Ubuntu의 기본 리포지토리에서 사용할 수 있습니다. 다음을 입력하여 설치할 수 있습니다.

sudo apt-get install vsftpd

이제 서버에 vsftp가 있지만 여전히 구성해야 합니다.

기본 vsftpd 기능 구성

기본 구성 파일은 /etc/vsftpd.conf에 있습니다. 루트 권한으로 엽니다.

sudo nano /etc/vsftpd.conf

anonymous_enable 매개변수를 찾아 "NO\로 변경하여 사용자가 익명으로 로그인하는 기능을 비활성화합니다.

<예비>

다음으로 익명 액세스를 비활성화했으므로 로컬 인증 파일을 사용하는 사용자 로그인을 활성화해야 합니다. 이 줄의 주석을 제거하십시오.

local_enable=YES

사용자가 파일 시스템을 수정할 수 있도록 write_enable 매개변수도 주석 해제합니다.

write_enable=YES

또한 사용자를 자신의 홈 디렉토리로 제한하려면 chroot_local_user 옵션의 주석을 제거하십시오.

chroot_local_user=YES

파일을 저장하고 닫습니다.

FTP 사용자 생성

vsftpd가 chroot 감옥을 보호하는 방식 때문에 chroot는 사용자가 소유해서는 안 되며 쓰기 가능해서는 안 됩니다. 이 때문에 FTP와 함께 사용하기 위해 특별히 사용자를 구현하는 것이 가장 좋습니다.

다음과 같이 사용자를 생성합니다.

sudo adduser ftpuser

비밀번호를 지정하고 다른 프롬프트를 통해 자유롭게 "ENTER\를 누르십시오. 이제 ftpuser 홈 디렉토리의 루트 소유권을 부여하십시오.

sudo chown root:root /home/ftpuser

파일을 업로드할 수 있는 이 홈 디렉토리 내에 별도의 디렉토리를 만들어야 합니다. 그런 다음 이 디렉토리를 FTP 사용자에게 제공해야 합니다.

sudo mkdir /home/ftpuser/files
sudo chown ftpuser:ftpuser /home/ftpuser/files

이제 ftpuser로 (안전하지 않게) 로그인하고 files 디렉터리에 파일을 업로드할 수 있어야 합니다.

vsftpd로 SSL 구성

vsftpd와 함께 사용할 일부 SSL 인증서를 생성해야 합니다. 다음 명령으로 이를 수행할 수 있습니다.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

이렇게 하면 1년 동안 지속되는 인증서가 생성됩니다. 구성 파일에서 참조할 수 있는 /etc/ssl/private/ 디렉토리에 배치됩니다.

vsftpd 구성에 SSL 세부 정보 추가

루트 권한으로 vsftpd 구성 파일을 다시 엽니다.

sudo nano /etc/vsftpd.conf

파일 하단에서 방금 생성한 SSL 인증서와 일치하는 줄을 찾아야 합니다.

rsa_cert_file=/etc/ssl/private/vsftpd.pem

아래에 추가 SSL 정보를 추가하겠습니다.

인증서를 만들 때 키 파일과 인증서를 하나의 파일에 모두 포함했기 때문에 개인 키 줄을 다음과 같이 가리킬 수도 있습니다.

rsa_private_key_file=/etc/ssl/private/vsftpd.pem

그런 다음 SSL을 강제 적용하기 위해 다음 줄을 추가합니다. 이렇게 하면 TLS를 처리할 수 없는 클라이언트가 제한되지만 이것이 우리가 원하는 것입니다.

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES

그런 다음 실제로 SSL의 후속 제품인 TLS를 사용하도록 서버를 구성하고 다음을 선호합니다.

ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

마지막으로 구성 파일에 살을 붙이기 위해 몇 가지 추가 옵션을 추가해야 합니다.

require_ssl_reuse=NO
ssl_ciphers=HIGH

파일을 저장하고 닫습니다.

이제 변경 사항을 적용하려면 서버를 다시 시작해야 합니다.

sudo service vsftpd restart

FileZilla로 서버에 연결하는 방법

대부분의 최신 FTP 클라이언트는 SSL 및 TLS 암호화를 사용하도록 구성할 수 있습니다. 교차 플랫폼 지원으로 인해 FileZilla를 사용하여 연결하는 방법을 시연할 것입니다.

구성 패널에서 맨 왼쪽에 "사이트 관리자\를 여는 버튼이 표시됩니다. 다음을 클릭합니다.

표시되는 창 인터페이스의 오른쪽 하단에 있는 "새 사이트\를 클릭합니다.

새 구성의 이름을 지정합니다. IP 주소를 입력합니다. "암호화\ 드롭다운 메뉴에서 "TLS를 통한 명시적 FTP 필요\를 선택합니다.

"로그온 유형\에서 "암호 묻기\를 선택합니다. "사용자\ 필드에 생성한 ftp 사용자를 입력합니다.

인터페이스 하단에서 "연결\을 클릭하십시오. 사용자 비밀번호를 묻는 메시지가 표시됩니다.

그런 다음 TLS 인증서를 수락하라는 메시지가 표시됩니다.

이제 TLS/SSL 암호화로 서버에 연결되어야 합니다.

결론

이 설정은 FTP의 보안을 향상시키지만 연결을 설정할 때 여전히 불안정합니다. 가능하다면 이러한 종류의 작업을 위해 SFTP로 전환하는 것이 좋습니다. 그러나 FTP를 사용하기로 결정했다면 가능한 한 TLS/SSL을 사용해야 합니다.

저스틴 엘링우드