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

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

이 튜토리얼은 CentOS 7.2 서버에서 ProFTPD의 설치 및 구성을 설명합니다. ProFTPD는 Unix 및 Linux 운영 체제를 위한 FTP 데몬이며 GNU 공용 라이선스(GPL) 하에 배포됩니다.

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

[root@server1 ~]# proftpd -v

ProFTPD Version 1.3.5b

[root@server1 ~]#

2.2 ProFTPD 사용자 생성

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

groupadd ftpgroup

다음으로 ftpgroup에 사용자 srijan을 추가하겠습니다:

useradd  -G ftpgroup tom -s /sbin/nologin -d /ftpshare  
passwd tom
[root@server1 ~]# passwd tom  
Changing password for user srijan.  
New password: <--ftppassword  
Retype new password: <--ftppassword  
passwd: all authentication tokens updated successfully.  
[root@server1 ~]#  

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  
[...]   
  
#
  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
#  
#    TLSSessionCache            shm:/file=/var/run/proftpd/sesscache
#  
#  
[...] 

FTP의 수동 모드를 허용하기 위해 6000 및 6100 포트를 추가했습니다. CentOS firewalld 서비스를 통해 수동 모드를 허용하겠습니다:

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

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

firewall-cmd --list-ports
[root@server1 ~]# firewall-cmd --list-ports  
6000-6100/tcp  
[root@server1 ~]#

추가로, 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

[root@server1 certs]# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/pki/tls/certs/proftpd.pem -out /etc/pki/tls/certs/proftpd.pem

1024 비트 RSA 개인 키 생성 중

……………………………..++++++

………++++++

새 개인 키를 ‘/etc/pki/tls/certs/proftpd.pem’에 작성 중


인증서 요청에 포함될 정보를 입력하라는 메시지가 표시됩니다.

입력할 내용은 ‘구별 이름(Distinguished Name)’ 또는 DN이라고 합니다.

필드가 몇 개 있지만 일부는 비워둘 수 있습니다.

일부 필드에는 기본값이 있습니다.

‘.’를 입력하면 필드가 비워집니다.


국가 이름(2자리 코드) [XX]:

<–DE

주 또는 지방 이름(전체 이름) []:

<– Hamburg

지역 이름(예: 도시) [기본 도시]:

<– Luneberg

조직 이름(예: 회사) [기본 회사]:

<–Howtoforge

조직 단위 이름(예: 섹션) []:

<– Development

공통 이름(예: 이름 또는 서버의 호스트 이름) []:

<–

server1.example.com

이메일 주소 []:

<– [email protected]

[root@server1 certs]#

위의 빨간색 값은 선택에 따라 입력하세요. 예시로 제공한 것입니다.

이제 보안 목적으로 인증서를 다음과 같이 읽기 전용으로 설정하겠습니다:

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

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

systemctl restart proftpd.service

Filezilla 소프트웨어를 사용하여 ProFTPD 서버에 연결할 수 있습니다. 클라이언트 컴퓨터에 Filezilla가 설치되어 있어야 서버에 연결할 수 있습니다. Filezilla를 열고 다음과 같이 세부 정보를 입력합니다:

FileZilla에서 계정 세부정보 입력.

세부 정보는 다음과 같습니다:

호스트 = 192.168.1.100
프로토콜 = FTP
사용자 = tom
포트 = 21이 아닌 다른 포트를 사용자 정의하지 않았다면 비워둘 수 있습니다.
비밀번호 = ftppassword (위에서 방금 생성한 비밀번호)

참고: 위 단계에서 연결을 암호화했으므로 TLS를 통한 명시적 FTP 요구를 사용합니다.

TLS를 구성하지 않았다면 일반 FTP 사용을 사용할 수 있습니다.

SSL 인증서 수락

인증서를 신뢰할 것인지 묻는 메시지가 표시되면 확인을 누릅니다.

FileZilla가 ProFTPd에 연결됨.

TLS 연결로 FTP 공유 디렉토리에 연결됩니다.

4 ProFTPD에서 익명 FTP 접근

ProFTPD에서 익명 FTP 계정을 만들 수 있습니다. ProFTPD 구성 파일에 다음 줄을 추가하세요:

nano /etc/proftpd.conf

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

[...]  
###익명 공유#####

  User ftp
  Group ftp

UserAlias anonymous ftp
DirFakeUser       on ftp 
DirFakeGroup on ftp
MaxClients 10

        
     
DenyAll   
 
    

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

systemctl restart proftpd.service

이제 Filezilla를 통해 익명 계정으로 연결합니다:

익명 로그인

참고: 위 단계에서 연결을 암호화했으므로 TLS를 통한 명시적 FTP 요구를 사용합니다.

TLS를 구성하지 않았다면 일반 FTP 사용을 사용할 수 있습니다.

연결을 누릅니다.

익명 FTP 로그인 성공.

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

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

5 링크

Share: X/Twitter LinkedIn

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

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