vsftpd는 Very Secure FTP Daemon의 약자로 (FTP는 파일 전송 프로토콜입니다). 오랫동안 사용 가능한 데몬으로, 실제로 Rocky Linux와 많은 다른 리눅스 배포판에서 기본 FTP 데몬입니다.
vsftpd는 PAM(Pluggable Authentication Modules)을 사용하여 가상 사용자의 사용을 허용합니다. 이러한 가상 사용자는 시스템에 존재하지 않으며 FTP를 사용하는 것 외에 다른 권한이 없습니다. 가상 사용자가 침해당하더라도 해당 사용자로서 액세스한 후에 다른 권한을 갖지 않습니다. 이 설정은 매우 안전하지만 약간의 추가 작업이 필요합니다.
sftp 고려
여기에서 vsftpd를 설정하는 데 사용된 보안 설정을 사용하더라도 sftp를 대신 고려할 수 있습니다. sftp는 전체 연결 스트림을 암호화하며 이러한 이유로 더 안전합니다. sftp를 설정하고 SSH를 제한하는 보안 서버 - sftp 문서를 만들었습니다.
일부 설정을 비활성화하고 다른 설정을 활성화해야 합니다. 일반적으로 vsftpd를 설치하면 가장 안정적인 옵션이 이미 설정되어 있습니다. 그러나 이를 확인하는 것이 좋습니다.
구성 파일을 확인하고 필요한 경우 변경하려면 다음을 실행하세요:
vi /etc/vsftpd/vsftpd.conf
"anonymous_enable=" 줄을 찾고 "NO"로 설정되어 있고 주석 처리되지 않았는지 확인합니다. (이 줄을 주석 처리하면 익명 로그인이 활성화됩니다). 올바른 경우 줄은 다음과 같아야 합니다:
anonymous_enable=NO
"local_enable"이 "YES"로 설정되어 있는지 확인하세요:
local_enable=YES
로컬 루트 사용자를 위한 줄을 추가합니다. 설치 중인 서버가 웹 서버인 경우, 우리는 Apache 웹 서버 Multi-Site 설정을 사용하고 로컬 루트가 해당 설정을 반영한다고 가정합니다. 설정이 다른 경우 또는 웹 서버가 아닌 경우 "local_root" 설정을 조정하세요:
local_root=/var/www/sub-domains
"write_enable"도 "YES"로 설정되어 있는지 확인합니다:
write_enable=YES
"chroot_local_users" 줄을 찾아 비고를 제거하세요. 아래에 표시된 것처럼 이후에 두 줄을 추가하세요:
# 가상 사용자 설정
user_config_dir=/etc/vsftpd/vsftpd_user_conf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
nopriv_user=vsftpd
guest_username=vsftpd
마지막으로 인터넷을 통해 전송되는 비밀번호의 암호화를 강제하는 섹션을 파일 가장 아래에 추가해야 합니다. openssl이 설치되어 있어야 하며 이를 위해 인증서 파일을 생성해야 합니다.
텍스트 파일을 생성한 후에는 vsftpd가 가상 사용자에 대해 사용할 비밀번호 데이터베이스를 생성해야 합니다. 이를 위해 db_load 명령어를 사용합니다. db_load는 시스템에 로드되어 있는 libdb-utils에서 제공되지만 시스템에 설치되어 있지 않은 경우 다음 명령어로 간단히 설치할 수 있습니다:
FTP로 사용자의 로그인을 테스트하려면 명령 줄에서 테스트할 수도 있으며, FTP로 해당 시스템에 액세스를 테스트할 수도 있습니다. 그러나, FileZilla와 같은 FTP 클라이언트로 테스트하는 것이 가장 간단합니다.
_vsftpd_를 실행 중인 서버로 가상 사용자로 테스트할 때, SSL/TLS 인증서 신뢰 메시지가 표시됩니다. 이 메시지는 서버가 인증서를 사용하고 계속하기 전에 인증서를 승인하라는 요청입니다. 가상 사용자로 연결된 경우 "local_root" 폴더에 파일을 업로드할 수 있습니다.
파일을 업로드할 수 없는 경우 각 단계를 다시 확인해야 할 수도 있습니다. 예를 들어, "local_root"의 소유권 권한이 "vsftpd" 사용자와 "nogroup" 그룹으로 설정되어 있는지 확인해야 할 수 있습니다.