본문 바로가기
리눅스

Proftpd

by 다움위키 2024. 5. 5.

원문 : https://dawoum.duckdns.org/wiki/Proftpd

 

Original article: w:Proftpd

ProFTPD (Pro FTP daemon의 약어)는 FTP 서버입니다. ProFTPD는 유닉스-계열 시스템과 Microsoft Windows (Cygwin을 통해)와 호환되는 자유와 오픈-소스 소프트웨어입니다. vsftpdPure-FTPd와 함께, ProFTPD는 오늘날 유닉스-계열 환경에서 가장 널리 사용되는 FTP 서버 중 하나입니다. 예를 들어, 단순성, 속도 또는 보안 측면에 초점을 맞춘 vsftpdPure-FTPd와 비교하여, ProFTPD의 주요 설계 목표는 기능이 풍부한 FTP 서버가 되어, 사용자에게 많은 구성 선택사항을 제공하는 것입니다.

Installations

데비안 저장소에서 설치할 수 있습니다.

  • sudo apt install proftpd-core

게다가, TLS/SSL을 지원하기 위해 다음 모듈을 설치해야 합니다:

  • sudo apt install proftpd-mod-crypto

Configurations

이전 vsftpd에서 설정을 다음과 같습니다:

  • 익명 사용자 허용하지 않음
  • 리눅스 사용자로 로그인
  • Passiveport로 접근
  • TLS/SSL 설정

기본 설정 파일은 /etc/proftpd/proftpd.conf 파일이고, 익명 사용자 접근을 허용하지 않습니다.

리눅스 사용자와 암호를 그대로 사용하기 위해, 설정에서 다음을 주석해제합니다:

  • AuthOrder mod_auth_pam.c* mod_auth_unix.c

게다가, Google Authenticator를 사용하고 있다면, 아직 확인 전이지만, vsftpd와 마찬가지로 회피하는 방법을 사용하거나 별도로 설정을 추가해야 합니다.

다음으로 패시브포트를 이용하기 위해, 아래와 같이 주석해제합니다:

  • PassivePorts 25000 32000

위와 같이 설정을 수정한 후에, 서비스를 재시작합니다:

  • sudo systemctl restart proftpd.service

아무런 오류 메시지가 나오지 않을 수 있지만, 반드시 서비스 상태를 확인해 보십시오. 서비스는 시작하지만, 서버에 접근할 수 없는 경우가 발생할 수 있습니다:

  • sudo systemctl status proftpd.service

TLS/SSL support

이제 TLS/SSL을 설정하기 위해, Let's Encrypt를 사용해서 인증서를 발급받습니다. 그런-다음, /etc/proftpd/modules.conf 파일에서 다음을 주석해제합니다:

  • LoadModule mod_tls.c

그런-다음 /etc/proftpd/tls.conf 파일을 수정합니다:

<IfModule mod_tls.c>
TLSEngine                               on
TLSLog                                  /var/log/proftpd/tls.log
TLSProtocol                             SSLv23
TLSRequired on
TLSOptions EnableDiags NoSessionReuseRequired
TLSVerifyClient off
TLSRSACertificateFile /etc/letsencrypt/live/dawoum.duckdns.org/fullchain.pem
TLSRSACertificateKeyFile /etc/letsencrypt/live/dawoum.duckdns.org/privkey.pem
</IfModule>

서비스를 재시작하고, 상태를 확인합니다:

  • sudo systemctl restart proftpd.service
  • sudo systemctl status proftpd.service

HideFiles

기본 설정으로 로그인한 후에, 숨긴 파일과 디렉토리를 전부 표시함으로써, 필요한 파일이나 디렉토리를 찾는 것이 힘들 수 있습니다. 숨김 속성을 가진 파일과 디렉토리를 표시하지 않도록 설정할 수 있습니다.

다음을 /etc/proftpd/proftpd.conf 파일에 추가하고 서비스를 재시작합니다:

<Directory />
# Enable hiding data based on user, group, and files the logged
# in user would have no access to.
    HideNoAccess on
    HideUser on
    HideGroup on
# Hide files in the parent directories.
    HideFiles (^\..*)
    <Limit ALL>
        IgnoreHidden on
    </Limit>
</Directory>

Features

ProFTPD는 다른 많은 FTP 데몬에서는 사용할 수 없는 다양한 선택 사항을 포함합니다.[3] ProFTPD의 구성은 /etc/proftpd/proftpd.conf라는 단일 주요 구성 파일에서 수행됩니다. 아파치 HTTP 서버의 구성 파일과 유사하기 때문에, 이 인기 있는 웹 서버를 사용하는 사람은 직관적으로 그것의 구성을 이해할 수 있습니다.

가장 눈에 띄는 기능 중 일부는 다음과 같습니다:[4]

  • 아파치의 ".htaccess"와 유사한 디렉터리별 ".ftpaccess" 구성
  • 다중 가상 FTP 서버와 익명 FTP 서비스
  • 시스템 부하에 따라 독립-형 서버 또는 inetd/xinetd에서 실행
  • 익명 FTP 루트 디렉터리에는 임의의 특정 디렉터리 구조, 시스템 이진-파일 또는 기타 시스템 파일이 필요하지 않음
  • 최신 인터넷 환경에서 보안 문제를 나타내는 SITE EXEC 명령이 없음
  • 유닉스-스타일 허가권 또는 사용자/그룹 소유권을 기반으로 하는 숨진 디렉터리와 파일
  • "루트" 능력을 악용할 수 있는 공격 가능성을 줄이기 위해 독립-실행형 모드에서 구성 가능한 권한 없는 사용자로 실행
  • 로깅 및 utmp/wtmp 지원
  • 만료된 계정에 대한 지원을 포함한 섀도우 비밀번호 제품군 지원
  • 모듈형 설계로 모듈을 통해 서버를 쉽게 확장할 수 있습니다. SQL 데이터베이스, LDAP 서버, SSL/TLS 암호화, RADIUS 지원 등을 위한 모듈이 작성되어 왔습니다.
  • IPv6 지원

Graphical user interface

ProFTPD에는 명령-줄 인터페이스 (CLI)만 제공되지만, CLI보다 이를 선호하거나 둘의 조합을 사용하려는 사용자를 위해 ProFTPD에 대해 존재하는 여러 타사 그래픽 사용자 인터페이스 (GUI)가 있습니다. 특히 현재 사용자 작업 및 파일 전송을 실시간으로 모니터링하는 경우 GUI는 CLI보다 매우 유용하고 우수할 수 있습니다. ProFTPD에 대한 기존 GUI 중 일부는 다음과 같습니다 (선택):

External links