linux 在 linux 中搭建 FTP 服務
概述
在本篇博文中,我將會介紹如何搭建你自己的FTP服務
FTP是什么
FTP 是文件傳輸協議File Transfer Protocol的縮寫。顧名思義,FTP用于計算機之間通過網絡進行文件傳輸。你可以通過FTP在計算機賬戶間進行文件傳輸,也可以在賬戶和桌面計算機之間傳輸文件,或者訪問在線軟件歸檔。但是,需要注意的是多數的FTP站點的使用率非常高,可能需要多次重連才能連接上。
FTP地址和HTTP地址(即網頁地址)非常相似,只是FTP地址使用ftp://前綴而不是http://
FTP服務器是什么
通常,擁有FTP地址的計算機是專用于接收FTP連接請求的。一臺專用于接收FTP連接請求的計算機即為FTP服務器或者FTP站點。
現在,我們來開始搭建一個FTP服務文件共享。在本博文,我們將以vsftpd作為ftp服務。
VSFTPD是一個自稱為最安全的FTP服務端軟件。事實上VSFTPD的前兩個字母表示“非常安全的very secure”。該軟件的構建繞開了FTP協議的漏洞。
盡管如此,你應該知道還有更安全的方法進行文件管理和傳輸,如:SFTP(使用OpenSSH)。FTP協議對于共享非敏感數據是非常有用和可靠的。
安裝VSFTPD
CentOS
# 安裝vsftpd yum -y install vsftpd # 啟動 service vsftpd start # 開啟啟動 chkconfig vsftpd on
1
2
3
4
5
6
VSFTPD相關命令
# 啟動ftp服務 service vsftpd start # 查看ftp服務狀態 service vsftpd status # 重啟ftp服務 service vsftpd restart # 關閉ftp服務 service vsftpd stop
1
2
3
4
5
6
7
8
配置FTP服務
多數的VSFTPD配置項都在/etc/vsftpd.conf配置文件中。這個文件本身已經有非常良好的文檔說明了,因此,在本節中,我只強調一些你可能進行修改的重要選項。使用man頁面查看所有可用的選項和基本的 文檔說明:
man vsftpd.conf
1
根據文件系統層級標準,FTP共享文件默認位于/srv/ftp目錄中。
允許上傳:
為了允許ftp用戶可以修改文件系統的內容,如上傳文件等,“write_enable”標志必須設置為 YES。
write_enable=YES
1
允許本地(系統)用戶登錄:
為了允許文件/etc/passwd中記錄的用戶可以登錄ftp服務,“local_enable”標記必須設置為YES。
local_enable=YES
1
匿名用戶登錄
下面配置內容控制匿名用戶是否允許登錄:
允許匿名用戶登錄
anonymous_enable=YES
1
匿名登錄不需要密碼(可選)
no_anon_password=YES
1
匿名登錄的最大傳輸速率,Bytes/second(可選)
anon_max_rate=30000
1
匿名登錄的目錄(可選)
anon_root=/example/directory/
1
根目錄限制(Chroot Jail)
( chroot jail是類unix系統中的一種安全機制,用于修改進程運行的根目錄環境,限制該線程不能感知到其根目錄樹以外的其他目錄結構和文件的存在。詳情參看chroot jail)
有時我們需要設置根目錄(chroot)環境來禁止用戶離開他們的家(home)目錄。在配置文件中增加/修改下面配置開啟根目錄限制(Chroot Jail):
chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
1
2
“chroot_list_file”變量指定根目錄限制所包含的文件/目錄( 即用戶只能訪問這些文件/目錄)
最后你必須重啟ftp服務,在命令行中輸入以下命令:
sudo systemctl restart vsftpd
1
到此為止,你的ftp服務已經搭建完成并且啟動了。
配置文件vsftpd.conf
#進入vsftpd配置文件 vim /etc/vsftpd/vsftpd.conf # 禁止匿名用戶anonymous登錄 anonymous_enable=NO # 允許本地用戶登錄 local_enable=YES # 讓登錄的用戶有寫權限(上傳,刪除) write_enable=YES # 默認umask local_umask=022 # 把傳輸記錄的日志保存到/var/log/vsftpd.log xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=NO # 允許ASCII模式上傳 ascii_upload_enable=YES # 允許ASCII模式下載 ascii_download_enable=YES # 使用20號端口傳輸數據 connect_from_port_20=YES # 歡迎標語 ftpd_banner=Welcome to use my test ftp server. # 接下來的三條配置很重要 # chroot_local_user設置了YES,那么所有的用戶默認將被chroot, # 也就用戶目錄被限制在了自己的home下,無法向上改變目錄。 # chroot_list_enable設置了YES,即讓chroot用戶列表有效。 # ★超重要:如果chroot_local_user設置了YES,那么chroot_list_file # 設置的文件里,是不被chroot的用戶(可以向上改變目錄) # ★超重要:如果chroot_local_user設置了NO,那么chroot_list_file # 設置的文件里,是被chroot的用戶(無法向上改變目錄) chroot_list_enable=YES # touch /etc/vsftpd/chroot_list 新建 chroot_list_file=/etc/vsftpd/chroot_list use_localtime=YES # 以standalone模式在ipv4上運行 listen=YES # PAM認證服務名,這里默認是vsftpd,在安裝vsftpd的時候已經創建了這個pam文件, # 在/etc/pam.d/vsftpd,根據這個pam文件里的設置,/etc/vsftpd/ftpusers # 文件里的用戶將禁止登錄ftp服務器,比如root這樣敏感的用戶,所以你要禁止別的用戶 # 登錄的時候,也可以把該用戶追加到/etc/vsftpd/ftpusers里。 pam_service_name=vsftpd # 重啟 vsftpd service vsftpd restart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
FTP Linux
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。