웹사이트 검색

CentOS 7.2에서 TLS로 ProFTPD를 설치하는 방법


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

  • 센트OS 7.2
  • 센트OS 7

이 페이지에서

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

    이 튜토리얼은 CentOS 7.2 서버에서 ProFTPD의 설치 및 구성에 대해 설명합니다. ProFTPD는 Unix 및 Linux 운영 체제용 FTP 데몬이며 GPL(GNU Public License)에 따라 배포됩니다.

    1 서문

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

    2 ProFTPD 설치 및 구성

    2.1 설치:

    EPEL 리포지토리의 소프트웨어가 필요하며 다음과 같이 활성화합니다.

    yum -y install epel-release

    그런 다음 EPEL GPG 키를 가져옵니다.

    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

    패키지를 업데이트합니다.

    yum -y update

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

    yum install -y proftpd openssl proftpd-utils

    서비스를 시작하고 부팅 시 자동으로 시작되도록 설정해야 합니다.

    systemctl start proftpd.service
    systemctl enable proftpd.service

    firewalld가 설치되어 있는 경우 FTP 포트를 열도록 firewall-cmd를 사용하여 방화벽을 구성합니다.

    firewall-cmd --add-service=ftp --permanent
    firewall-cmd --reload

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

    proftpd -v

    2.2 ProFTPD 사용자 생성

    ProFTPD용 그룹 ftpgroup 및 사용자 tom을 생성하겠습니다. 사용자 tom의 홈 디렉토리로 /ftpshare를 설정하겠습니다.

    groupadd ftpgroup

    다음으로 ftpgroup에 사용자 srijan을 추가합니다.

    useradd  -G ftpgroup tom -s /sbin/nologin -d /ftpshare
    passwd tom
    [ ~]# 

    ftpshare 디렉토리에 대한 권한을 설정합니다.

    chmod -R 1750 /ftpshare/

    이제 ProFTPD 연결 준비가 되었습니다. 그러나 연결은 아직 암호화되지 않았으므로 다음 장에서 이 문제를 해결할 것입니다.

    3 ProFTPD에서 TLS 활성화

    ProFTPD에서 TLS를 활성화하려면 /etc/proftpd/proftpd.conf를 엽니다. 파일을 편집하기 전에 원본 파일을 백업한 다음 nano로 파일을 편집하는 것이 좋습니다.

    cp -pf /etc/proftpd.conf /etc/proftpd.conf.bak
    nano /etc/proftpd.conf

    빨간색으로 표시된 선을 추가하고 수정합니다.

    [...]
    DefaultRoot ~ !adm PassivePorts 6000 6100
    [...]

    #
    <IfDefine TLS> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/pki/tls/certs/proftpd.pem TLSRSACertificateKeyFile /etc/pki/tls/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd/tls.log # <IfModule mod_tls_shmcache.c> # TLSSessionCache shm:/file=/var/run/proftpd/sesscache # </IfModule> #</IfDefine>
    [...]

    ftp의 수동 모드를 허용하기 위해 6000 및 6100 포트를 추가했습니다. 유사하게 다음과 같이 CentOS 방화벽 서비스를 통해 수동 모드를 허용합니다.

    firewall-cmd --add-port=6000-6100/tcp --permanent
    firewall-cmd --reload

    다음과 같이 포트 상태를 확인할 수 있습니다.

    firewall-cmd --list-ports
    [ ~]#

    또한 파일 읽기/쓰기를 허용하도록 SELINUX에 지시해야 합니다.

    setsebool -P allow_ftpd_full_access=1

    TLS를 사용하기 위해서는 SSL 인증서를 생성해야 합니다. /etc/pki/tls/certs에 생성하고 다음과 같이 SSL 인증서를 생성할 수 있습니다.

    openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem

    귀하의 선택에 따라 위의 값을 빨간색으로 지정하십시오. 방금 예를 들었습니다.

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

    chmod  0440 /etc/pki/tls/certs/proftpd.pem

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

    systemctl restart proftpd.service

    세부 사항은 다음과 같습니다.

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

    4 ProFTPD의 익명 FTP 액세스

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

    nano /etc/proftpd.conf

    그리고 파일 끝에 다음 줄을 추가합니다.

    [...]
    ###Anonymous share##### <Anonymous ~ftp> User ftp Group ftp UserAlias anonymous ftp DirFakeUser on ftp DirFakeGroup on ftp MaxClients 10 <Directory *> <Limit WRITE> DenyAll </Limit> </Directory> </Anonymous>

    이제 FTP 서비스를 다시 시작해야 합니다.

    systemctl restart proftpd.service

    이제 다음과 같이 Filezilla를 통해 anon 계정에 연결합니다.

    연결을 누릅니다.

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

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

    5 링크

    • 센트OS : http://www.centos.org/
    • ProFTPD : http://www.proftpd.org/