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