centOS5.4 安裝配置vsftpd
1.查看有沒有安裝vsftpd:
rpm -qa | grep vsftpd
2.yum安裝vsftpd:
yum install vsftpd
3.rpm安裝vsftpd:
可以從下面兩個地方獲得最新的vsftpd的RPM包https://www.redhat.com/或者http://www.rpmfind.net/
安裝命令:
rpm -Uvh vsftpd-1.1.3-8.i386.rpm
4.設定每次開機時自動運行及手工啟動它:
chkconfig vsftpd on
service vsftpd start
netstat -tl 可以查看ftp連接埠是否在偵聽了!
5.設定檔
/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list,#不能登陸FTP的使用者;
/etc/vsftpd/vsftpd.conf
#anonymous_enable=YES
anonymous_enable=NO #設定不允許匿名使用者存取
chroot_local_user=YES #把系統內所有的FTP使用者都限制在家目錄中
6.設定個FTP目錄
修改 /var/www 目錄屬性:
$ chmod -R 777 /var/www 遞迴地給此目錄下所有檔案和子目錄的讀、寫、執行許可權
$ chgrp -R ftp /var/www 遞迴地把此目錄及該目錄下所有檔案和子目錄的組屬性設定成ftp組
7.增加FTP使用者
adduser -d /var/www -g ftp -s /sbin/nologin 使用者名稱 #增加使用者,組是FTP,目錄是/var/www
passwd 使用者名稱 #設定密碼
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
8.重啟FTP
service vsftpd restart
9.如果ftp伺服器串連失敗,錯誤提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
當你看到以上提示時,試著在輸入以下命令解決
setsebool -P ftpd_disable_trans 1
service vsftpd restart
第一行中的-P參數是為了以後不需要每次開機都輸入這個命令
10.使用者管理
userdel 選項 使用者名稱 #刪除使用者
常用的選項是-r,它的作用是把使用者的主目錄一起刪除。
passwd 選項 使用者名稱 #修改口令
passwd -l 使用者名稱 鎖定口令,即禁用帳號。
passwd -u 使用者名稱 口令解鎖。
passwd -d 使用者名稱 使帳號無口令。
passwd -f 使用者名稱 強迫使用者下次登入時修改口令。
如果預設使用者名,則修改目前使用者的口令。
如果是超級使用者,可以用下列形式指定任何使用者的口令:
passwd 使用者名稱
passwd -d 使用者名稱 此命令將使用者的口令刪除,這樣使用者下一次登入時,系統就不再詢問口令
11.是否想修改21連接埠呢?
先修改防火牆,增加其FTP連接埠,下面使用921
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 921 -j ACCEPT
/etc/init.d/iptables restart #重啟防火牆
/etc/vsftpd/vsftpd.conf 裡增加加 listen_port=921
/etc/rc.d/init.d/vsftpd restart #重啟vsftpd
netstat -an |grep 921 #查看連接埠是否正常啟動:
有時用戶端反應很慢,可以使用被動模式
經常聽見有人討論PORT和PASV,到底兩者有何區別? 答:防火牆有很多種,其中有一些會禁止那些不是從內部網路IP發出的串連請求。而ftp協議是個很老的東東,沒有考慮這個問題。可以這樣簡單描述一般ftp的工作原理:client對server發出請求:“嗨,我的xx連接埠正等著你傳送資料呢,sever聽到這個請求,就會建立一個串連,指向這個連接埠,並且開始傳送資料。這就回到了我們的問題,如果發出請求的client在防火牆的後面,而這個防火牆禁止外部IP建立串連,那麼當然server(在外部)不能建立與client的串連。所以,過了幾年,人們修改了ftp協議以應付這種情況。這就是passive mode,工作原理如下:client向server發出passive命令,server回答說:“資料在xx連接埠等你,自己來拿。” 而這回則由client建立指向server的串連,從而取得資料。這就避免了防火牆的限制。 為什麼PORT方式比PASV方式安全? FTP傳輸過程中要求建立一個專門的串連來傳輸資料,建立串連有兩個方法:一個就是FTP Server開啟一個連接埠,Client可以去串連這個連接埠來建立串連。這就是PASV方式。一個就是FTP Client開啟一個連接埠,Server去串連這個連接埠來建立串連。這就是PORT方式。顯然,如果伺服器開啟了一個連接埠,就意味著向互連網開啟了一個連接埠。所以PORT方式比PASV方式安全。如果有很多機器都要連這個FTP,那都這樣改,很麻煩,得讓VSFTPD支援被動模式才行:a.首先配置vi /etc/vsftpd/vsftpd.conf檔案,加入pasv_enable=YESpasv_max_port=30100pasv_min_port=30000(上面的30000--30100連接埠號碼可以是其它的,在此舉例)b.防火牆配置開放:vi /etc/sysconfig/iptables添加下面二行-A RH-Firewall-1-INPUT -p tcp --dport 30000:30100 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
FTP需要2個連接埠,一個連接埠是作為控制串連連接埠,也就是21這個連接埠,用於發送指令給伺服器以及等待伺服器響應;另一個連接埠是資料轉送連接埠,連接埠號碼為20(僅PORT模式),是用來建立資料轉送通道的,主要有3個作用:
1.從客戶向伺服器發送一個檔案。
2.從伺服器向客戶發送一個檔案。
3.從伺服器向客戶傳送檔案或目錄列表。
注意:所有FTP伺服器軟體都支援PORT方式,大部分FTP伺服器軟體PORT方式和PASV方式都支援,有些FTP伺服器不支援PASV方式都支援,故造成了PASV 模式失敗,正在嘗試 PORT錯誤 或者 資料Sock錯誤。對症下藥,解決的方法其實很簡單――取消PASV模式。
2.具體的方法
1)在ie中如何啟用或者取消PASV模式:
如果要在ie裡啟用或關閉PASV方式,先開啟IE,在菜單裡選擇:工具 -> Internet選項 -> 進階,在“使用被動ftp”前面打上鉤或者去掉鉤,不過需要IE6.0以上才支援。
2)FTP下載工具取消被動模式的方法:
★Cute FTP 3.5英文版:FTP―>Settings―>Options―>Firewall,將“PASV mode”前複選框中的打勾去掉。
★Cute FTP3.5中文版:FTP―>設定―>選項―>防火牆,“PASV方式(A)”前複選框中的打勾去掉。
★Cute FTP4.0中文版:右擊你所建立的ftp網站―>選擇屬性(properties)―>去掉"use PASV mod" 選擇項
★Cute FTP Pro2.0中文版:編輯―>全域設定―>串連―>連線類型,“PASV/PORT”下拉選項菜單選擇PORT。
★Leap FTP2.7.2:Sites―>Site Manager―>Advanced,將“Use PASV mode”前複選框中的打勾去掉。
★flashfxp: 選項->參數->代理->去掉“使用被動模式”
★flashget: 選項->參數->Proxy 伺服器->編輯->將“Use PASV mode”前複選框中的打勾去掉。