首頁 運維 linux運維 Linux中如何設定ftp伺服器

Linux中如何設定ftp伺服器

Jun 20, 2017 pm 01:06 PM
linux 伺服器 配置

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

vscode 無法安裝擴展 vscode 無法安裝擴展 Apr 15, 2025 pm 07:18 PM

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

vscode 可以用於 mac 嗎 vscode 可以用於 mac 嗎 Apr 15, 2025 pm 07:36 PM

VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。

See all articles