1 檢查當前Linux系統是否安裝了vsftp
代碼如下 |
複製代碼 |
[root@localhost ~]#rpm -qa|grep vsftpd
|
//若沒有任何輸出內容,則表示當前linux系統未安裝vsftp。
2 安裝vsftpd伺服器
從redhat或者centos的安裝鏡像包的server/檔案夾中提取出rpm包。(RHEL5.3中的是vsftpd-2.0.5-12.el5.i386.rpm,通過vmtools把它複製到root's home中去,然後執行如下命令:
代碼如下 |
複製代碼 |
[root@localhost ~]#rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm |
3 配置vsftpd伺服器
vsftp相關的設定檔都在/etc/vsftpd目錄中,如何查看它的預設檔案:
代碼如下 |
複製代碼 |
[root@localhost ~]# ll /etc/vsftpd total 40 -rw-r--r-- 1 root root 6 Mar 14 01:28 chroot_list -rw------- 1 root root 125 Dec 13 2007 ftpusers -rw------- 1 root root 361 Dec 13 2007 user_list -rw-r--r-- 1 root root 6 Mar 14 23:21 user.list -rw------- 1 root root 4392 Mar 15 01:07 vsftpd.conf -rwxr--r-- 1 root root 338 Dec 13 2007 vsftpd_conf_migrate.sh |
其中,vsftpd.conf是vsftp的核心設定檔,user.list是允許的使用者列表,而ftpusers是禁止的使用者列表(如root賬戶),這個大家有個大概瞭解就行,下面是配置vsftpd伺服器的具體步驟。
代碼如下 |
複製代碼 |
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf //裡面有很多配置點,我們只需檢查 anonymous_enable=YES(是否允許匿名使用者anonymous在不用輸密碼的情況下登入FTP) local_enable=YES(是否允許本機使用者登入。什麼是本機使用者?例如在安裝linux的時候會讓你填寫一個帳號,博主的是vfhky) write_enable=YES(開放本機使用者的寫入權限) //其它可選項: chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list
|
//如果啟動這項功能,則所有的本地賬戶登入FTP後均可進入自己根目錄之外的其他目錄。除了在/etc/vsftpd.chroot_list檔案指定的使用者之外,預設值為NO,這裡選擇YES。
4 添加ftp賬戶test1
使其指向目錄/home/wwwroot/ftpuser1,並且禁止登入SSH許可權:在/home/中建立wwwroot/ftpuser1的檔案夾,然後
代碼如下 |
複製代碼 |
[root@localhost ~]# userdel -r test1 [root@localhost ~]# useradd -d /home/wwwroot/ftpuser1 -g ftp -s /sbin/nologin test1 (表示限制test1隻能在/home/wwwroot/ftpuser1中) [root@localhost ~]# passwd test1 (設定密碼) Changing password for user test1. New UNIX password: BAD PASSWORD: it is too short Retype new UNIX password: passwd: all authentication tokens updated successfully.
|
5 配置防火牆
代碼如下 |
複製代碼 |
[root@localhost ~]# vi /etc/sysconfig/iptables //在REJECT行之前添加如下代碼: -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT //(因為FTP的預設連接埠是21) //儲存和關閉檔案,重啟防火牆 [root@localhost ~]# service iptables restart |
6 管理vsftpd服務的相關命令
查看vsftpd狀態:[root@localhost ~]# service vsftpd stauts
停止vsftpd服務:[root@localhost ~]# service vsftpd stop
重啟vsftpd服務:[root@localhost ~]# service vsftpd restart
設定vsftpd開機啟動:[root@localhost ~]# ntsysv 或者
[root@localhost ~]# chkconfig --level 35 vsftpd on
7 在當前Linux系統測試vsftpd:
代碼如下 |
複製代碼 |
[root@localhost ~]# cd /etc/vsftpd [root@localhost ~]# cd /etc/vsftpd [root@localhost vsftpd]# ftp 192.168.198.128 (填寫FTP主機地址,可以通過[root@localhost ~]# ifconfig 獲知) Connected to 192.168.198.128. 220 (vsFTPd 2.0.5) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (192.168.198.128:root): test1 331 Please specify the password. Password: 230 Login successful.(登入成功) Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/home/wwwroot/ftpuser1" ftp> mkdir ftp_data 550 Create directory operation failed.(因為當時建立ftpuser1檔案夾時用的是root登入賬戶,所以無法test1身份建立,所以把ftpuser1改為test1所有,即可顯示如下命令) ftp> mkdir ftp_data 257 "/home/wwwroot/ftpuser1/ftp_data" created ftp> cd /usr/local 250 Directory successfully changed. ftp> pwd 257 "/usr/local" ftp> by 221 Goodbye. [root@localhost vsftpd]# su - test1 This account is currently not available.(這裡的test1是虛擬使用者,因此無法登入系統) [root@localhost vsftpd]# cd / [root@localhost /]# cd ~ [root@localhost ~]# ftp 192.168.198.128 Connected to 192.168.198.128. 220 (vsFTPd 2.0.5) 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (192.168.198.128:root): test1 331 Please specify the password. Password: 230 Login successful.(登入成功) Remote system type is UNIX. Using binary mode to transfer files. ftp> pwd 257 "/home/wwwroot/ftpuser1" ftp> mkdir test1 257 "/home/wwwroot/ftpuser1/test1" created ftp> cd /usr/local 250 Directory successfully changed. ftp> pwd 257 "/usr/local" ftp> by 221 Goodbye. |
8 在windows系統測試vsftpd:
Win+R開啟cmd命令,然後輸入
C:/Users/vfhky>ftp 192.168.198.128
代碼如下 |
複製代碼 |
串連到 192.168.198.128。 220 (vsFTPd 2.0.5) 使用者(192.168.198.128:(none)): test1 331 Please specify the password. 密碼: 230 Login successful.(登入成功) ftp> pwd 257 "/home/wwwroot/ftpuser1" ftp> ls 200 PORT command successful. Consider using PASV. 150 Here comes the directory listing. ftp_data test test1 226 Directory send OK. ftp: 收到 23 位元組,用時 0.00秒 23000.00KB/秒。 |
9 如果出現500 OOPS的錯誤提示
若出現500 OOPS:cannot change directory:/home/wwwroot/ftpuser1的錯誤提示,可以通過以下命令關閉SELinux的保護設定即可解決。
代碼如下 |
複製代碼 |
[root@localhost ~]# setsebool -P ftpd_disable_trans 1 |