웹사이트 검색

Ubuntu 16.04에서 TLS를 지원하는 ProFTPd를 설치하는 방법


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

  • 우분투 16.04(Xenial Xerus)
  • 우분투 11.04(Natty Narwhal)

이 페이지에서

  1. 1 서문
  2. 2 ProFTPd 및 OpenSSL 설치
  3. 3 TLS용 SSL 인증서 생성
  4. 4 ProFTPd에서 TLS 활성화\n
  5. 5 FTP 사용자 추가
  6. 6 TLS용 FileZilla 구성
  7. 7 이 설정을 VM으로 다운로드
  8. 8 링크

이 튜토리얼은 ProFTPd와 함께 FTP를 안전하게 설치하고 사용하는 방법을 보여줍니다. TLS가 없는 FTP는 모든 암호와 모든 데이터가 일반 텍스트로 전송되기 때문에 안전하지 않은 프로토콜입니다. TLS를 사용하면 전체 통신을 암호화할 수 있으므로 FTP를 훨씬 더 안전하게 만들 수 있습니다. 이 문서에서는 Ubuntu 16.04 서버에서 TLS로 ProFTPd를 설정하는 방법, FTP 사용자를 추가하는 방법, FileZilla를 사용하여 TLS와 안전하게 연결하는 방법을 설명합니다.

1 서문

이 자습서에서는 호스트 이름 server1.example.com을 IP 주소 192.168.1.100과 함께 사용합니다. 이러한 설정은 사용자에 따라 다를 수 있으므로 적절하게 교체해야 합니다.

루트 권한으로 이 튜토리얼의 모든 단계를 실행해야 하므로 이 튜토리얼의 모든 명령 앞에 sudo 문자열을 추가하거나 다음을 입력하여 지금 바로 루트가 될 수 있습니다.

sudo -s

이 자습서에서는 nano 편집기를 사용하여 구성 파일을 편집하겠습니다. nano도 사용하고 싶지만 아직 설치하지 않은 경우 이 명령을 실행하여 nano를 설치하십시오.

apt-get -y install nano

2 ProFTPd 및 OpenSSL 설치

OpenSSL은 TLS에 필요합니다. ProFTPd 및 OpenSSL을 설치하려면 다음을 실행하기만 하면 됩니다.

apt-get -y install proftpd openssl

다음과 같은 질문을 받게 됩니다.

proftpd 실행: <-- 독립형

보안상의 이유로 다음 행을 /etc/proftpd/proftpd.conf에 추가해야 합니다.

nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]

첫 번째 옵션은 FTP 사용자를 홈 디렉토리로 chrooting할 수 있게 하고 두 번째 옵션은 사용된 FTP 서버 소프트웨어, 버전 또는 OS에 대한 정보를 포함하지 않는 ServerIdent 메시지를 활성화하여 잠재적인 공격자가 이러한 세부 정보를 은판에서 얻지 못하도록 합니다.

3 TLS용 SSL 인증서 생성

TLS를 사용하기 위해서는 SSL 인증서를 생성해야 합니다. /etc/proftpd/ssl에 생성하므로 먼저 해당 디렉토리를 생성합니다.

mkdir /etc/proftpd/ssl

그런 다음 다음과 같이 SSL 인증서를 생성할 수 있습니다.

openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

국가 이름(2자리 코드) [AU]: <-- 국가 이름(예: "DE")을 입력하세요.
주 또는 도 이름(전체 이름) [Some-State]:<-- 국가 이름을 입력하세요. 시/도 이름.
지역 이름(예: 도시) []:<-- 도시를 입력하세요.
조직 이름(예: 회사) [Internet Widgits Pty Ltd]:<-- 조직 이름을 입력하세요( 예: 회사 이름).
조직 단위 이름(예: 섹션) []:<-- 조직 단위 이름(예: "IT 부서")을 입력합니다.
일반 이름(예: 귀하 name) []:<-- 시스템의 정규화된 도메인 이름을 입력합니다(예: "server1.example.com").
이메일 주소 []:<-- 이메일 주소를 입력합니다.

생성된 인증서 파일을 보호합니다.

chmod 600 /etc/proftpd/ssl/proftpd.*

4 ProFTPd에서 TLS 활성화

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

nano /etc/proftpd/proftpd.conf

... 그리고 Include /etc/proftpd/tls.conf 행의 주석 처리를 제거하십시오.

[...]
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
[...]

그런 다음 /etc/proftpd/tls.conf를 열고 다음과 같이 보이게 합니다.

nano /etc/proftpd/tls.conf
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell       no
</IfModule>

TLSRequired를 사용하는 경우 TLS 연결만 허용됩니다(TLS 지원이 없는 이전 FTP 클라이언트를 사용하는 모든 사용자가 잠김). FTP 클라이언트가 지원하는 항목에 따라 해당 줄을 주석 처리하거나 TLSRequired 해제를 사용하여 TLS 및 비 TLS 연결이 모두 허용됩니다.

나중에 ProFTPd를 다시 시작하십시오.

systemctl restart proftpd.service

그게 다야. 이제 FTP 클라이언트를 사용하여 연결을 시도할 수 있습니다. 그러나 TLS를 사용하도록 FTP 클라이언트를 구성해야 합니다(TLSRequired를 사용하는 경우 필수) - FileZilla로 이를 수행하는 방법은 다음 장을 참조하십시오.

TLS에 문제가 있는 경우 TLS 로그 파일 /var/log/proftpd/tls.log를 살펴볼 수 있습니다.

5 FTP 사용자 추가

따라서 자습서에서 사용되는 ProFTPD 구성은 Linux 시스템 사용자 데이터베이스(/etc/passwd 및 /etc/shadow)에 대해 사용자를 인증합니다. 이 단계에서는 FTP 로그인에만 사용할 사용자 "tom"을 추가합니다.

useradd --shell /bin/false tom

그런 다음 사용자 "tom"의 홈 디렉토리를 만들고 해당 디렉토리의 소유권을 사용자 및 그룹 "tom"으로 변경해야 합니다.

mkdir /home/tom
chown tom:tom /home/tom/

이렇게 하면 쉘 /bin/false와 함께 사용자 "tom"이 추가됩니다. 이 쉘은 그가 SSH가 아닌 FTP로 로그인할 수 있도록 합니다. 사용자의 홈 디렉토리는 기본적으로 /home/[USERNAME]이며 이 경우에는 /home/tom입니다. ProFTPD는 사용자를 자신의 홈 디렉토리에 가두도록 구성되어 있으므로 /home/tom 외부의 시스템 파일에 액세스할 수 없습니다. 다른 홈 디렉토리를 설정하려면 아래 명령을 사용하십시오.

useradd --home /srv/tomftp --create-home --shell /bin/false tom

이 명령은 다른 홈 디렉토리를 설정합니다. 이 예제의 경우 사용자에 대한 /srv/tomftp 디렉토리입니다.

다음 단계는 사용자 tom의 암호를 설정하고 passwd 명령을 실행하는 것입니다.

passwd tom

요청 시 새 비밀번호를 두 번 입력합니다.

6 TLS용 FileZilla 구성

TLS와 함께 FTP를 사용하려면 FileZilla와 같은 TLS를 지원하는 FTP 클라이언트가 필요합니다.

FileZilla에서 사이트 관리자를 엽니다.

TLS와 함께 ProFTPd를 사용하는 서버를 선택하십시오. FTP를 프로토콜로 선택하고 FTP를 통한 명시적 TLS 필요를 선택합니다.

이제 서버에 연결할 수 있으며 FileZilla가 비밀번호를 묻습니다.

이 작업을 처음 수행하는 경우 서버의 새 SSL 인증서를 수락해야 합니다.

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

7 이 설정을 VM으로 다운로드

이 튜토리얼에서 설명하는 설정은 HowtoForge 구독자에게 다운로드할 수 있습니다. OVA/OVF 형식의 가상 머신을 바로 사용할 수 있으며 VMWare 및 Virtualbox와 호환됩니다.

VM의 로그인 세부 정보

가상 머신에는 이름이 "administrator"이고 비밀번호가 "howtoforge"인 SSH 사용자가 있습니다. 이 SSH 사용자에게는 sudo 권한이 있습니다.

FTP 사용자 "tom"의 암호는 "howtoforge"입니다.

VM의 IP 주소는 192.168.1.100이며 IP는 /etc/network/interfaces 파일에서 변경할 수 있습니다.

VM을 라이브 시스템으로 사용하기 전에 모든 사용자의 암호를 변경하십시오.

8 링크

  • ProFTPd: http://www.proftpd.org/
  • 파일질라: http://filezilla-project.org/
  • 우분투: http://www.ubuntu.com/