"/etc/pam.d/vsftpd"로 차단된 사용자는 여전히 "lftp"로 로그인할 수 있습니다.

"/etc/pam.d/vsftpd"로 차단된 사용자는 여전히 "lftp"로 로그인할 수 있습니다.

192.168.122.50 컴퓨터에서 FTP 서버를 실행하고 있습니다.

다음은 /etc/vsftpd/vsftpd.conf 파일의 마지막 세 가지 지시문입니다.

pam_service_name=vsftpd
#userlist_enable=YES
#userlist_deny=YES

다음은 /etc/pam.d/vsftpd 파일의 내용입니다.

#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required     pam_shells.so
auth       include      password-auth
account    include      password-auth
session    required     pam_loginuid.so
session    include      password-auth

다음은 /etc/vsftpd/ftpusers 파일의 내용입니다.

#This is the list of blocked users as per the following line /etc/pam.d/vsftpd
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody

따라서 예를 들어 root두 명의 사용자가 이 시스템의 FTP 서버에 액세스하는 것을 차단해야 하지만 ssam두 명의 사용자에게는 액세스를 허용해야 합니다.

이제 클라이언트 시스템 192.168.0.2에서 이것을 시도했습니다.

am@centos ~]$ ftp 192.168.122.50
Connected to 192.168.122.50 (192.168.122.50).
220 (vsFTPd 2.2.2)
Name (192.168.122.50:ssam): ssam    
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> exit
221 Goodbye.
[ssam@centos ~]$ ftp 192.168.122.50
Connected to 192.168.122.50 (192.168.122.50).
220 (vsFTPd 2.2.2)
Name (192.168.122.50:ssam): root
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> bye
221 Goodbye.

으로 출력ssam사용자를 허용하고 root사용자를 차단하도록 설정합니다.

이제 루트 사용자로 서버에 연결하기 위해 클라이언트 측에서 lftp 명령을 시도했습니다.

[ssam@centos ~]$ lftp [email protected]
Password: 
lftp [email protected]:~>

실제로 로그인이 가능합니다금지된사용자, rootlftp 프롬프트가 표시되기 때문입니다. 이제 명령을 실행하려고 합니다.

lftp [email protected]:~>
ls: Login failed: 530 Login incorrect.

이제 서버가 정신을 차린 것 같으니 더 이상 아무것도 할 수 없다고 말하고 있습니다. 그러나 플러그형 인증 모듈은 사용자가 root처음부터 서버에 진입하는 것을 방지해야 합니다.

누군가 나에게 이것을 설명해 줄 수 있습니까?

답변1

IMO, 이것은 클라이언트가 작동하는 한 가지 방법입니다 lftp. 로그 파일 /var/log/secure(RHEL/CentOS에서) 또는 유사한 이벤트를 확인하세요.

pam_listfile(vsftpd:auth): Refused user root for service vsftpd

FTP 트래픽(RHEL 6.x, vsftpd 2.2.2, lftp 4.0.9)을 스니핑하여 이 동작을 확인했습니다. FTP 연결은 ls사용자 이름과 비밀번호를 입력할 때 설정되는 유효한 FTP 명령( 이라고도 함)을 입력한 후에만 설정됩니다 .

답변2

vim /etc/vsftpd/vsftpd.conf 

두 번째 줄로 오세요…userlist_enable="NO"

저장하고 나중에

# vim /etc/vsftpd/ftpusers

이 파일의...에서 "루트" 사용자를 제거합니다.

FTP를 통해 로그인하는 사용자는 허용되지 않습니다. 서비스를 저장하고 다시 시작하십시오. 효과가 있었으면 좋겠습니다...

관련 정보