서버 설정 · 3 min read · Dec 23, 2025

Debian Squeeze에서 vsftpd + TLS 설정하기

Debian Squeeze에서 vsftpd + TLS 설정하기

버전 1.0
저자: Falko Timme
Twitter에서 나를 팔로우하세요

FTP는 모든 비밀번호와 모든 데이터가 일반 텍스트로 전송되기 때문에 매우 안전하지 않은 프로토콜입니다. TLS를 사용하면 전체 통신을 암호화할 수 있어 FTP를 훨씬 더 안전하게 만들 수 있습니다. 이 문서에서는 Debian Squeeze 서버에서 TLS와 함께 vsftpd를 설정하는 방법을 설명합니다.

이 방법이 여러분에게 효과가 있을 것이라는 보장은 하지 않습니다!

1. 사전 참고

이 튜토리얼에서는 호스트 이름 server1.example.com과 IP 주소 192.168.0.100을 사용합니다. 이러한 설정은 여러분의 경우 다를 수 있으므로 적절한 곳에서 교체해야 합니다.

2. vsftpd 및 OpenSSL 설치하기

OpenSSL은 TLS에 필요합니다. vsftpd와 OpenSSL을 설치하려면 다음과 같이 실행합니다:

apt-get install vsftpd openssl

3. TLS용 SSL 인증서 생성하기

TLS를 사용하기 위해 SSL 인증서를 생성해야 합니다. 나는 /etc/ssl/private에 생성합니다. 디렉토리가 존재하지 않으면 지금 생성하세요::

mkdir -p /etc/ssl/private  
chmod 700 /etc/ssl/private

그 후, 다음과 같이 SSL 인증서를 생성할 수 있습니다:

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

국가 이름 (2자리 코드) [AU]: <– 귀하의 국가 이름 입력 (예: “DE”).
주 또는 지방 이름 (전체 이름) [Some-State]: <– 귀하의 주 또는 지방 이름 입력.
지역 이름 (예: 도시) []: <– 귀하의 도시 입력.
조직 이름 (예: 회사) [Internet Widgits Pty Ltd]: <– 귀하의 조직 이름 입력 (예: 귀하의 회사 이름).
조직 단위 이름 (예: 섹션) []: <– 귀하의 조직 단위 이름 입력 (예: “IT 부서”).
공통 이름 (예: 귀하의 이름) []: <– 시스템의 완전한 도메인 이름 입력 (예: “server1.example.com”).
이메일 주소 []: <– 귀하의 이메일 주소 입력.

4. vsftpd에서 TLS 활성화하기

vsftpd에서 TLS를 활성화하려면 /etc/vsftpd.conf를 엽니다…

vi /etc/vsftpd.conf

… 다음 옵션을 추가하거나 변경합니다:

| [...] # SSL 켜기 ssl_enable=YES # 익명 사용자가 보안 SSL 연결을 사용할 수 있도록 허용 allow_anon_ssl=YES # 모든 비익명 로그인은 데이터 연결에서 데이터를 보내고 받기 위해 보안 SSL 연결을 사용해야 합니다. force_local_data_ssl=YES # 모든 비익명 로그인은 비밀번호를 보내기 위해 보안 SSL 연결을 사용해야 합니다. force_local_logins_ssl=YES # TLS v1 프로토콜 연결 허용. TLS v1 연결이 선호됩니다. ssl_tlsv1=YES # SSL v2 프로토콜 연결 허용. TLS v1 연결이 선호됩니다. ssl_sslv2=NO # SSL v3 프로토콜 연결 허용. TLS v1 연결이 선호됩니다. ssl_sslv3=NO # SSL 세션 재사용 비활성화 (WinSCP에서 필요) require_ssl_reuse=NO # vsftpd가 암호화된 SSL 연결을 위해 허용할 SSL 암호를 선택합니다 (FileZilla에서 필요) ssl_ciphers=HIGH # 이 옵션은 SSL 암호화된 연결에 사용할 RSA 인증서의 위치를 지정합니다. rsa_cert_file=/etc/ssl/private/vsftpd.pem [...] |

force_local_logins_ssl=YES 및 force_local_data_ssl=YES를 사용하면 TLS 연결만 허용됩니다 (이로 인해 TLS 지원이 없는 오래된 FTP 클라이언트를 사용하는 사용자는 차단됩니다); force_local_logins_ssl=NO 및 force_local_data_ssl=NO를 사용하면 FTP 클라이언트가 지원하는 것에 따라 TLS 및 비TLS 연결이 모두 허용됩니다.

TLS 옵션 외에도 비익명 로그인을 활성화하기 위해 vsftpd.conf에 다음 설정이 있는지 확인하십시오:

| [...] # 로컬 사용자가 로그인할 수 있도록 허용하려면 주석을 제거하십시오. local_enable=YES # # FTP 쓰기 명령의 모든 형태를 활성화하려면 주석을 제거하십시오. write_enable=YES # # 로컬 사용자의 기본 umask는 077입니다. 사용자가 이를 기대하는 경우 022로 변경할 수 있습니다. # (022는 대부분의 다른 ftpd에서 사용됨) local_umask=022 [...] # 로컬 사용자를 홈 디렉토리로 제한할 수 있습니다. chroot_local_user 또는 # chroot_list_enable을 사용하기 전에 가능한 위험에 대한 FAQ를 참조하십시오. chroot_local_user=YES [...] |

그 후 vsftpd를 재시작합니다:

/etc/init.d/vsftpd restart

그게 다입니다. 이제 FTP 클라이언트를 사용하여 연결을 시도할 수 있습니다. 그러나 FTP 클라이언트를 TLS를 사용하도록 구성해야 합니다 (force_local_logins_ssl=YES 및 force_local_data_ssl=YES를 사용하는 경우 필수입니다) - 다음 장에서 FileZilla로 이를 수행하는 방법을 확인하십시오.

5. TLS를 위한 FileZilla 구성하기

TLS로 FTP를 사용하려면 TLS를 지원하는 FTP 클라이언트가 필요합니다. 예를 들어 FileZilla가 있습니다.

FileZilla에서 서버 관리자를 엽니다:

TLS와 함께 vsftpd를 사용하는 서버를 선택합니다. 서버 유형 드롭다운 메뉴에서 일반 FTP 대신 FTPES를 선택합니다:

이제 서버에 연결할 수 있습니다. 처음으로 이 작업을 수행하는 경우 서버의 새로운 SSL 인증서를 수락해야 합니다:

모든 것이 잘 진행되면 이제 서버에 로그인되어 있어야 합니다:

6. 링크

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.