天天看點

Linux FTP配置匿名使用者通路

  1. 匿名使用者首先要配置的就是配置檔案中的“anonymous_enable=YES”這一項,預設情況下是允許匿名通路,在Windows系統用指令行去匿名通路FTP,也還是要輸入使用者名和密碼的,匿名使用者提供了專門的兩個匿名賬号來供使用“anonymous和ftp”無需輸入密碼,登陸成功後,使用ls指令清單顯示,get下載下傳,put上傳。
  2. 在系統中也有與匿名使用者“ftp”相對應的使用者,這樣對于匿名使用者有什麼權限,就是設定ftp使用者的權限,
  3. 如果用戶端通路不成功,可能是由于服務端的防火牆和selinux沒關導緻的;匿名使用者在通路FTP服務時隻能通路FTP主目錄/var/ftp,不能切換到别的目錄通路;如果想通路别的目錄,那就要使用者對于目錄有權限。
  4. 設定匿名使用者上傳,vsftpd服務預設是允許匿名使用者通路并提供下載下傳的功能,但考慮安全性,匿名使用者無法上傳,要想讓匿名使用者可以上傳檔案,就必須對vsftpd的配置檔案和共享目錄的系統權限進行設定,當然,在實際中,是不建議給匿名使用者太多權限的:
  1. 在配置檔案/etc/vsftpd/vsftpd.conf中,“#anon_upload_enable=YES(允許匿名使用者上傳,預設是不行的,被注釋掉)”和“#anon_mkdir_write_enable=YES(允許匿名使用者建立目錄,預設是不行)”這兩項與匿名使用者上傳的權限設定相關。
  2. 然後修改預設通路的目錄的系統權限,FTP預設目錄/var/ftp目錄是不允許修改權限的,目錄下還有個pub子目錄,可以修改這個目錄的權限來允許匿名使用者上傳。
  3. 修改完權限匿名使用者能上傳和建立目錄後,但如果想删除裡面的檔案的話,還需要在配置檔案中添加一個設定項“anon_other_write_enable=YES”表示允許匿名使用者删除檔案
  1. 配置本地使用者通路FTP:
  1. 在Windows用戶端,當匿名通路和本地通路同時開啟,通路是預設使用匿名通路的,如果像切換使用者,就右鍵點選登入輸入使用者名和密碼。
  2. 要使用系統使用者登入通路FTP,就要将配置檔案中“local_enable=YES”開啟,使用系統使用者通路,預設是通路的使用者的家目錄,而不是/var/ftp目錄,因為系統使用者通路的是自己的家目錄,是以預設是可以上傳檔案的。
  3. 如果希望系統使用者在通路FTP時,通路的是FTP主目錄/var/ftp,而不是家目錄,可以在配置檔案/etc/vsftpd/vsftpd.conf再新添加一行“local_root=/var/ftp”來指定通路的目錄,也可以自己随意指定。
  4. 這樣在修改了通路的主目錄後,預設就是沒有權限進行上傳的,在配置檔案中時允許上傳,但在系統層面,還是不允許用戶端對主目錄進行上傳,我們還是可以通過修改主目錄下的子目錄的權限或建立别的子目錄的權限來讓用戶端進行上傳。
  5. 禁锢使用者于指定的目錄,預設情況下,當系統使用者去通路FT[服務時,雖然通路的是自己的家目錄或指定的目錄,但是都可以通過cd指令切換到服務端的其他使用者具有通路權限的目錄,這樣就會存在安全隐患,是以就需要将系統使用者禁锢在指定的目錄中,禁止随意切換目錄。
  6. 禁锢這個操作需要用到“chroot_local_user=YES”設定項,這個設定項位于vsftpd配置檔案的101行,預設是被注釋狀态,啟用該項并重新開機儲存配置後,就可以将使用者禁锢在自身家目錄或指定的FTP主目錄中,當用戶端再次登入通路FTP後,就隻能在他自己的家目錄或指定的FTP主目錄中通路。
  7. 要注意的是,在vsftpd.conf配置檔案中啟用了“chroot_local_user=YES”配置項後,當啟用了禁锢的設定項,同時使用者還對自己通路的主目錄有寫入權限,例如,如果系統使用者對所通路的FTP主目錄具有寫入權限,則會拒絕使用者登入,如果是通路的是家目錄,預設擁有寫入權限,禁锢在家目錄中,就會導緻拒絕登入

如果想要既能使用者對主目錄有寫入權限,又能禁锢在主目錄中,就需要在配置檔案中再添加一個新的設定項“allow_writeable_chroot=YES”重新加載配置檔案就可以是實作正常通路了。

如果我們隻想來禁锢指定的使用者,還可以永固配置chroot_list清單來禁锢部分指定的使用者,在配置檔案的102和104行有兩個和chroot_list相關的設定項“chroot_list_enable=YES”表示啟用chroot_list的功能;“chroot_list_file=/etc/vsftpd/chroot_list”表示指定清單檔案,将這個兩個配置項啟用之後,隻需要将需要禁锢的使用者添加到清單檔案中即可,同時在配置檔案中我們還需要将“chroot_local_user”這項注釋掉。

從安全上來看,一般建議啟用将所有使用者禁锢的設定項。

  1. 配置使用者通路清單通路FTP服務:

預設設定情況下,FTP伺服器中的所有系統使用者都可以進行通路FTP服務,如果想隻有指定的使用者能通路,就可以設定通路使用者清單,來限制是否能通路FTP服務

Vsftpd服務預設提供了兩個通路使用者清單的檔案:/etc/vsftpd/ftpuser,/etc/vsftpd/user_list,兩個檔案中均包含有一份FTP使用者的清單名單:

·/etc/vsftpd/ftpuser:這個檔案是屬于黑名單,裡面包含的使用者賬号都将被禁止通路FTP服務,無論是否這個使用者在另一個/etc/vsftpd/user_list檔案中出現,一般是将“root”“bin”“daemon”等特殊使用者放在這個檔案中,禁止通路FTP。

·/etc/vsftpd/user_list:這個檔案可以用作白名單,也可以用作黑名單,就是意味着這個檔案裡包含的使用者既有可能被禁止登入,也有可能被允許登入,當然,我們一般是拿來做白名單,具體如何使用,需要修改配置檔案/etc/vsftpd/vsftpd.conf中的“userlist_enable=YES”設定項,表示是否啟用user_list這個檔案,啟用後,添加設定項“userlist_deny=YES”表示檔案将作為黑名單使用;添加“userlist_deny=NO”表示将檔案作為白名單使用,通常情況下都是作為白名單使用。

注意的是,當啟用了使用者清單後,即使将“anonymous_enable”設定項設為“YES”,也沒法使用匿名使用者通路FTP,匿名通路就被禁用了。

  1. 一般來說,使用本地系統使用者登入通路FTP服務的話,相對應的shell是可以登陸系統的使用者,這樣的話就意味着有安全隐患,按理來說,應該是不能登陸系統的本地使用者也可以通路FTP服務,/etc/shells這個檔案中就包含了所支援的shell類型,是以将“/sbin/nologin”這個shell添加到這個檔案中,就可以實作不能登陸系統的使用者可以通路FTP服務。

能夠通路FTP伺服器的條件:·必須是存在于/etc/passwd檔案中的使用者;使用者必須設定密碼

  1. /etc/vsftpd/vsftpd.conf中的“local_umask”設定項,用檔案(666)或系統最高權(777)限減去umask值表示在系統中目前使用者建立目錄或檔案的預設權限,是以這個設定項代表系統使用者來上傳或建立檔案或目錄的權限是什麼

繼續閱讀