首頁  >  文章  >  運維  >  Linux中如何設定ftp伺服器

Linux中如何設定ftp伺服器

PHP中文网
PHP中文网原創
2017-06-20 13:06:501343瀏覽

1. 先用rpm -qa| grep vsftpd指令檢查是否已經安裝,如果ftp沒有安裝,使用yum  -y  install vsftpd 安裝,(ubuntu 下使用apt-get install vsftpd)

2. service vsftpd start / service vsftpd restart

啟動要讓FTP每次開機自動啟動,執行指令:  chkconfig --level 35 vsftpd on

#3. 設定ftp權限

vi  /etc/vsftpd/vsftpd.conf

#將anonymous_enable=YES 改為anonymous_enable=NO
ESC返回,輸入「:wq」儲存並推出

##刷新防火牆

#iptables -F

 

其中vsftpd的主設定檔是:


 /etc/vsftpd/vsftpd. conf

 

實驗一:

如果我不允許FTP匿名登陸,我們可以修改vsftpd的主設定檔來實作#vi /etc /vsftpd/vsftpd.conf 把anonymous_enable=YES 改為anonymous_enable=NO

 實驗二:windows中FTP伺服器可以設定歡迎詞,最大連線數,歡迎詞我們在Linux的FTP伺服器中設定呢?我要回答的是:同樣可以,我們同樣可以vsftpd的主設定檔來實作# vi /etc/vsftpd/vsftpd.conf 在最後加上ftpd_banner=welcome to here! 這就是歡迎詞Max_clients= 100 這表示最多可以有100個用戶同時存取重啟vsftpd即可!
### ######實驗三:######如果我想把借我錢不還的同事(lilei),不想讓他登陸到我們的FTP站點,那我可以把用戶lilei加入vi /etc/vsftpd.ftpusers ###### ######實驗四:######早上總經理說要提拔公司的一小部分人,聽到這個消息,趕快行動,我只允許總經理一個人可以登陸FTP伺服器,其他人休想,拍經理馬匹,限制其他人。我可以這樣做:# vi /etc/vsftpd/vsftpd.conf #######到最後加上2條,######userlist_deny=NO /這個清單裡的人不拒絕,其他人拒絕(包括匿名)######userlist_file=/etc/mp /指明清單的路徑###### ######vsftpd設定檔採用「#」作為註解符,以「#」開頭的行和空白行在解析時將被忽略,其餘的行被視為配置命令行,每個配置命令的「=」兩邊不要留有空格。對於每個設定指令,在設定檔中也列出了相關的設定說明,利用vi編輯器可實現對設定檔的編輯修改。方法如下:###     #vi /etc/vsftpd/vsftpd.conf###### ##### ##########1.登入與對匿名使用者的設定################## ############

write_enable=YES               //開啟使用存取使用者權限。屬全域性設定。預設NO
local_enable=YES               //是否允許本機使用者登入FTP伺服器。預設為NO
anonymous_enable=YES          //設定是否允許匿名使用者登入FTP伺服器。預設為YES
ftp_username=ftp                //定義匿名使用者的帳號名稱,而預設值為ftp。
no_anon_password=YES             //是否是否向匿名使用者登入時詢問口令。設定為YES,則不詢問。默 
認NO
anon_world_readable_only=YES   //匿名使用者是否允許下載可閱讀的文檔,預設為YES。
   anon_upload_enable=YES      //是否允許匿名使用者上傳檔案。只有在write_enable設定為
YES時,該配置項才有效。而且匿名使用者對對應的目錄必須有寫入權限。預設為NO。
anon_mkdir_write_enable=YES //是否允許匿名使用者建立目錄。只有在write_enable設定為    YES時才有效。且匿名使用者對上層目錄有寫入的權限。預設為NO。
anon_other_write_enable=NO    //若設定為YES,匿名使用者會被允許擁有多於
上傳和建立目錄的權限,也會擁有刪除和更名權限。預設值為NO。
 

2.设置欢迎信息

用户登录FTP服务器成功后,服务器可向登录用户输出预设置的欢迎信息。
ftpd_banner=Welcome to my FTP server. 
//该配置项用于设置比较简短的欢迎信息。若欢迎信息较多,则可使用banner_file配置项。
banner_file=/etc/vsftpd/banner     
//设置用户登录时,将要显示输出的文件。该设置项将覆盖ftpd_banner的设置。
dirmessage_enable=YES         
//设置是否显示目录消息。若设置为YES,则当用户进入特定目录(比如/var/ftp/Linux)时,将显示该目录中的由message_file配置项指定的文件(.message)中的内容。
message_file=.message          //设置目录消息文件。可将显示信息存入该文件。该文件需要放在 相应的目录(比如/var/ftp/linux)下

 

3.设置用户登录后所在的目录 
local_root=/var/ftp             
// 设置本地用户登录后所在的目录。默认配置文件中没有设置该项,此时用户登录FTP服务器后,所在的目录为该用户的主目录,对于root用户,则为/root目录。
anon_root=/var/ftp            
//设置匿名用户登录后所在的目录。若未指定,则默认为/var/ftp目录。

 

4.控制用户是否允许切换到上级目录 
       在默认配置下,用户可以使用“cd..”命名切换到上级目录。比如,若用户登录后所在的目录为/var/ftp,则在“ftp>”命令行 下,执行“cd..”命令后,用户将切换到其上级目录/var,若继续执行该命令,则可进入Linux系统的根目录,从而可以对整个Linux的文件系统 进行操作。

若设置了write_enable=YES,则用户还可对根目录下的文件进行改写操作,会给系统带来极大的安全隐患,因此,必须防止用户切换到Linux的根目录,相关的配置项如下:
chroot_list_enable=YES                    
// 设置是否启用chroot_list_file配置项指定的用户列表文件。设置为YES则除了列在j/etc/vsftpd/chroot_list文件中的的帐号外,所有登录的用户都可以进入ftp根目录之外的目录。默认NO
chroot_list_file=/etc/vsftpd/chroot_list         
// 用于指定用户列表文件,该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录。
chroot_local_user=YES                    
// 用于指定用户列表文件中的用户,是否允许切换到上级目录。默认NO
注意:要对本地用户查看效果,需先设置local_root=/var/ftp

具体情况有以下几种:
1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。
2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。
3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。
4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。
5)当用户不允许切换到上级目录时,登录后FTP站点的根目录“/”是该FTP账户的主目录,即文件的系统的/var/ftp目录。

 

5.设置访问控制 
(1)设置允许或不允许访问的主机(见TBP14)
tcp_wrappers=YES用来设置vsftpd服务器是否与tcp wrapper相结合,进行主机的访问控制。默认设置为YES,vsftpd服务器会检查/etc/hosts.allow和/etc /hosts.deny中的设置,以决定请求连接的主机是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
比如,若要仅允许192.168.168.1~192.168.168.254的用户,可以访问连接vsftpd服务器,则可在/etc/hosts.allow文件中添加以下内容:
vsftpd:192.168.168.0/255.255.255.0 :allow
all:all:deny

(2)設定允許或不允許存取的使用者
對使用者的存取控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers檔案來控制實作。相關設定指令如下:
userlist_enable=YES     
// 決定/etc/vsftpd/user_list檔案是否啟用生效。 YES則生效,NO不生效。
userlist_deny=YES       
// 決定/etc/vsftpd/user_list檔案中的使用者是允許存取或不允許存取。若設定為YES,則/etc/vsftpd/user_list 檔案中的使用者將不允許存取FTP伺服器;若設定為NO,則只有vsftpd.user_list檔案中的用戶,才能存取FTP伺服器。

 

6.設定存取速度 
anon_max_rate=0       
//設定匿名使用者所能使用的最大傳輸速度,單位為b/s。若設定為0,則不受速度限制,此為預設值。
local_max_rate=0       
// 設定本地使用者所能使用的最大傳輸速度。預設為0,不受限制。

 

7.定義使用者設定檔 
在vsftpd伺服器中,不同使用者還可使用不同的配置,這要透過使用者設定檔來實現。
user_config_dir=/etc/vsftpd/userconf //用於設定使用者設定檔所在的目錄。
設定了該設定項後,當使用者登入FTP伺服器時,系統就會到/etc/vsftpd/userconf目錄下讀取與目前使用者名稱相同的文件,並根據檔案中的設定指令,對目前用戶進行更進一步的配置。例如,利用使用者設定文件,可實現對不同使用者進行存取的速度進行控制,在各使用者設定檔中,定義 local_max_rate配置,以決定該使用者允許的存取速度。

 

8.與連線相關的設定 
listen=YES        
//設定vsftpd伺服器是否以standalone模式運作。以standalone模式運作是一種較好的方式,此時listen必須設定為YES, 此為預設值,建議不要更改。很多與伺服器運作相關的設定指令,需要此運作模式才有效。若設定為NO,則vsftpd不是以獨立的服務運行,要受 xinetd服務的管理控制,功能上會受限制。

max_clients=0
//設定vsftpd允許的最大連接數,預設為0,表示不受限制。若設定為150時,同時允許有150個連接,超出的將拒絕建立連接。只有在以standalone模式運作時才有效。

max_per_ip=0
// 設定每個IP位址允許與FTP伺服器同時建立連線的數目。預設為0,不受限制。通常可對此配置進行設置,防止同一個使用者建立太多的連接。只有在以standalone模式運作時才有效。

listen_address=IP位址        
//設定在指定的IP位址上偵聽使用者的FTP要求。若不設置,則對伺服器所綁定的所有IP位址進行偵聽。只有在以standalone模式運作時才有效。 對於只綁定了一個IP位址的伺服器,不需要設定該項,預設情況下,設定檔中沒有該設定項。若伺服器同時綁定了多個IP位址,則應透過該設定項,指定在哪 個IP位址上提供FTP服務,即指定FTP伺服器所使用的IP位址。
注意:設定此值前後,可透過netstat -tnl比較埠的監聽狀況

accept_timeout=60            
#//設定建立被動式(PASV)資料連接的逾時時間,單位為秒,預設值為60。
connect_timeout=60    
// PORT方式下建立資料連線的逾時時間,單位為秒。
data_connection_timeout=300   
//設定建立FTP資料連線的逾時時間,預設為300秒。

idle_session_timeout=600      
//設定多久不對FTP伺服器進行任何操作,則斷開該FTP連接,單位為秒,預設為600秒。即設定發呆的逾時時間,在這個時間內,若沒有資料傳送或指令的輸入,則會強行斷開連線。
pam_service_name=vsftpd     
//設定PAM所使用的名稱,預設值為vsftpd。

setproctitle_enable=NO|YES   
//設定每個與FTP伺服器的連接,是否以不同的進程表現出來,預設值為NO,此時只有一個名為vsftpd的進程。若設定為YES,則每個連線都會有一個vsftpd進程,使用「ps -ef|grep ftp」指令可查看到詳細的FTP連線資訊。安全起見,建議關閉。

 

9. FTP運作方式與連接埠設定 
(1)FTP運作方式簡介
      FTP的工作方式有兩種,一種是PORT FTP,另一種是PASV FTP。下面介紹其工作方式。
二者的差別在於PORT FTP的資料傳輸埠是由FTP伺服器指定的,而PASV FTP則是由FTP客戶端指定的,而且每次資料連線所使用的連接埠號碼都不同。正因為如此,所以在CuteFTP等FTP客戶端軟體中,其連線類型設定項目中有PORT和PASV兩種選擇。

      當FTP伺服器設定為PASV工作模式時,客戶端也必須設定為PASV連線類型。若客戶端連接類型設定為PORT,則能建立FTP連接,但在執行ls或get等需要資料請求的命令時,將會出現無回應並最終報告無法建立資料連接。

(2)與連接埠相關的設定
listen_port=21               
// 設定FTP磁碟建立連線所偵聽的伺服器,而預設值為21。
連接非標準連接埠範例:ftp www.sunflower.org 7000
connect_from_port_20=YES   
// 預設值為YES,指定FTP資料傳輸連線使用20連接埠。若設定為NO,則進行資料連接時,所使用的連接埠由ftp_data_port指定。

ftp_data_port=20            
//設定PORT方式下FTP資料連線所使用的連接埠,預設值為20。
pasv_enable=YES|NO        
//若設定為YES,則使用PASV工作模式;若設定為NO,使用PORT模式。預設為YES,即使用PASV模式。
pasv_max_port=0            
//設定在PASV運作方式下,且資料連線可使用的連接埠範圍的上界。預設值為0,表示任意連接埠。
pasv_mim_port=0            
//設定在PASV運作方式下,且資料連線可使用的連接埠範圍的下界。預設值為0,表示任意連接埠。

 

10.設定傳輸模式 
FTP在傳輸資料時,可使用二進位(Binary)方式,也可使用ASCII模式上傳或下載資料。
ascii_download_enable=YES //設定是否啟用ASCII模式下載資料。預設為NO。
ascii_upload_enable=YES    //設定是否啟用ASCII模式上傳資料。預設為NO。

 

11.設定上傳文件的所屬關係和權限 
(1)設定匿名上傳文件的屬主
chown_uploads=YES           
#//用於設定是否改變匿名使用者上傳的文件的屬主。預設為NO。若設定為YES,則匿名使用者上傳的文件的屬主將被設定為chown_username配置項目所設定的使用者名稱。
chown_username=whoever     
//設定匿名使用者上傳的文件的屬主名。只有chown_uploads=YES時才有效。建議不要設定為root用戶。 但係統默root

(2)新增文件的權限設定
local_umask=022            
//設定本機使用者新增文件的umask,預設為022,對應的權限為755。 umask為022,對應的二進制數為000 010 010,將其取反為111 101 101,轉換成十進制數,即為權限值755,代表文檔的所有者(屬主)有讀寫執行權,所屬組有讀和執行權,其他使用者有讀和執行權。 022適合大多數情 況,一般不需要更改。若設定為077,則對應的權限為700。
anon_umask=022               //以新增文件的umask設定匿名使用者。預設077
file_open_mode=0755          //設定上傳文件的權限。權限採用數字格式。 預設0666

 

#12.日誌檔案 
xferlog_enable=YES             //是否已啟用上傳/下載記錄。預設為NO
xferlog_file=var/log/vsftpd.log //設定日誌檔案名稱及路徑。需啟用xferlog_enable選項
xferlog_std_format=YES           //日誌檔案是否使用標準的xferlog日誌檔案格式(與wu-ftpd所使用的格式相同) 。預設為NO

 

#

13.其他設定 
text_userdb_names=NO       
//設定執行ls指令時,顯示UID、GID或顯示特定的使用者名稱或群組名稱。預設為NO,以UID和GID方式顯示,若希望顯示使用者名稱和群組名稱,則設定為YES。
ls_recurse_enable=YES       
//若設定為YES,則允許執行「ls –R」這個指令,預設值為NO。在設定檔中該組態項目被註解掉了,與此類似的還有一些配置,需要啟用時,將註解符號去掉並進行YES或NO的設定即可

 

#

以上是Linux中如何設定ftp伺服器的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn