웹사이트 검색

RHEL/CentOS 7에서 TLS/SSL 프로토콜을 사용하여 ProFTPD 연결 보호


본질적으로 FTP 프로토콜은 안전하지 않은 프로토콜로 설계되었으며 모든 데이터와 비밀번호는 일반 텍스트로 전송되므로 제3자가 모든 FTP 클라이언트-서버 트랜잭션, 특히 사용자 이름과 비밀번호를 쉽게 가로챌 수 있습니다. 인증 과정에 사용되는 비밀번호입니다.

요구사항

  1. RHEL/CentOS 7에 ProFTPD 서버 설치
  2. RHEL/CentOS 7에서 Proftpd 서버에 대한 익명 계정 활성화

이 튜토리얼은 CentOS/RHEL 7ProFTPd 서버에서 FTP 통신을 보호하고 암호화하는 방법을 안내합니다. , 명시적 FTPS 확장과 함께 TLS(전송 계층 보안)를 사용합니다(HTTPS를 HTTP 프로토콜에 대한 HTTPS라고 생각하세요).

1단계: Proftpd TLS 모듈 구성 파일 생성

1. 익명 계정에 관한 이전 Proftpd 튜토리얼에서 논의된 것처럼, 이 가이드는 enabled_mod 및 <의 도움으로 Proftpd 향후 구성 파일을 모듈로 관리하는 것과 동일한 접근 방식을 사용합니다. b>disabled_mod 디렉토리는 모든 서버의 확장 기능을 호스팅합니다.

따라서 disabled_mod Proftpd 경로에 tls.conf라는 즐겨 사용하는 텍스트 편집기를 사용하여 새 파일을 만들고 다음 지시어를 추가하세요.

nano /etc/proftpd/disabled_mod/tls.conf

다음 TLS 파일 구성 발췌문을 추가합니다.

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
 
TLSRSACertificateFile                   /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile                /etc/ssl/private/proftpd.key

#TLSCACertificateFile                                     /etc/ssl/certs/CA.pem
TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired
TLSVerifyClient                         off
TLSRequired                             on
TLSRenegotiate                          required on
</IfModule>

2. TLS 연결을 지원하지 않는 브라우저나 FTP 클라이언트를 사용하는 경우 TLS 및 비 TLS 연결을 동시에 허용하려면 TLSRequired on 행에 주석을 추가하세요. 아래 스크린샷과 같은 오류 메시지를 피하세요.

2단계: TLS용 SSL 인증서 파일 생성

3. TLS 모듈 구성 파일을 생성한 후. Proftpd에서 TLS를 통한 FTP를 활성화하려면 OpenSSL 패키지의 도움으로 ProFTPD 서버를 통한 보안 통신을 사용하려면 SSL 인증서와 키를 생성해야 합니다.

yum install openssl

단일 긴 명령을 사용하여 SSL 인증서 및 키 쌍을 생성할 수 있지만, 작업을 단순화하기 위해 원하는 이름으로 SSL 쌍을 생성하고 키 파일에 대한 올바른 권한을 할당하는 간단한 bash 스크립트를 만들 수 있습니다.

/usr/local/bin/ 또는 기타 실행 가능한 시스템 경로(` PATH 변수로 정의됨)에 proftpd_gen_ssl라는 bash 파일을 생성합니다. ).

nano /usr/local/bin/proftpd_gen_ssl

다음 내용을 추가하세요.

#!/bin/bash
echo -e "\nPlease enter a name for your SSL Certificate and Key pairs:"
read name
 openssl req -x509 -newkey rsa:1024 \
          -keyout /etc/ssl/private/$name.key -out /etc/ssl/certs/$name.crt \
          -nodes -days 365\

 chmod 0600 /etc/ssl/private/$name.key

4. 위 파일을 생성한 후 실행 권한을 할당하고 /etc/ssl/private 디렉터리가 있는지 확인한 후 스크립트를 실행하여 SSL 인증서 및 키를 생성합니다. 한 쌍.

chmod +x /usr/local/bin/proftpd_gen_ssl
mkdir -p /etc/ssl/private
proftpd_gen_ssl

설명이 필요한 필수 정보를 SSL 인증서에 제공하세요. 단, 일반 이름이 호스트의 정규화된 도메인 이름FQDN.

3단계: ProFTPD 서버에서 TLS 활성화

5. 이전에 생성된 TLS 구성 파일이 이미 올바른 SSL 인증서 및 키 파일을 가리키고 있으므로 남은 유일한 작업은 기호 링크를 생성하여 TLS 모듈을 활성화하는 것입니다. >tls.conf 파일을 enabled-mod 디렉토리로 복사하고 ProFTPD 데몬을 다시 시작하여 변경 사항을 적용합니다.

ln -s /etc/proftpd/disabled_mod/tls.conf  /etc/proftpd/enabled_mod/
systemctl restart proftpd

6. TLS 모듈을 비활성화하려면 enabled_mod 디렉토리에서 tls.conf 심볼릭 링크를 제거하고 ProFTPD 서버를 다시 시작하여 변경 사항을 적용하면 됩니다.

rm /etc/proftpd/enabled_mod/tls.conf
systemctl restart proftpd

4단계: 방화벽을 열어 TLS 통신을 통한 FTP 허용

7. 클라이언트가 수동 모드에서 ProFTPD 및 보안 전송 파일에 액세스하려면 1024 사이의 전체 포트 범위를 열어야 합니다. 65534 RHEL/CentOS 방화벽에서 다음 명령을 사용합니다.

firewall-cmd --add-port=1024-65534/tcp  
firewall-cmd --add-port=1024-65534/tcp --permanent
firewall-cmd --list-ports
firewall-cmd --list-services
firewall-cmd --reload

그게 다야. 이제 시스템은 클라이언트 측에서 TLS를 통한 FTP 통신을 수락할 준비가 되었습니다.

5단계: 클라이언트에서 TLS를 통해 ProFTPD에 액세스

8. 웹 브라우저에는 일반적으로 TLS 프로토콜을 통한 FTP 지원이 내장되어 있지 않으므로 모든 거래는 암호화되지 않은 FTP를 통해 전달됩니다. 가장 뛰어난 FTP 클라이언트 중 하나는 FileZilla로, 완전히 오픈 소스이며 거의 모든 주요 운영 체제에서 실행될 수 있습니다.

FileZilla에서 사이트 관리자를 열고 TLS를 통해 FTP에 액세스하려면 프로토콜에서 FTP를 선택하고 TLS를 통해 명시적인 FTP 필요를 선택하세요. 암호화 드롭다운 메뉴에서 로그온 유형일반으로 선택하고 FTP 자격 증명을 입력한 후 연결을 눌러 통신하세요. 서버와 함께.

9. ProFTPD 서버에 처음 연결하는 경우 새 인증서가 포함된 팝업이 표시되어야 합니다. 향후 인증서를 항상 신뢰합니다라는 확인란을 선택하세요. 세션을 클릭하고 확인을 눌러 인증서를 수락하고 ProFTPD 서버에 인증하세요.

FileZilla가 아닌 다른 클라이언트를 사용하여 FTP 리소스에 안전하게 액세스하려는 경우 해당 클라이언트가 TLS 프로토콜을 통한 FTP를 지원하는지 확인하세요. FTPS를 사용할 수 있는 FTP 클라이언트의 좋은 예는 Windows 플랫폼용 WinSCP와 NIX용 gFTP 또는 LFTP(명령줄)입니다.