Ubuntu - 재부팅 시 FTP에 대한 VSFTPD 구성이 실패합니다.

Ubuntu - 재부팅 시 FTP에 대한 VSFTPD 구성이 실패합니다.

Ubuntu 가상 머신에서 FTP 서버를 설정해야 하는데 VSFTPD에서 구성 파일을 구성하는 데 문제가 있습니다.

온라인 튜토리얼에서 선택할 수 있는 다양한 옵션과 다양한 추론이 계속 표시됩니다. 이해가 안 되는 설정을 활성화하지 않고 간단하고 안전한 구성을 원할 뿐입니다.

지금까지 다음 옵션을 사용하기로 선택했습니다./etc/vsftpd.conf

Listen=NO
Anonymous_enable=NO
Local_enable=YES
wrtite_enable=YES
dirmessage_enable=YES
use_localtime=YES
connect_from_port_20=YES
xferlog_enable=YES
ftpd_banner=Welcome to Toms FTP Server.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

내가 이해하는 한 이러한 옵션은 다음을 수행합니다.

독립형 청취 가능, 익명은 인증되지 않은 로그인 거부, 쓰기 가능은 파일 쓰기 허용, dir 메시지는 디렉토리 해석, 로컬 시간은 파일 날짜를 지정하는 데 사용되는 시간, 포트 20은 설명이 필요하며 xferlog는 로그 생성/형식 유형입니까? , 배너는 설명이 필요 없으며 chroot는 사용자가 자신의 디렉터리로 제한되도록 지정하고 해당 디렉터리로 제한되지 않은 사용자는 chroot_list에 나열됩니다.

내가 겪고 있는 문제는 다음과 같이 실제로 액세스 권한이 있는 사용자가 명시되는 사용자 목록에 대한 튜토리얼 참조가 계속 표시된다는 것입니다.

user_sub_token=$USER
local_root=/home/$USER/ftp
userlist_enable=YES
userlist_file=/etc/vsftpd.userlist
userlist_deny=NO

이것은 내 파일에 존재하지 않으며 수동으로 입력하려고 할 때마다 VSFTPD가 재부팅 시 시작되지 못하게 됩니다. 거의 모든 튜토리얼에서 이것을 보았지만 내 구성 파일에는 포함되어 있지 않습니까? ? ?

내가 잘못 구성하려고 했나요?

보안 VSFTPD 구성을 위한 최소 요구 사항은 무엇입니까?

이 사용자 목록은 더 이상 지원되지 않습니까?

이 사용자 목록이 계속 필요합니까?

해당 파일을 삭제하고 다시 시작해도 오류 코드가 사라지지 않고 서비스가 완전히 중단되며 매번 다시 설치해야 합니다. 오류 코드는 다음과 같습니다.

systemctl status vsftpd.service

● vsftpd.service - vsftpd FTP server
   Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2020-04-26 13:58:09 UTC; 14min ago
  Process: 30588 ExecStart=/usr/sbin/vsftpd /etc/vsftpd.conf (code=exited, status=2)
  Process: 30584 ExecStartPre=/bin/mkdir -p /var/run/vsftpd/empty (code=exited, status=0/SUCCESS)
 Main PID: 30588 (code=exited, status=2)

Apr 26 13:58:09 ubuntu systemd[1]: Starting vsftpd FTP server...
Apr 26 13:58:09 ubuntu systemd[1]: Started vsftpd FTP server.
Apr 26 13:58:09 ubuntu systemd[1]: vsftpd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Apr 26 13:58:09 ubuntu systemd[1]: vsftpd.service: Failed with result 'exit-code'.

답변1

주석을 달거나 삭제 use_localtime하고 다시 시도하세요.

#use_localtime=YES

답변2

listen=NO방법다른 것들어오는 네트워크 연결에 대한 수신 대기를 처리합니다. 이는 클래식 inetd, a xinetd또는 .socket단위 일 수 있습니다 systemd.

주요 요점은 구성할 때 listen=NO프로세스 가 시작된 모든 것이 즉시 들어오는 연결을 제공하고 해당 연결이 끝나면 시작된 것이 새로운 연결에 대해 새 인스턴스를 시작하기 때문에 종료할 수 있다고 vsftpd가정한다는 것입니다 . 이렇게 구성하고 간단한 것부터 시작하면 프로세스의 표준 입력 및 출력에 연결된 네트워크 소켓을 제공할 것으로 예상됩니다 .vsftpdvsftpdvsftpdsystemctl start vsftpdvsftpdsystemdvsftpd

그러나 귀하의 vsftpd.service장치는 이러한 유형의 소켓 전달(적어도 하나의 라인 StandardInput=socket과 해당 vsftpd.socket장치가 필요함) 에 대해 구성되지 않았으므로 vsftpd프로세스는 단일 양방향 네트워크 소켓 이외의 표준 입력 및 출력을 얻고 실패하며 결과가 표시됩니다. '잘못된 매개변수' 오류가 발생했습니다.

처음부터 시작할 계획이라면 vsftpd들어오는 FTP 연결을 수신하는 역할을 담당 systemctl start vsftpd.service하므로 vsftpd그렇게 구성해야 합니다 listen=YES.

이를 사용하기로 선택한 경우, userlist_file한 줄에 하나씩 간단한 사용자 이름 목록이 포함된 파일을 가리켜야 합니다. 경우 userlist_deny=NO파일에 나열된 사용자는 다음과 같습니다.로그인이 허용된 유일한 사람FTP를 통해. 이 설정을 사용 하면 userlist_deny=YES사용자 목록 파일에 나열된 사용자는항상 거절당했어, 비밀번호를 묻기 전에도 마찬가지입니다.

관련 정보