系統chroot vsftpd,匿名用戶可以登陸,本地用戶卻無法登陸
已經將vsftpd 送進系統的Chroot環境,工作良好。就是無法通過pam驗證,我已經將pam相關的文件複製進chroot了,問題可以確定的是出在pam驗證方面,只是不知道這些pam文件都藏在系統哪裡,兄弟們幫幫忙吧!
sys:Centos5.3
cp -rp /lib/security /chroot/lib/
cp -rp /etc/pam* /chroot/匿名用戶登陸
# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.3.0)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,147,252).
150 Here comes the directory listing.
-rw-r--r-- 1 0 0 0 Aug 19 23:20 pub
226 Directory send OK.chroot里的實體用戶登陸
# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.3.0)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): jazz
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.# cat /chroot/var/log/vsftpd.log
Fri Aug 20 07:40:32 2010 CONNECT: Client "127.0.0.1"
Fri Aug 20 07:40:37 2010 OK LOGIN: Client "127.0.0.1", anon password "?"
Fri Aug 20 07:40:49 2010 CONNECT: Client "127.0.0.1"
Fri Aug 20 07:40:53 2010 FAIL LOGIN: Client "127.0.0.1"
# ls /chroot/etc/
group hosts.allow ld.so.conf pam.d passwd shadow
host.conf hosts.deny localtime pam_pkcs11 resolv.conf vsftpd.conf
hosts ld.so.cache nsswitch.conf pam_smb.conf security
# chroot /chroot usr/local/sbin/vsftpd &
4330
# ls -l /proc/4330/root
lrwxrwxrwx 1 root root 0 08-20 07:35 /proc/4330/root -> /chroot
# ls -l /proc/4330/root/
總計 52
drwxr-xr-x 2 root root 4096 08-20 07:02 bin
drwxr-xr-x 2 root root 4096 08-20 05:37 dev
drwxr-xr-x 5 root root 4096 08-20 07:33 etc
drwxr-xr-x 5 root root 4096 08-19 22:52 home
drwxr-xr-x 4 root root 4096 08-20 07:11 lib
drwx------ 2 root root 16384 08-20 03:17 lost+found
drwxr-xr-x 2 root root 4096 08-20 07:21 sbin
drwxrwxrwt 2 root root 4096 08-20 06:24 tmp
drwxr-xr-x 6 root root 4096 08-20 06:53 usr
drwxr-xr-x 5 root root 4096 08-20 06:53 var
# ls -l /chroot
總計 52
drwxr-xr-x 2 root root 4096 08-20 07:02 bin
drwxr-xr-x 2 root root 4096 08-20 05:37 dev
drwxr-xr-x 5 root root 4096 08-20 07:33 etc
drwxr-xr-x 5 root root 4096 08-19 22:52 home
drwxr-xr-x 4 root root 4096 08-20 07:11 lib
drwx------ 2 root root 16384 08-20 03:17 lost+found
drwxr-xr-x 2 root root 4096 08-20 07:21 sbin
drwxrwxrwt 2 root root 4096 08-20 06:24 tmp
drwxr-xr-x 6 root root 4096 08-20 06:53 usr
drwxr-xr-x 5 root root 4096 08-20 06:53 var
《解決方案》
你的vsftpd的配置文件配置了本地用戶登錄了嗎?
《解決方案》
把配置文件發上來看看。
《解決方案》
如果我們不支持PAM認證方式,那麼本地用戶就可以登陸,而默認編譯的vsftpd支持PAM認證方式,所以是不支持本地用戶登陸的。恩,從這點說,這也是vsftp安全的一個表現----禁止本地用戶登陸。我們登陸後進行測試,傳一個文件上去,得,失敗了,那下載個文件下來吧,恩,這是成功的,而且我們發現我們可以進入到系統根目錄,這樣很危險。
《解決方案》
本帖最後由 williamlui00 於 2010-09-11 03:03 編輯
我昨天晚上基本解決了這個問題:
可以實現 本地用戶和虛擬用戶同時登陸。
我用的 是 RedHat 5.5 x64 PAM 用戶認證。
http://linux.chinaunix.net/bbs/thread-1170636-1-1.html