vsftpd 出現(xiàn)530 and 500 錯(cuò)誤問題解決辦法
VSFTP 530 Login incorrect And 500 OOPS: vsftpd: refusing to run with writable anonymous root 錯(cuò)誤的解決方法
530 Login incorrect :
在文件中限制匿名用戶,做如下設(shè)置:
anonymous_enable=NO userlist_enable=YES userlist_deny=NO userlist_file=/etc/vsftpd.user_list
這樣只有在 user_list 里面的用戶才可以訪問 ftp。
但是在 service vsftpd restart 后,用 ftp localhost 測試,輸入正確的用戶名和密碼之后,卻一直顯示:530 Login incorrect
Login Failed
后來發(fā)現(xiàn)在 etc下面有個(gè) pam.d 文件夾,進(jìn)去打開 vsftpd 這個(gè)文件,發(fā)現(xiàn)里面對之前的用戶進(jìn)行了限制,將里面對應(yīng)的限制注
釋掉:
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
問題解決。
500 OOPS: vsftpd: refusing to run with writable anonymous root
如果我們已經(jīng)把 vsFTPd 服務(wù)器啟動(dòng)好了,但登錄測試是會(huì)出現(xiàn)類似下面的提示:
500 OOPS: vsftpd: refusing to run with writable anonymous root
這表示 ftp 用戶的根目錄的權(quán)限不對,應(yīng)該改過才對;
[root@localhost ~]# more /etc/passwd | grep ftp
ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin
我們發(fā)現(xiàn) ftp 用戶的根目錄在 /var/ftp,就是這個(gè) /var/ftp 的權(quán)限不對所致,這個(gè)目錄的權(quán)限是不能打開所有權(quán)限的;是您運(yùn)行了 chmod 777 /var/ftp 所致;如果沒有 ftp 用戶這個(gè)根目錄,當(dāng)然您要自己建一個(gè); 如下 FTP 用戶的根目錄是不能針對所有用戶、用戶組、其它用戶組完全開放;
[root@localhost ~]# ls -ld /var/ftp
drwxrwxrwx 3 root root 4096 2005-03-23 /var/ftp
修正這個(gè)錯(cuò)誤,可以用下面的辦法:
[root@localhost ~]# chown root:root /var/ftp
[root@localhost ~]# chmod 755 /var/ftp
有的弟兄可能會(huì)說,那匿名用戶的可讀、可下載、可上傳怎么辦呢?這也簡單,在 /var/ftp 下再建一個(gè)目錄,權(quán)限是 777 的就行了,再改一改 vsftpd.conf 就 OK 了;沒有什么難的;
vsFTPd 出于安全考慮,是不準(zhǔn)讓 ftp 用戶的根目錄的權(quán)限是完全沒有限制的,您可以去讀一下 vsFTPd 的文檔就明白的了;否則也不能稱為最安全的 FTP 服務(wù)器了,對不對?"
另附上 VSFTP 的配置文件:
#About host settings connect_from_port_20=YES #記得在前一小節(jié)提到的主動(dòng)式連線使用的FTP伺服器的埠號嗎?這就是ftp-data的埠號; listen_port=21 #vsftpd使用的命令通道之埠號,如果您想要使用非正規(guī)的埠號,在這個(gè)設(shè)定項(xiàng)目修改吧!不過你必須要知道,這個(gè)設(shè)定值僅適合以stand alone的方式來啟動(dòng)喔! (對于super daemon無效) dirmessage_enable=YES #當(dāng)使用者進(jìn)入某個(gè)目錄時(shí),會(huì)顯示該目錄需要注意的內(nèi)容,顯示的檔案預(yù)設(shè)是.message ,你可以使用底下的設(shè)定項(xiàng)目來修訂! message_file=.message #當(dāng)dirmessage_enable=YES時(shí),可以設(shè)定這個(gè)項(xiàng)目來讓vsftpd尋找該檔案來顯示訊息! listen=YES #若設(shè)定為YES表示vsftpd是以standalone的方式來啟動(dòng)的! pasv_enable=YES #啟動(dòng)被動(dòng)式連線模式(passive mode),一定要設(shè)定為YES的啦! use_localtime=YES #是否使用本地時(shí)間? vsftpd預(yù)設(shè)使用GMT時(shí)間(格林威治),所以會(huì)比臺灣晚8小時(shí),建議設(shè)定為YES吧! write_enable=YES #如果你允許使用者上傳資料時(shí),就要啟動(dòng)這個(gè)設(shè)定值; connect_timeout=60 #單位是秒,在資料連接的主動(dòng)式連線模式下,我們發(fā)出的連接訊號在60秒內(nèi)得不到用戶端的回應(yīng),則不等待并強(qiáng)制斷線咯。 accept_timeout=60 #當(dāng)使用者以被動(dòng)式PASV來進(jìn)行資料傳輸時(shí),如果主機(jī)啟用passive port并等待client超過60秒而無回應(yīng),那么就給他強(qiáng)制斷線!這個(gè)設(shè)定值與connect_timeout類似,不過一個(gè)是管理主動(dòng)連線,一個(gè)管理被動(dòng)連線。 data_connection_timeout=300 #如果伺服器與用戶端的資料連線已經(jīng)成功建立(不論主動(dòng)還是被動(dòng)連線),但是可能由于線路問題導(dǎo)致300秒內(nèi)還是無法順利的完成資料的傳送,那用戶端的連線就會(huì)被我們的vsftpd強(qiáng)制剔除! idle_session_timeout=300 #如果使用者在300秒內(nèi)都沒有命令動(dòng)作,強(qiáng)制離線! max_clients=50 #如果vsftpd是以stand alone方式啟動(dòng)的,那么這個(gè)設(shè)定項(xiàng)目可以設(shè)定同一時(shí)間,最多有多少client可以同時(shí)連上vsftpd哩! ? max_per_ip=5 #與上面max_clients類似,這里是同一個(gè)IP同一時(shí)間可允許多少連線? pasv_min_port=0, pasv_max_port=0 #上面兩個(gè)是與passive mode使用的port number有關(guān),如果您想要使用65400到65410這11個(gè)port來進(jìn)行被動(dòng)式連線模式的連接,可以這樣設(shè)定pasv_max_port=65410以及pasv_min_port=65400。如果是0的話,表示隨機(jī)取用而不限制。 #ftpd_banner=一些文字說明 #當(dāng)使用者連線進(jìn)入到vsftpd時(shí),在FTP用戶端軟體上頭會(huì)顯示的說明文字。不過,這個(gè)設(shè)定值資料比較少啦!建議你可以使用底下的設(shè)定值來取代這個(gè)項(xiàng)目; banner_file=/etc/vsftpd/welcome.txt #這個(gè)項(xiàng)目可以指定某個(gè)純文字檔作為使用者登入vsftpd伺服器時(shí)所顯示的歡迎字眼。 # # # #Entity user settings # guest_enable=NO #若這個(gè)值設(shè)定為YES時(shí),那么任何非anonymous登入的帳號,均會(huì)被假設(shè)成為guest (訪客)喔!至于訪客在vsftpd當(dāng)中,預(yù)設(shè)會(huì)取得ftp這個(gè)使用者的相關(guān)權(quán)限。但可以透過guest_username來修改。 guest_username=ftp #在guest_enable=YES時(shí)才會(huì)生效,指定訪客的身份而已。 local_enable=YES #這個(gè)設(shè)定值必須要為YES時(shí),在/etc/passwd內(nèi)的帳號才能以實(shí)體用戶的方式登入我們的vsftpd主機(jī)喔! write_enable=YES #是否允許實(shí)體用戶寫入 local_max_rate=60000 #實(shí)體用戶的傳輸速度限制,單位為bytes/second, 0為不限制。 chroot_local_user=YES #將使用者限制在自己的家目錄之內(nèi)(chroot)!這個(gè)設(shè)定在vsftpd當(dāng)中預(yù)設(shè)是NO,因?yàn)橛械紫聝蓚€(gè)設(shè)定項(xiàng)目的輔助喔!所以不需要啟動(dòng)他 #但如果啟動(dòng)了他,則表示實(shí)體用戶默認(rèn)就已經(jīng)被chroot,寫在/etc/vsftpd/chroot_list里的用戶反而是沒有被chroot的. chroot_list_enable=YES #是否啟用將某些實(shí)體用戶限制在他們的家目錄內(nèi)?預(yù)設(shè)是NO ,不過,如果您想要讓某些使用者無法離開他們的家目錄時(shí),可以考慮將這個(gè)設(shè)定為YES ,并且規(guī)劃下個(gè)設(shè)定值 chroot_list_file=/etc/vsftpd/chroot_list #如果chroot_list_enable=YES那么就可以設(shè)定這個(gè)項(xiàng)目了!他里面可以規(guī)定那一個(gè)實(shí)體用戶會(huì)被限制在自己的家目錄內(nèi)而無法離開! (chroot)一行一個(gè)帳號即可! userlist_enable=YES #是否借助vsftpd的抵擋機(jī)制來處理某些不受歡迎的帳號,與底下的設(shè)定有關(guān); userlist_deny=YES #當(dāng)userlist_enable=YES時(shí)才會(huì)生效的設(shè)定,若此設(shè)定值為YES時(shí),則當(dāng)使用者帳號被列入到某個(gè)檔案時(shí),在該檔案內(nèi)的使用者將無法登入vsftpd伺服器!該檔案檔名與下列設(shè)定項(xiàng)目有關(guān)。 userlist_file=/etc/vsftpd/user_list #若上面userlist_deny=YES時(shí),則這個(gè)檔案就有用處了!在這個(gè)檔案內(nèi)的帳號都無法使用vsftpd喔! # # # #Anonymous settings # anonymous_enable=YES #設(shè)定為允許anonymous登入我們的vsftpd主機(jī)!預(yù)設(shè)是YES ,底下的所有相關(guān)設(shè)定都需要將這個(gè)設(shè)定為anonymous_enable=YES之后才會(huì)生效! anon_root=/var/ftp anon_world_readable_only=YES #僅允許anonymous具有下載可讀檔案的權(quán)限,預(yù)設(shè)是YES。 anon_other_write_enable=YES #是否允許anonymous具有寫入的權(quán)限?預(yù)設(shè)是NO!如果要設(shè)定為YES,那么開放給anonymous寫入的目錄亦需要調(diào)整權(quán)限,讓vsftpd的PID擁有者可以寫入才行! anon_mkdir_write_enable=YES #是否讓anonymous具有建立目錄的權(quán)限?預(yù)設(shè)值是NO!如果要設(shè)定為YES,那么anony_other_write_enable必須設(shè)定為YES ! #是否讓anonymous具有上傳資料的功能,預(yù)設(shè)是NO,如果要設(shè)定為YES ,則anon_other_write_enable=YES必須設(shè)定。 deny_email_enable=YES #將某些特殊的email address抵擋住,不讓那些anonymous登入!如果以anonymous登入主機(jī)時(shí),不是會(huì)要求輸入密碼嗎?密碼不是要您輸入您的email address嗎?如果你很討厭某些email address ,就可以使用這個(gè)設(shè)定來將他取消登入的權(quán)限!需與下個(gè)設(shè)定項(xiàng)目配合: #banned_email_file=/etc/vsftpd/banned_emails #如果deny_email_enable=YES時(shí),可以利用這個(gè)設(shè)定項(xiàng)目來規(guī)定哪個(gè)email address不可登入我們的vsftpd喔!在上面設(shè)定的檔案內(nèi),一行輸入一個(gè)email address即可! no_anon_password=YES #當(dāng)設(shè)定為YES時(shí),表示anonymous將會(huì)略過密碼檢驗(yàn)步驟,而直接進(jìn)入vsftpd伺服器內(nèi)喔!所以一般預(yù)設(shè)都是NO的! anon_max_rate=40000 #這個(gè)設(shè)定值后面接的數(shù)值單位為bytes/秒,限制anonymous的傳輸速度,如果是0則不限制(由最大頻寬所限制),如果您想讓anonymous僅有30 KB/s的速度,可以設(shè)定『anon_max_rate=30000』 anon_umask=077 #限制anonymous的權(quán)限!如果是077則anonymous傳送過來的檔案權(quán)限會(huì)是-rw-------喔! # # # # About system settings ascii_download_enable=YES #如果設(shè)定為YES ,那么client就可以使用ASCII格式下載檔案。 ascii_upload_enable=YES #與上一個(gè)設(shè)定類似的,只是這個(gè)設(shè)定針對上傳而言!預(yù)設(shè)是NO one_process_model=NO #這個(gè)設(shè)定項(xiàng)目比較危險(xiǎn)一點(diǎn)~當(dāng)設(shè)定為YES時(shí),表示每個(gè)建立的連線都會(huì)擁有一支process在負(fù)責(zé),可以增加vsftpd的效能。不過,除非您的系統(tǒng)比較安全,而且硬體配備比較高,否則容易耗盡系統(tǒng)資源喔!一般建議設(shè)定為NO的啦! tcp_wrappers=YES #當(dāng)然我們都習(xí)慣支援TCP Wrappers的啦!所以設(shè)定為YES吧! xferlog_enable=YES #當(dāng)設(shè)定為YES時(shí),使用者上傳與下載檔案都會(huì)被紀(jì)錄起來。記錄的檔案與下一個(gè)設(shè)定項(xiàng)目有關(guān): xferlog_file=/var/log/vsftpd.log #如果上一個(gè)xferlog_enable=YES的話,這里就可以設(shè)定了!這個(gè)是登錄檔的檔名啦! xferlog_std_format=NO #是否設(shè)定為wu ftp相同的登錄檔格式? !預(yù)設(shè)為NO ,因?yàn)榈卿洐n會(huì)比較容易讀!不過,如果您有使用wu ftp登錄檔的分析軟體,這里才需要設(shè)定為YES nopriv_user=nobody #我們的vsftpd預(yù)設(shè)以nobody作為此一服務(wù)執(zhí)行者的權(quán)限。因?yàn)閚obody的權(quán)限相當(dāng)?shù)牡停虼思词贡蝗肭郑肭终邇H能取得nobody的權(quán)限喔! pam_service_name=vsftpd #這個(gè)是pam模組的名稱,我們放置在/etc/pam.d/vsftpd即是這個(gè)咚咚!
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章:
1. vsftpd配置文件詳解2. 史上最詳細(xì)的vsftpd配置文件詳解3. 詳解ftp環(huán)境配置解決方案(vsftpd)4. vsftpd的530 Login incorrect錯(cuò)誤解決方法 vsftpd登錄錯(cuò)誤5. Ubuntu 用vsftpd 配置FTP服務(wù)器教程詳解6. 安全的FTP服務(wù)器 vsftpd簡介7. Ubuntu 安裝 vsftpd FTP詳細(xì)步驟8. Linux編譯安裝vsftpd服務(wù)器(本地用戶驗(yàn)證方式)9. 最全面的vsftpd配置文件詳解10. ubuntu如何搭建vsftpd服務(wù)器
