1. 程式人生 > >Vsftpd服務配置、ftp命令、錯誤代碼、日誌格式

Vsftpd服務配置、ftp命令、錯誤代碼、日誌格式

Vsftpd服務配置 ftp命令 錯誤代碼 日誌格式

1、Vsftpd的配置文件:


/etc/vsftpd/vsftpd.conf :主配置文件

/usr/sbin/vsftpd :Vsftpd的主程序

/etc/rc.d/init.d/vsftpd :啟動腳本

/etc/pam.d/vsftpd :PAM認證文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止訪問的用戶來自/etc/vsftpd/ftpusers文件中的用戶

/etc/vsftpd/ftpusers :禁止使用vsftpd的用戶列表文件。記錄不允許訪問FTP服務器的用戶名單,管理員可以把一些對系統安全有威脅的用戶賬號記錄在此文件中,以免用戶從FTP登錄後獲得大於上傳下載操作的權利,而對系統造成損壞。(註意:linux-4中此文件在/etc/目錄下)

/etc/vsftpd/user_list :禁止或允許使用vsftpd的用戶列表文件。這個文件中指定的用戶缺省情況(即在/etc/vsftpd/vsftpd.conf中設置userlist_deny=YES)下也不能訪問FTP服務器,在設置了userlist_deny=NO時,僅允許user_list中指定的用戶訪問FTP服務器。(註意:linux-4中此文件在/etc/目錄下

/var/ftp :匿名用戶主目錄;本地用戶主目錄為:/home/用戶主目錄,即登錄後進入自己家目錄

/var/ftp/pub :匿名用戶的下載目錄,此目錄需賦權根chmod 1777 pub(1為特殊權限,使上載後無法刪除)

/var/log/xfer.log :Vsftpd的日誌文件



2、vsftpd的主配置文件/etc/vsftpd/vsftpd.conf說明(修改前先備份)

anonymous_enable=YES (是否允許匿名登錄FTP服務器,默認設置為YES允許,即用戶可使用用戶名ftp或anonymous進行ftp登錄,口令為用戶的E-mail地址。如不允許匿名訪問去掉前面#並設置為NO)
# Uncomment this to allow local users to log in.
local_enable=YES (是否允許本地用戶(即linux系統中的用戶帳號)登錄FTP服務器,默認設置為YES允許,本地用戶登錄後會進入用戶主目錄,而匿名用戶登錄後進入匿名用戶的下載目錄/var/ftp/pub;若只允許匿名用戶訪問,前面加上#,可阻止本地用戶訪問FTP服務器。)


# Uncomment this to enable any form of FTP write command.
write_enable=YES (是否允許本地用戶對FTP服務器文件具有寫權限,默認設置為YES允許)
# Default umask for local users is 077. You may wish to change this to 022,if your users expect that (022 is used by most other ftpd's)
local_umask=022 (或其它值,設置本地用戶的文件掩碼為缺省022,也可根據個人喜好將其設置為其他值,默認值為077)
# Uncomment this to allow the anonymous FTP user to upload files. This only has an effect if the above global write enable is activated. Also, you will obviously need to create a directory writable by the FTP user.
anon_upload_enable=YES (是否允許匿名用戶上傳文件,須將write_enable=YES,默認設置為YES允許)
# Uncomment this if you want the anonymous FTP user to be able to create new directories.
anon_mkdir_write_enable=YES (是否允許匿名用戶創建新文件夾,默認設置為YES允許)
# Activate directory messages - messages given to remote users when theygo into a certain directory.
dirmessage_enable=YES (是否激活目錄歡迎信息功能,當用戶用CMD模式首次訪問服務器上某個目錄時,FTP服務器將顯示歡迎信息,默認情況下,歡迎信息是通過該目錄下的.message文件獲得的,此文件保存自定義的歡迎信息,由用戶自己建立)
# Activate logging of uploads/downloads.
xferlog_enable=YES (默認值為NO如果啟用此選項,系統將會維護記錄服務器上傳和下載情況的日誌文件,默認情況該日誌文件為/var/log/vsftpd.log,也可以通過下面的xferlog_file選項對其進行設定。)
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES (設定FTP服務器將啟用FTP數據端口的連接請求,ftp-data數據傳輸,21為連接控制端口)
# If you want, you can arrange for uploaded anonymous files to be owned bya different user. Note! Using "root" for uploaded files is not recommended!-註意,不推薦使用root用戶上傳文件
chown_uploads=YES(設定是否允許改變上傳文件的屬主,與下面一個設定項配合使用)
chown_username=whoever (設置想要改變的上傳文件的屬主,如果需要,則輸入一個系統用戶名,例如可以把上傳的文件都改成root屬主。whoever:任何人)
# You may override where the log file goes if you like. The default is shown below.
xferlog_file=/var/log/vsftpd.log(設定系統維護記錄FTP服務器上傳和下載情況的日誌文件,/var/log/vsftpd.log是默認的,也可以另設其它)
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES(如果啟用此選項,傳輸日誌文件將以標準xferlog的格式書寫,該格式的日誌文件默認為/var/log/xferlog,也可以通過xferlog_file選項對其進行設定,默認值為NO)
dual_log_enable(如果添加並啟用此選項,將生成兩個相似的日誌文件,默認在/var/log/xferlog和/var/log/vsftpd.log目錄下。前者是wu_ftpd類型的傳輸日誌,可以利用標準日誌工具對其進行分析;後者是vsftpd類型的日誌)
syslog_enable(如果添加並啟用此選項,則原本應該輸出到/var/log/vsftpd.log中的日誌,將輸出到系統日誌中)
# You may change the default value for timing out an idle session.
idle_session_timeout=600 (設置數據傳輸中斷間隔時間,此語句表示空閑的用戶會話中斷時間為600秒,即當數據傳輸結束後,用戶連接FTP服務器的時間不應超過600秒,可以根據實際情況對該值進行修改)
# You may change the default value for timing out a data connection.
data_connection_timeout=120 (設置數據連接超時時間,該語句表示數據連接超時時間為120秒,可根據實際情況對其個修改)
# It is recommended that you define on your system a unique user which the ftp server can use as a totally isolated and unprivileged user.
nopriv_user=ftpsecure (運行vsftpd需要的非特權系統用戶,缺省是nobody)
# Enable this and the server will recognise asynchronous ABOR requests. Not recommended for security (the code is non-trivial). Not enabling it, however, may confuse older FTP clients.
async_abor_enable=YES(如果FTP client會下達“async ABOR”這個指令時,這個設定才需要啟用,而一般此設定並不安全,所以通常將其取消)
# By default the server will pretend to allow ASCII mode but in fact ignore the request. Turn on the below options to have the server actually do ASCII mangling on files when in ASCII mode. Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd predicted this attack and has always been safe, reporting the size of the raw file. ASCII mangling is a horrible feature of the protocol.
ascii_upload_enable=YES (大多數FTP服務器都選擇用ASCII方式傳輸數據,將#去掉就能實現用ASCII方式上傳和下載文件)
ascii_download_enable=YES (將#去掉就能實現用ASCII方式下載文件)
# You may fully customise the login banner string:
ftpd_banner=Welcome to blah FTP service. (將#去掉可設置登錄FTP服務器時顯示的歡迎信息,可以修改=後的歡迎信息內容。另外如在需要設置更改目錄歡迎信息的目錄下創建名為.message的文件,並寫入歡迎信息保存後,在進入到此目錄會顯示自定義歡迎信息)
# You may specify a file of disallowed anonymous e-mail addresses. Apparently useful for combatting certain DoS attacks.
deny_email_enable=YES(可將某些特殊的email address抵擋住。如果以anonymous登錄服務器時,會要求輸入密碼,也就是您的email address,如果很討厭某些email address,就可以使用此設定來取消他的登錄權限,但必須與下面的設置項配合)
# (default follows)
banned_email_file=/etc/vsftpd/banned_emails(當上面的deny_email_enable=YES時,可以利用這個設定項來規定那個email address不可登錄vsftpd服務器,此文件需用戶自己創建,一行一個email address即可!)
# You may specify an explicit list of local users to chroot() to their home directory. If chroot_local_user is YES, then this list becomes a list of users to NOT chroot().
chroot_list_enable=YES(設置為NO時,用戶登錄FTP服務器後具有訪問自己目錄以外的其他文件的權限,設置為YES時,用戶被鎖定在自己的home目錄中,vsftpd將在下面chroot_list_file選項值的位置尋找chroot_list文件,此文件需用戶建立,再將需鎖定在自己home目錄的用戶列入其中,每行一個用戶)
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list(此文件需自己建立,被列入此文件的用戶,在登錄後將不能切換到自己目錄以外的其他目錄,由FTP服務器自動地chrooted到用戶自己的home目錄下,使得chroot_list文件中的用戶不能隨意轉到其他用戶的FTP home目錄下,從而有利於FTP服務器的安全管理和隱私保護)
# You may activate the "-R" option to the builtin ls. This is disabled by default to avoid remote users being able to cause excessive I/O on large sites. However, some broken FTP clients such as "ncftp" and "mirror" assume the presence of the "-R" option, so there is a strong case for enabling it.
ls_recurse_enable=YES是否允許遞歸查詢,大型站點的FTP服務器啟用此項可以方便遠程用戶查詢
# When "listen" directive is enabled, vsftpd runs in standalone mode and listens on IPv4 sockets. This directive cannot be used in conjunction with the listen_ipv6 directive.
listen=YES(如果設置為YES,則vsftpd將以獨立模式運行,由vsftpd自己監聽和處理連接請求)
# This directive enables listening on IPv6 sockets. To listen on IPv4 and IPv6 sockets, you must run two copies of vsftpd whith two configuration files. Make sure, that one of the listen options is commented !!
listen_ipv6=YES(設定是否支持IPV6)
pam_service_name=vsftpd(設置PAM外掛模塊提供的認證服務所使用的配置文件名,即/etc/pam.d/vsftpd文件,此文件中file=/etc/vsftpd/ftpusers字段,說明了PAM模塊能抵擋的帳號內容來自文件/etc/vsftpd/ftpusers中)
userlist_enable=YES/NO(此選項默認值為NO ,此時ftpusers文件中的用戶禁止登錄FTP服務器;若此項設為YES,則user_list文件中的用戶允許登錄 FTP服務器,而如果同時設置了userlist_deny=YES,則user_list文件中的用戶將不允許登錄FTP服務器,甚至連輸入密碼提示信息都沒有,直接被FTP服務器拒絕)
userlist_deny=YES/NO(此項默認為YES,設置是否阻止user_list文件中的用戶登錄FTP服務器)
tcp_wrappers=YES (表明服務器使用tcp_wrappers作為主機訪問控制方式,tcp_wrappers可以實現linux系統中網絡服務的基於主機地址的訪問控制,在/etc目錄中的hosts.allow和hosts.deny兩個文件用於設置tcp_wrappers的訪問控制,前者設置允許訪問記錄,後者設置拒絕訪問記錄。例如想限制某些主機對FTP服務器192.168.57.2的匿名訪問,編緝/etc/hosts.allow文件,如在下面增加兩行命令:vsftpd:192.168.57.1:DENY vsftpd:192.168.57.9:DENY表明限制IP為192.168.57.1/192.168.57.9主機訪問IP為192.168.57.2的FTP服務器,此時FTP服務器雖可以PING通,但無法連接)

在FTP服務器的管理中無論對本地用戶還是匿名用戶,對於FTP服務器資源的使用都需要進行控控制,避免由於負擔過大造成FTP服務器運行異常,可以添加以下配置項對FTP客戶機使用FTP服務器資源進行控制:
max_client=0設置項用於設置FTP服務器所允許的最大客戶端連接數,值為0時表示不限制。例如max_client=100表示FTP服務器的所有客戶端最大連接數不超過100個。
max_per_ip=0設置項用於設置對於同一IP地址允許的最大客戶端連接數,值為0時表示不限制。例如max_per_ip=5表示同一IP地址的FTP客戶機與FTP服務器建立的最大連接數不超過5個。
local_max_rate=0設置項用於設置本地用戶的最大傳輸速率,單位為B/s,值為0時表示不限制。例如local_max_rate=500000表示FTP服務器的本地用戶最大傳輸速率設置為500KB/s.
ano n_max_rate=0設置項用於設置匿名用戶的最大傳輸速率,單位為B/s,值為0表示不限制。例如ano_max_rate=200000,表示FTP服務器的匿名用戶最大傳輸速率設置為200KB/s.

vsftpd.user_list文件需要與vsftpd.conf文件中的配置項結合來實現對於vsftpd.user_list文件中指定用戶賬號的訪問控制:

userlist_deny和userlist_enable選項限制用戶登錄FTP服務器(使用userlist_deny選項和user_list文件一起能有效阻止root,apache,www等系統用戶登錄FTP服務器,從而保證FTP服務器的分級安全性):

  1. (1)當且僅當userlist_enable=YES時:userlist_deny項的配置才有效,user_list文件才會被使用;當其為NO時,無論userlist_deny項為何值都是無效的,本地全體用戶(除去ftpusers中的用戶)都可以登入FTP.

  2. (2)當userlist_enable=YES時,userlist_deny=YES時:user_list是一個黑名單,即:所有出現在名單中的用戶都會被拒絕登入;

  3. (3)當userlist_enable=YES時,userlist_deny=NO時:user_list是一個白名單,即:只有出現在名單中的用戶才會被準許登入(user_list之外的用戶都被拒絕登入);

使用白名單後,匿名用戶將無法登入!除非顯式在user_list中加入一行:anonymous.


3、配置FTP服務器的虛擬用戶

在vsftpd服務器中支持匿名用戶,本地用戶,和虛擬用戶3類用戶賬號,用途及區別如下:
匿名用戶是名為anonymous或ftp的用戶,匿名FTP用戶登錄後將FTP服務器中的/var/ftp作為FTP根目錄。匿名用戶通常用於提供公共文件的下載,如架設公共軟件下載的FTP服務器,所有人都可以使用匿名用戶進行軟件下載。

本地用戶是FTP服務器中的系統用戶賬號,使用FTP本地用戶賬號登錄FTP服務器後,登錄目錄為本地用戶的宿主目錄。本地FTP用戶賬號通常和Web服務器一起提供虛擬主機服務,作為網頁虛擬主機更新網頁的途徑。

虛擬用戶賬號是為了保證FTP服務器的安全性,由vsftpd服務器提供的非系統用戶賬號。虛擬用戶FTP登錄後將把指定的目錄作為FTP根目錄。虛擬用戶與本地用戶具有類似的功能,由於虛擬用戶相對安全,因此正逐步替代本地用戶賬號。
由於虛擬用戶賬號具有較高的安全性,可以替代本地用戶賬號使用,下面是vsftpd虛擬用戶賬號設置步驟:

(1)建立虛擬用戶口令庫文件
建立虛擬用戶的口令文件,文件中奇數行設置虛擬用戶的用戶名,偶數行設置用戶的口令。例如,使用vi編輯器建立名為logins.txt的用戶口令庫文件,在文件中設置用戶mike的口令為pwabcd,用戶john 的口令是pw1234:
#vi logins.txt
mike (奇數行設置虛擬用戶名)
pwabcd (偶數行設置用戶口令)
john
pw1234
:wq(保存退出)
(2)生成vsftpd 的認證文件
使用db_load 命令生成認證文件。“-f”命令選項設置的值是虛擬用戶的口令庫文件,即上面創建的logins.txt。命令的參數設置為需要生成的認證文件名如 vsftpd_login.db,該文件放置在目錄/etc/vsftpd/下:
#db_load -T -t hash –f logins.txt /etc/vsftpd_login.db (生成認證文件)
#file /etc/vsftpd/vsftpd_login.db (查看文件類型)
/etc/vsftpd/vsftpd_login.db:Berkeley DB (Hash,version 8 , native byte-order)
生成的認證文件的權限應設置為只對root用戶可讀可寫,即600:
#chmod 600 /etc/vsftpd/vsftpd_login.db
(3)建立虛擬用戶所需的PAM配置文件
在/etc/pam.d目錄下建立vsftpd虛擬用戶身份認證所需的PAM配置文件,名稱是vsftpd.vu,內容為:
#cat /etc/pam.d/vsftpd.vu
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
(4)建立虛擬用戶及要訪問的目錄並設置相應的權限
建立vsftpd虛擬用戶所需的系統用戶賬號,賬號名為virtual,指定用戶的宿主目錄是/home/ftpsite,設置宿主目錄的權限為700:
#useradd -d /home/ftpsite virtual
#chmod 700 /home/ftpsite/
這樣vsftpd服務器中的所有虛擬用戶賬號登錄後都將在/home/ftpsite目錄中
(5)設置vsftpd.conf主配置文件
在對vsftpd.conf配置文件進行修改之前,應先將原有的文件進行備份,以便出現配置錯誤時可進行恢復:
#cd /etc/vsftpd
#cp vsftpd.conf vsftpd.conf.bak
在vsftpd.conf配置文件中添加虛擬用戶的配置項,內容為:
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
(6)重新啟動vsftpd服務程序
在對vsftpd.conf配置文件進行了任何修改後都需要重新啟動vsftpd服務,以便配置生效:
#service vsftpd restart
(7)測試vsftpd中的虛擬用戶賬號:mike 或 john
在測試前可以先在/home/ftpsite目錄中建立測試文件,用於測試時進行下載,並設置該文件的屬主和屬組為virtual
#touch /home/ftpsite/afile
#chown virtual.virtual /home/ftpsite/afile
使用ftp命令登錄vsftpd服務器,並使用已配置的虛擬用戶帳號mike進行登錄
#ftp localhost
name (localhost:root):mike
password:
ftp>get afile
在完成虛擬用戶的FTP登錄後,可使用get命令下載測試文件,測試文件會保存到用戶的當前目錄中。
(8)對不同的虛擬用戶設置不同的權限
vsftpd服務器中的虛擬用戶可以靈活的針對不同的用戶賬號設置不同的用戶權限,配置的步驟如下:
1.設置主配置文件
在vsftpd.conf配置文件中添加user_config_dir配置項,並設置用戶配置文件的保存目錄
user_config_dir=/etc/vsftpd_user_conf
在上面的配置實例中,設置在/etc/vsftpd_user_conf目錄中保存虛擬用戶的配置文件
2.建立用戶配置文件目錄
使用mkdir命令建立虛擬用戶配置文件的保存目錄
#mkdir /etc/vsftpd_user_conf
3.為虛擬用戶建立單獨的配置文件
在/etc/vsftpd_user_conf/目錄中可以為每個虛擬用戶建立獨立的配置文件,配置文件名稱和用戶名相同。例如,為用戶mike建立配置文件mike ,並將anon_world_readable_only設置為NO,表示用戶具有瀏覽和下載的權限
#cat /etc/vsftpd_user_conf/mike
anon_world_readable_only=NO
為用戶john建立配置文件john,並設置該用戶具有瀏覽,下載,上傳,改名,刪除文件,建立和刪除的權限。
#cat john
anon_world_readable_only=NO --表示用戶可以瀏覽FTP目錄和下載文件
anon_upload_enable=YES --表示用戶可以上傳文件
anon_mkdir_write_enable=YES --表示用戶具有建立和刪除目錄的權利
anon_other_write_enable=YES --表示用戶具有文件改名和刪除文件的權限
通過對以上配置項的組合設置,vsftpd可以為每個虛擬用戶配置不同的FTP權限,用戶配置文件中沒有的配置項將按照vsftpd.conf配置文件中的內容設置。

4、vsftpd服務器的其它主要設置
1.最大傳輸速率設置:
設置匿名用戶的最大傳輸率為20Kbps,修改/etc/vsftpd/vsftpd.conf添加語句:anon_max_rate=20000
設置本地帳號最大傳輸率為1Mbps,修改/etc/vsftpd/vsftpd.conf添加語句:local_max_rate=1000000
2.服務器最大並發數和用戶最大線程數設置:
例如設置服務器允許的最大並發數為99,而每個用戶同一時段的最大並發線程數為5,修改/etc/vsftpd/vsftpd.conf添加兩行:max_clients=99 和 max_per_ip=5

3.修改默認端口:
默認FTP服務器端口號是21,出於安全目的,有時需修改默認端口號,修改/etc/vsftpd/vsftpd.conf
添加語句(例):listen_port=4449 該語句指定了修改後FTP服務器的端口號,應盡量大於4000,
4.常見的vsftpd日誌解決方案如下:
xferlog_enable=YES (表明FTP服務器記錄上傳下載的情況)
xferlog_std_format=YES (表明將記錄的上傳下載情況寫在xferlog_file所指定的文件中,即xferlog_file選項指定的/var/log/xferlog文件中)
xferlog_file=/var/log/xferlog
dual_log_enable=YES (表明啟用了雙份日誌,在用xferlog文件記錄服務器上傳下載情況的同時,vsftpd_log_file所指定的文件,即/var/log/vsftpd.log也將用來記錄服務器的傳輸情況)
vsftpd_log_file=/var/log/vsftpd.log

5、vsftpdr的兩個日誌文件分析如下:

/var/log/xferlog日誌文件中數據的分析和參數說明:

Thu Sep 6 09:07:48 2007 7 192.168.57.1 4323279 /home/student/phpMyadmin-2.11.0-all-languages.tar.gz b – i r student ftp 0 *

Thu Sep 6 09:07:48 2007 :當前時間,當前服務器本地時間,格式為: DDD MMM dd hh:mm:ss YYY 。

7:傳輸時間,傳送文件所用時間,單位為秒。

192.168.57.1:遠程主機名稱/IP。

4323279:文件大小,傳送文件的大小,單位為byte。

/home/student/phpMyadmin-2.11.0-all-languages.tar.gz :傳輸文件名,包括路徑。

b: 傳輸方式的類型,包括兩種:a以ASCII傳輸 b以二進制文件傳輸

-:特殊處理標誌,- 不做任何特殊處理,C 文件是壓縮格式,U 文件是非壓縮格式,T 文件是tar格式

i:文件傳輸方向,包括兩種:o 從FTP服務器向客戶端傳輸,i 從客戶端向FTP服務器傳輸

r:用戶訪問模式,包括:a 匿名用戶,g 來賓用戶,r 系統用戶

student:用戶名稱

ftp:所使用的服務名稱,一般為FTP

0:認證方式,包括:0 無,1 RFC931認證

*:認證用戶的id,如果使用*,則表示無法獲得該id

c:傳輸的狀態:c 表示傳輸已完成,i 表示傳輸示完成


/var/log/vsftpd.log 日誌文件中數據的分析和參數說明:

Tue Sep 11 14:59:24 2007 [pid 3459] [ftp] OK LOGIN;Client “127.0.0.1” ,anon password ”?”

6.匿名FTP設置方法:
通常在登錄FTP服務器的用戶不確定的情況下,應將FTP服務器設置為允許匿名賬號登錄的FTP服務器
1.啟用匿名帳號
anonymous_enable=YES
local_enable=YES
write_enable=YES
listen=YES
設置完成後,重啟vsftd.將允許匿名賬號和本地賬號登錄FTP服務器,同時允許匿名用戶具有對FTP服務器文件的寫權限,並且只能下載文件而不能上傳,不允許匿名賬號創建文件夾,匿名用戶的口令為一個E-mail地址。
2.允許匿名賬號上傳文件
anon_upload_enable=YES
anon_mkdir_write_enable=YES
將#去掉即可,重啟vsftpd.將允許匿名賬號上傳文件,也就是具有在FTP服務器的本地目錄中新建文件和文件夾的功能
3.僅允許匿名用戶訪問
#local_enable=YES
#write_enable=YES
在前面加上#,即限制本地賬號訪問,僅允許匿名用戶訪問
4.禁止匿名訪問,允許本地賬號訪問
anonymous_enable=NO
local_enable=YES
write_enable=YES

7、常見FTP命令及其功能

技術分享圖片

技術分享圖片


8、FTP數字代碼的意義

110 重新啟動標記應答。
120 服務在多久時間內ready
125 數據鏈路端口開啟,準備傳送。
150 文件狀態正常,開啟數據連接端口。
200 命令執行成功。
202 命令執行失敗。
211 系統狀態或是系統求助響應。
212 目錄的狀態。
213 文件的狀態。
214 求助的訊息。
215 名稱系統類型。
220 新的聯機服務ready
221 服務的控制連接端口關閉,可以註銷。
225 數據連結開啟,但無傳輸動作。
226 關閉數據連接端口,請求的文件操作成功。
227 進入passive mode
230 使用者登入。
250 請求的文件操作完成。
257 顯示目前的路徑名稱。
331 用戶名稱正確,需要密碼。
332 登入時需要賬號信息。
350 請求的操作需要進一部的命令。
421 無法提供服務,關閉控制連結。
425 無法開啟數據鏈路。
426 關閉聯機,終止傳輸。
450 請求的操作未執行。
451 命令終止:有本地的錯誤。
452 未執行命令:磁盤空間不足。
500 格式錯誤,無法識別命令。
501 參數語法錯誤。
502 命令執行失敗。
503 命令順序錯誤。
504 命令所接的參數不正確。
530 未登入。 532 儲存文件需要賬戶登入。 550 未執行請求的操作。 551 請求的命令終止,類型未知。
552 請求的文件終止,儲存位溢出。 553 未執行請求的的命令,名稱不正確。


9、常見ftp錯誤代碼

Connect 連接被拒絕: 可能原因是vsftpd服務沒被啟動

530 Permission denied: 可能原因是userlist_enable=YES並且/etc/vsftpd/user_list中包含要登錄的ftp用戶名 即user_list禁止了該用戶的登錄、或者可能是沒有指定userlist_file=/etc/vsftpd/user_list

530 Login incorrect: 可能原因是登錄的ftp用戶名被包含在禁止登錄列表/etc/vsftpdftpusers中 | 同時要確保用戶名、密碼是正確的 | 也可能是配置文件中少了一行pam_service_name=vsftpd | 檢查/etc/pam.d/vsftpd 文件裏面lib的路徑 | 編輯/etc/pam.d/vsftp文件,註釋掉auth required pam_shells.so(這個語句的意思是只有包含shell的用戶才能登錄)

530 Non-anonymous sessions must use encryption.:服務器的強制,非匿名用戶必須使用加密連接

500 OOPS: cannot open user list file:可能原因是不存在文件“/etc/vsftpd/user_list”或文件中不存在該帳戶,解決:解決: cho username >> /etc/vsftpd/user_list

500 OOPS: cannot open chroot() user list file | 500 OOPS: could not read chroot() list file:/etc/vsftpd/chroot_list:可能原因是不存在文件“/etc/vsftpd/chroot_list”

500 OOPS: missing value in config file: 可能原因是配置文件“=”等號前值有問題,或只有一個空格

500 OOPS: bad bool value in config file: 可能原因是配置文件=”等號後值有問題

500 OOPS: unrecognised variable in config file: 可能原因是參數前有空格

500 OOPS: chdir, 500 OOPS: child died, 500 OOPS: chroot:可能原因是用戶主目錄沒有權限或沒有主目錄,或者還是selinux影響的

500 OOPS: vsftpd: both local and anonymous access disabled!匿名用戶和本地用戶登錄都被禁用

GnuTLS error -12: A TLS fatal alert has been received.:received.:Filezilla最新版本認為vsftpd默認的加密算法"DES-CBC3-SHA"不夠安全而拒絕連接導致的。有兩種辦法解決該問題,一是降級你的Filezilla客戶端版本到3.5.3以下,二是更改服務器端vsftpd的配置。增加屬性:ssl_ciphers=HIGH

ECONNREFUSED - Connection refused by server: 當啟用隱式ssl連接,用filezilla、winscp客戶端連接時報錯,因為vsftpd此時服務器端的端口還是21,但是客戶端確以990來連接。修改客戶端連接時使用的參數或者服務器的通過參數listen_port設置端口為990。


Vsftpd服務配置、ftp命令、錯誤代碼、日誌格式