웹사이트 검색

Debian Wheezy 및 Ubuntu 14.04에서 ProFTPD를 설치 및 구성하는 방법


이 페이지에서

  1. 1 서문
  2. 2 ProFTPD 설치
    1. 2.1 설치:
    2. 2.2 ProFTPD 사용자 만들기

    이 문서는 Debian Wheezy 서버에서 ProFTPD를 설치하고 구성하는 방법을 설명하며 Ubuntu 14.04에서도 작동합니다. ProFTPD는 유닉스 및 유닉스 계열 운영 체제용 FTP 데몬입니다. ProFTPD는 GNU 공개 라이선스(GPL)에 따라 개발, 출시 및 배포되며, 기본적으로 무료 소프트웨어로 설정됩니다. ProFTPD 패키지 또는 미리 컴파일된 바이너리를 배포하는 모든 사이트에서 사용할 수 있습니다. 이 소프트웨어는 모든 파생 저작물이 GNU 공개 라이선스에 따라 라이선스가 부여되는 한 언제든지 누구나 수정할 수 있습니다.

    이 가이드는 Ubuntu 및 Debian 서버 모두에서 작동합니다.

    1 서문

    이 자습서는 Debian 7.6 서버를 기반으로 하므로 이 자습서를 계속하기 전에 기본 Debian 7.6 서버 설치를 설정해야 합니다. 시스템에는 고정 IP 주소가 있어야 합니다. 이 튜토리얼에서는 192.168.0.100을 IP 주소로 사용하고 server1.example.com을 호스트 이름으로 사용합니다.

    2 ProFTPD 설치

    2.1 설치:

    먼저 다음과 같이 ProFTPD 및 OpenSSL을 설치합니다.

    apt-get install proftpd openssl

    ProFTPD에 대한 몇 가지 질문을 하고 독립 실행형을 선택한 다음 확인을 누릅니다.

    다음과 같이 ProFTPD 버전을 확인할 수 있습니다.

    proftpd -v

    2.2 ProFTPD 사용자 생성

    이를 위해 그룹 ftpgroup과 ProFTPD용 사용자 srijan을 생성합니다. 홈 디렉토리가 있는 사용자 srijan을 /ftpshare로 제한하겠습니다.

    addgroup ftpgroup
    adduser srijan -shell /bin/false -home /ftpshare
    :~#

    이제 다음과 같이 srijan 사용자를 ftpgroup에 추가합니다.

    adduser srijan ftpgroup

    다음으로 모든 사용자가 콘텐츠를 제거하고 이름을 바꾸지 못하도록 디렉터리를 보호해야 하므로 다음과 같이 디렉터리 권한을 변경합니다.

    chmod -R 1777 /ftpshare/

    다음으로 ProFTPD를 다음과 같이 구성해야 합니다.

    nano /etc/proftpd/proftpd.conf

    표시된 대로 변경합니다.

    [...]
    UseIPv6 off
    [...]
    <Global>
    RootLogin off RequireValidShell off </Global> DefaultRoot ~ <Limit LOGIN> DenyGroup !ftpgroup </Limit>

    저는 IPV6를 사용하지 않기 때문에 위에서 종료했습니다. RootLogon을 사용하여 ProFTPD를 사용하여 루트 사용자 로그인을 비활성화합니다. DefaultRoot는 홈 폴더 액세스 권한만 있는 사용자를 제한하기 위해 추가되었습니다. DenyGroup은 ftpgroup의 사용자만 ftp 서버에 액세스하도록 허용하고 다른 모든 연결은 거부됩니다.

    다음과 같이 서비스를 다시 시작합니다.

    service proftpd restart

    때때로 서비스를 다시 시작하는 동안 다음과 같은 오류가 발생합니다.

    /etc/proftpd/modules.conf 파일을 편집하고 다음과 같이 주석을 달아 이 오류를 해결할 수 있습니다.

    nano /etc/proftpd/modules.conf
    [...]
    #LoadModule mod_tls_memcache.c
    [...]

    오류를 정렬합니다.

    이제 ftp://192.168.0.100에서 사용자 srijan과 비밀번호로 로그인할 수 있습니다.

    3 ProFTPD에서 TLS 활성화

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

    nano /etc/proftpd/proftpd.conf

    다음과 같이 변경하고 행의 주석을 제거하십시오.

    [...]
    Include /etc/proftpd/tls.conf
    [...]

    이제 원본 파일 백업을 만든 다음 아래와 같이 파일을 편집합니다.

    cp /etc/proftpd/tls.conf /etc/proftpd/tls.conf_orig
    cat /dev/null > /etc/proftpd/tls.conf
    nano /etc/proftpd/tls.conf

    표시된 대로 항목을 제공합니다.

    <IfModule mod_tls.c>
    TLSEngine                  on
    TLSLog                     /var/log/proftpd/tls.log
    TLSProtocol                SSLv23
    TLSOptions                 NoCertRequest
    TLSRSACertificateFile      /etc/proftpd/ssl/proftpd.cert.pem
    TLSRSACertificateKeyFile   /etc/proftpd/ssl/proftpd.key.pem
    TLSVerifyClient            off
    TLSRequired                on
    </IfModule>
    

    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 -주]: <-- 주 또는 도 이름을 입력하세요.
    지역 이름(예: 도시) []: <-- 도시를 입력하세요.
    조직 이름(예: 회사) [Internet Widgits Pty Ltd]: <-- 조직 이름(예: 회사 이름)을 입력합니다.
    조직 단위 이름(예: 섹션) []: <-- 조직 단위 이름(예: "IT 부서")을 입력합니다.
    일반 이름(예: 이름) []: <-- 시스템의 정규화된 도메인 이름을 입력합니다(예: "server1.example.com").
    이메일 주소 []: <-- 이메일 주소를 입력합니다.

    이제 보안을 위해 다음과 같이 인증서를 읽을 수만 있게 만들겠습니다.

    chmod 0440 /etc/proftpd/ssl/proftpd.key.pem

    마지막으로 다음과 같이 ProFTPD 서비스를 다시 시작합니다.

    service proftpd restart

    자세한 내용은

    호스트 = 192.168.0.100
    프로토콜 = FTP
    사용자 = srijan
    포트 = 21이 아닌 다른 포트를 사용자 지정하지 않은 경우 비워둘 수 있습니다.
    비밀번호 = ftppassword(위에서 생성)

    4 ProFTPD의 익명 FTP 액세스

    ProFTPD에서 익명 FTP 계정을 만들 수 있습니다. ProFTPD 구성 파일에 다음 항목을 추가하기만 하면 됩니다.

    nano /etc/proftpd/proftpd.conf

    그리고 파일의 마지막에 이 항목을 추가합니다.

    [...]
    ###Anonymous share##### <Anonymous ~ftp> User ftp Group nogroup <Limit LOGIN> AllowAll </Limit> # We want clients to be able to login with "anonymous" as well as "ftp" UserAlias anonymous ftp # Cosmetic changes, all files belongs to ftp user DirFakeUser on ftp DirFakeGroup on ftp RequireValidShell off # Limit the maximum number of anonymous logins MaxClients 10 # Limit WRITE everywhere in the anonymous chroot <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous> ~

    이제 다음과 같이 FileZilla를 통해 연결하십시오.

    연결을 누릅니다:

    인증서를 신뢰하라는 메시지가 표시됩니다. 확인을 누릅니다.

    익명 사용자로 서버에 성공적으로 연결했습니다.

    축하합니다! 이제 Debian Wheezy에서 ProFTPD 서버 환경을 성공적으로 구성했습니다 :)

    5 링크

    • 데비안 : https://www.debian.org/
    • 우분투: http://www.ubuntu.com/
    • ProFTPD : http://www.proftpd.org/