서버 설정 · 2 min read · Dec 16, 2025
OpenSUSE Leap 42.1에서 TLS 및 가상 사용자와 함께 Pure-FTPd 설치하는 방법
Pure-FTPd는 Troll-FTPd를 기반으로 한 무료 경량 FTP 서버로, 2001년에 개발이 시작되었으며 Linux, *BSD, Solaris 및 HP-UX를 포함한 많은 Unix 유사 운영 체제에서 실행됩니다. Pure-FTPd는 가상 도메인, chroot 홈 디렉토리, 가상 사용자, TLS/SSL 지원, 가상 쿼터 등과 같은 많은 기능을 제공합니다.
이 튜토리얼에서는 OpenSUSE Leap 42.1에서 pure-ftpd를 설치하고 구성하는 방법을 보여드리겠습니다. TLS/SSL로 pure-ftpd를 설정한 다음 가상 사용자를 설정하는 방법을 보여드리겠습니다.
전제 조건
- OpenSUSE Leap 42.1
- 루트 권한
- OpenSUSE, Zypper 지식
1단계 - SuSEfirewall2 설치 및 구성
SuSEfirewall2는 ‘/etc/sysconfig/SuSEfirewall2’ 파일에 방화벽 구성을 생성하는 스크립트입니다. SuSEfirewall2를 설치한 후 SSH 및 FTP 서비스의 포트를 열겠습니다.
zypper로 SuSEfirewall2를 설치합니다:
zypper in SuSEfirewall2다음으로, vim으로 ‘/etc/sysconfig/SuSEfirewall2’ 구성 파일을 편집합니다:
vim /etc/sysconfig/SuSEfirewall2253번째 줄에 새로운 서비스 ssh와 FTP를 추가합니다:
FW_SERVICES_EXT_TCP="ssh ftp"저장하고 종료합니다.
이제 systemctl 명령으로 SuSEfirewall2를 시작합니다:
systemctl start SuSEfirewall22단계 - Pure-FTPd 설치 및 구성
이 단계에서는 TLS/SSL 구성을 위해 OpenSSL과 함께 pure-ftpd를 설치하고 pure-ftpd 사용자 및 그룹을 구성합니다.
아래와 같이 zypper로 애플리케이션을 설치합니다:
zypper in pure-ftpd openssl이제 새로운 그룹 ‘ftpgroup‘과 마스터 ‘FTP 사용자’인 ‘ftpuser‘라는 새로운 사용자를 그룹에 추가합니다.
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuserpure-ftpd 디렉토리로 이동하여 vim 편집기로 ‘pure-ftpd.conf’ 구성 파일을 편집합니다:
cd /etc/pure-ftpd/
vim pure-ftpd.conf익명 사용자를 비활성화하기 위해 81번째 줄의 값을 ‘yes’로 변경합니다.
NoAnonymous yes백엔드를 구성하기 위해 131번째 줄의 주석을 제거합니다. Pure-ftpd는 MySQL, PostgreSQL 및 LDAP을 백엔드로 지원하지만, 이 튜토리얼에서는 ‘PureDB’를 백엔드로 사용할 것입니다.
PureDB /etc/pure-ftpd/pureftpd.pdbPureDB를 인증 소스로 사용할 것이므로 141번째 줄의 PAMAuthentication 줄을 주석 처리하여 PAM 인증을 비활성화합니다.
#PAMAuthentication yes저장하고 종료합니다.
3단계 - Pure-FTPd용 TLS/SSL 구성
openssl 명령으로 ‘/etc/ssl/private’ 디렉토리에 새 자체 서명된 인증서 파일을 생성합니다:
openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem -days 365인증서 파일의 권한을 0600으로 변경합니다:
chmod 600 /etc/ssl/private/pure-ftpd.pem다음으로, pure-ftpd 디렉토리로 돌아가서 클라이언트 연결을 위한 TLS/SSL 지원을 활성화하기 위해 구성 파일을 편집합니다.
cd /etc/pure-ftpd/
vim pure-ftpd.confTLS를 활성화하기 위해 439번째 줄의 주석을 제거합니다.
TLS 1보안을 강화하기 위해 449번째 줄의 주석을 제거하고 새로운 옵션을 추가합니다.
TLSCipherSuite HIGH:MEDIUM:+TLSv1:!SSLv2:!SSLv3인증서 파일을 정의하기 위해 445번째 줄의 주석을 제거합니다.
CertFile /etc/ssl/private/pure-ftpd.pem저장하고 종료합니다.
이제 systemctl 명령으로 pure-ftpd를 시작합니다:
systemctl start pure-ftpd4단계 - 가상 사용자 구성
Pure-FTPd는 실제 시스템(Linux) 사용자 대신 가상 사용자를 생성하고 사용할 수 있는 기능을 제공합니다. Pure-FTPd는 여러 인증 백엔드를 제공하며 가상 사용자 구성은 서버에서 사용되는 백엔드에 따라 다릅니다. 2단계에서 우리는 ‘PureDB’를 백엔드로 설정했습니다.
pure-ftpd에서 제공하는 ‘pure-pw’ 명령으로 새로운 가상 사용자를 생성할 수 있습니다. 이 단계에서는 ‘/srv/ftp/shiro’ 디렉토리를 FTP 홈 디렉토리로 하고 사용자가 해당 디렉토리에 chroot되어 다른 시스템 디렉토리에 접근할 수 없는 ‘shiro’라는 새로운 가상 사용자를 생성합니다.
pure-pw로 새로운 가상 사용자를 생성합니다:
pure-pw useradd shiro -u ftpuser -d /srv/ftp/shiro가상 사용자를 위한 디렉토리를 생성하고 해당 디렉토리의 소유자를 마스터 ‘FTP 사용자’로 변경합니다.
mkdir -p /srv/ftp/shiro
chown -R ftpuser.ftpgroup /srv/ftp/shiro다음으로, 아래 명령으로 변경 사항을 저장해야 합니다:
pure-pw mkdb이제 사용자 shiro가 사용 준비가 되었으며, 명령줄 또는 GUI 인터페이스인 FileZilla를 사용하여 서버에 연결할 수 있습니다.
참고:
pure-pw는 더 많은 명령 옵션을 제공하며, ‘ pure-pw help ‘를 사용하여 모든 유용한 명령을 볼 수 있습니다.
5단계 - 테스트
테스트를 위해 터미널에서 FTP 명령을 사용할 것입니다. 터미널을 열고 “ftp”를 입력합니다:
ftp다음으로 pure-ftpd 서버 IP를 입력합니다:
open 192.168.43.69사용자 ‘shiro’와 비밀번호로 로그인한 후 ‘Enter’를 누릅니다.
‘put’ 명령으로 파일을 업로드해 보세요:
put picture.png mypict.png이제 아래의 ls 명령으로 서버에서 mypict.png 파일을 볼 수 있습니다:
ls
참고
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.