天天看點

linux環境下配置ftp

 1.檢視linux是否安裝ftp

linux環境下配置ftp

若傳回ftp的版本資訊,則标志着已經安裝過ftp,可以根據需求判斷是否解除安裝,解除安裝指令

rpm -e vsftp
           

  2. 安裝ftp

yum install -y vsftpd
           

 3.配置ftp配置檔案(ftp預設安裝在/etc/vsftpd檔案夾)

ftp主要有3個主要配置檔案,分别是:

/etc/vsftpd/vsftpd.conf  ftp核心配置檔案

/etc/vsftpd/ftpusers      用于指定哪些使用者不能通路FTP 伺服器。及ftp黑名單

/etc/vsftpd/user_list     指定允許使用vsftpd 的使用者清單檔案。及ftp白名單

vsftpd.conf核心配置檔案的配置參數如下:

anonymous_enable=NO  #允許匿名使用者通路為了安全選擇關閉

local_enable=YES   # 允許本地使用者登入

write_enable=YES   # 是否允許寫入

local_umask=022  # 本地使用者上傳檔案的umask

dirmessage_enable=YES #為YES則進入目錄時顯示此目錄下由message_file選項指定的文本檔案(,預設為.message)的内容

xferlog_enable=YES #開啟日志

xferlog_std_format=YES #标準格式

connect_from_port_20=YES

xferlog_file=/var/log/xferlog   #ftp日志目錄

idle_session_timeout=6000 #設定用戶端連接配接時間

data_connection_timeout=1200 #設定資料連接配接時間 針對上傳,下載下傳

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list #設定為YES則下面的控制有效

chroot_list_enable=YES #若為NO,則記錄在chroot_list_file所指定的檔案(預設是/etc/vsftpd.chroot_list)中的使用者将被chroot在登入後所在目錄中,無法離開.如果為YES,則所記錄的使用者将不被chroot.這裡YES.

chroot_local_user=YES

userlist_deny=NO #若設定為YES則記錄在userlist_file選項指定檔案(預設是/etc/vsftpd.user_list)中的使用者将無法login,并且将檢察下面的userlist_deny選項

userlist_enable=YES #若為NO,則僅接受記錄在userlist_file選項指定檔案(預設是/etc/vsftpd.user_list)中的使用者的login請求.若為YES則不接受這些使用者的請求.

userlist_file=/etc/vsftpd/user_list #白名單

chroot_list_enable=YES

local_root=/var/ftp/pub #根目錄

listen=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

示例配置如下:

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.設定使用者登入後所在的目錄 

local_root=/var/ftp             

// 設定本地使用者登入後所在的目錄。預設配置檔案中沒有設定該項,此時使用者登入FTP伺服器後,所在的目錄為該使用者的主目錄,對于root使用者,則為/root目錄。

anon_root=/var/ftp            

//設定匿名使用者登入後所在的目錄。若未指定,則預設為/var/ftp目錄。

3.控制使用者是否允許切換到上級目錄

 在預設配置下,使用者可以使用“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目錄。

4.設定通路控制 

(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伺服器。

5.設定通路速度 

anon_max_rate=0       

//設定匿名使用者所能使用的最大傳輸速度,機關為b/s。若設定為0,則不受速度限制,此為預設值。

local_max_rate=0       

// 設定本地使用者所能使用的最大傳輸速度。預設為0,不受限制。

6.與連接配接相關的設定 

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連接配接資訊。安全起見,建議關閉。

7.設定傳輸模式 

FTP在傳輸資料時,可使用二進制(Binary)方式,也可使用ASCII模式來上傳或下載下傳資料。

ascii_download_enable=YES //設定是否啟用ASCII模式下載下傳資料。預設為NO。

ascii_upload_enable=YES    //設定是否啟用ASCII模式上傳資料。預設為NO。

4.建立使用者權限

新增使用者

useradd -d /ftp -s /sbin/nologin 使用者名
           

設定密碼

passwd 密碼
           

添權重限

添權重限(建立檔案夾以及檔案的權限) 
 chown -R 使用者名 /home/crm/ftproot 
 chmod 755 -R /home/crm/ftproot

“/home/crm/ftproot” 為ftp根目錄 
cat /etc/vsftpd/vsftpd/comf 
** local_root=/home/crm/ftproot
           

5.通路

ftp://ip

繼續閱讀