您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關怎樣進行linux ftp服務的搭建配置,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
FTP介紹
FTP:是文件傳輸協議的縮寫。
功能:用來實現文件的上傳(upload)和下載(download)
ftp的工作端口: 21 : 控制端口,用于在客戶機和服務器之間建立連接
20 : 數據端口,用于服務器給客戶機主動進行數據連接
vsftpd:非常安全文件傳輸協議守護進程(very secure ftp daemon)
ftp的工作模式:主動port、被動passive模式
客戶端與服務端傳輸數據時,服務端傳輸端口為20時為主動模式,傳輸端口為>1024的隨機端口時為被動模式
ftp主動(port)模式工作過程:
1.客戶機和服務器建立連接關系(登錄): 客戶機(>1024的隨機端口號) <----> 服務器 21號port
2.雙方建立數據連接關系,傳輸數據:客戶機(>1024的隨機port) <----> 服務器 20號port
ftp被動(pasv)模式工作過程:
1.客戶機和服務器建立連接關系(登錄): 客戶機(>1024的隨機端口號) <----> 服務器 21號port
2.雙方建立數據連接關系,傳輸數據:客戶機(>1024的隨機port) <----> 服務器(>1024的隨機port)
說明:當ftp服務器上有防火墻時,通常客戶機是以被動模式去訪問ftp服務器的。在ftp服務器的vsftpd.conf和防火墻上要指定放行的被動模式端口范圍的最小值和最大值。
vsftpd.conf 的被動模式端口范圍:
pasv_min_port=5000
pasv_max_port=6000
vsftpd部署思路:
1.關閉安全功能,并查狀態:
systemctl stop firewalld ; setenforce 0 #關閉防火墻及selinux安全設置
systemctl status firewalld ; getenforce #查看防火墻狀態,檢查是否關閉
2.查軟件是否已安裝,如果未安裝就安裝軟件。
rpm -q vsftp ftp lftp #vsftpd是服務器端程序, ftp lftp為客戶端程序
3.啟動服務,并允許開機自動啟動
systemctl restart vsftpd #重啟vsftpd服務
systemctl enable vsftpd #設置vsftpd開機自啟動
4.設置共享目錄,重新加載設置。
5.做本地(內測)訪問測試,做異地(公測)訪問測試。
實驗環境:
centos7.6 (以本機IP為例 192.168.11.11)
安裝步驟:
yum install -y vsftpd ftp lftp #使用yum安裝vsftpd ftp lftp 軟件systemctl restart vsftpd #啟動服務systemctl enable vsftpd #設置開機自啟動systemctl status vsftpd #查看服務狀態,為running 時則服務啟動成功
共享需要的文件:
vsftpd的默認共享目錄:
1.匿名用戶(ftp或anonymous)共享:/var/ftp目錄
2.普通用戶:訪問的是普通用戶自己的家目錄,通常是"/home/用戶名"文件夾
注意:root用戶默認不能登錄vsftpd服務器來訪問共享,因為root賬號在黑名單里。
服務測試:
方式一: ftp 192.168.11.11 回車 再按照提示輸入用戶密碼即可登陸
方式二: lftp 192.168.11.11 -u 用戶名,密碼 即可登陸成功 (例: 用戶名為tom 密碼為0 登陸)
在window下可以用資源管理器進行登陸: ftp://192.168.11.11
vsftpd配置文件: rpm -qc vsftpd (查看vsftpd的配置文件)
主配置文件為 /etc/vsftpd/vsftpd.conf
FTP服務功能及修改對應配置文件介紹
黑名單功能:
/etc/vsftpd/ftpusers 和 /etc/vsftpd/user_list 為黑名單文件
功能:可以把用戶設置為黑白名單,限制用戶訪問
例:root用戶默認在黑名單中,把兩個上述文件中的root用#號注釋即可用root用戶訪問
也可以把其他用戶加入黑名單中
(注: user_list 可以設置為白名單,在/etc/vsftpd/vsftpd.conf 配置文件中最后一行添加 userlist_deny=NO )
添加后重啟服務,白名單的用戶可以訪問,而非白名單用戶不能訪問,當黑白名單同時存在時,黑名單優先級大于白名單,也就是只要出現在 黑名單就不能正常登陸服務
建議:修改配置文件時最好先備份文件
chroot牢籠功能:
因登陸的用戶訪問的是自身的家目錄,但可以通過命令查看其他文件,比如根目錄或其他配置文件,所以可以使用chroot牢籠功能限制,只 允許登陸的用戶訪問自己的家目錄
chroot牢籠分為四種情況:
1.全部用戶不加鎖(默認,但不安全)
2.全部加鎖
3.少數用戶不加鎖
4.少數用戶加鎖
情況一:使用vim 編輯 配置文件/etc/vsftpd/vsftpd.conf ,并用set nu顯示行號,可以看到以下行數的配置文件,默認不加鎖,不用修改
情況二:啟動所有普通用戶的牢籠功能(即對所有人加鎖)
按照上述步驟編輯配置文件/etc/vsftpd/vsftpd.conf ,set nu顯示行號,去除101行#號,并添加allow_writeable_chroot=YES,如下圖所示:
情況三:給指定少數用戶不啟用牢籠功能(即少數人不加鎖)
同理編輯配置文件,并指定白名單路徑,如下圖所示:
vim編輯/etc/vsftpd/chroot_list,添加不需要啟用牢籠功能的用戶,再重啟服務即可
情況四:給指定的少數普通用戶啟用牢籠功能(即少數人加鎖)
編輯配置文件如下圖所示:
用#號注釋掉101行 chroot_local_user=YES,此時只有文件/etc/vsftpd/chroot_list 中的用戶啟用了牢籠功能
最后重啟服務(注:每次修改完配置文件都得重啟服務 systemctl restart vsftpd)
anonymous匿名用戶功能
實際作用:實現允許anonymous匿名用戶對共享文件具有可讀可寫的權限
分析:想實現上述功能必須滿足以下條件
1.文件共享軟件必須允許這個用戶有可讀可寫的權限。
2.用戶對共享目錄自身要有可讀可寫的權限。
3.匿名用戶僅允許上傳文件到/var/ftp中的子目錄中。如/var/ftp/upload,且ftp匿名用戶對upload目錄要有可讀可寫權限。
(警告:/var/ftp目錄的屬主、屬組不允許修改,且other權限不允許有w可寫權限,否則用ftp匿名用戶訪問共享時會提示下面這個500錯誤:500 OOPS: vsftpd: refusing to run with writable root inside chroot()
Login failed.
421 Service not available, remote server has closed connection)
實際操作步驟:
1.編輯配置文件/etc/vsftpd/vsftpd.conf ,去除29 , 30行的#號,再添加兩行代碼,如圖所示:
#anon_upload_enable=YES 允許匿名用戶上傳#anon_mkdir_write_enable=YES 允許匿名用戶用mkdir創建目錄anon_other_write_enable=YES 允許匿名用戶執行rm刪除等操作(添加此行)anon_world_readable_only=NO 關閉匿名用戶只讀的限制(為YES時會無法下載)
2.用root用戶創建/var/ftp/upload目錄,權限為777或屬主和屬組均為ftp,重啟vsftpd服務,使用ftp登陸,即可實現匿名共享
ftp服務限速功能:
即對不同用戶限制不同的文件傳輸速度
1.在配置文件/etc/vsftpd/vsftpd.conf 中添加如下內容:
user_config_dir=/etc/vsftpd/userconf #指定個性化配置文件的主目錄
2.創建指定個性化配置文件的主目錄: mkdir -pv /etc/vsftpd/userconf
使用vim 創建編輯 /etc/vsftpd/userconf/gg
添加內容: local_max_rate=2000000 #即對名為gg的用戶上傳和下載速度限制為2MB/s
vsftpd的tcp_wrapers防火墻設置:
tcp_wrapers功能:一個迷你的防火墻,可以用來做基于tcp協議的應用程序的ip安全訪問控制
配置文件: /etc/hosts.allow (白名單) ; /etc/hosts.deny (黑名單)
!技巧:讓少數人為白戶,那么先在hosts.deny中做拒絕所有(all)黑名單,然后在hosts.allow中做少數IP的放行白名單。
設置舉例:
格式說明: 守護進程名稱 : 主機名或IP地址
vim /etc/hosts.deny #黑名單
vsftpd:192.168.11.1 #拒絕192.168.11.1這臺主機訪問vsftpd共享
sshd:192.168.11.1 #拒絕192.168.11.1這臺主機訪問sshd共享
vsftpd虛擬用戶功能:
虛擬用戶:即非useradd創建的用戶賬號(非/etc/passwd中的賬號),而是用vim創建的屬于vsftpd的獨立用戶賬號。
虛擬用戶的優勢:可以避免系統中的用戶賬號過多,讓vsftpd文件共享軟件獨立管理自己的用戶賬號。
虛擬用戶賬號文件格式:
文件中的奇數行是用戶賬號,偶數行是用戶的密碼。
例:
1.創建虛擬用戶賬號文件:vim /etc/vsftpd/vuser.txt,輸入圖中內容,即創建虛擬用戶f1,f2,f3,密碼為123456
2.將虛擬用戶賬號轉換成加密的數據庫格式文件。
yum install -y libdb-utils #安裝libdb-utils
cd /etc/vsftpd #cd到/etc/vsftpd目錄下
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuserdb.db #用hash算法對vuser.txt轉化格式為.db
chmod -v 600 /etc/vsftpd/vuserdb.db #給予文件/etc/vsftpd/vuserdb.db 權限
3.在vsftpd的pam認證文件中添加虛擬用戶賬號文件的認證關系。
vim /etc/pam.d/vsftpd , 在文件開頭插入以下兩行,并如圖:
auth sufficient pam_userdb.so db=/etc/vsftpd/vuserdb
account sufficient pam_userdb.so db=/etc/vsftpd/vuserdb (代碼作用:既能讓虛擬用戶訪問共享,也能讓普通用戶訪問共享。)
4.用useradd創建一個普通用戶賬號qq
useradd qq -s /sbin/nologin #創建一個名為qq的用戶,指定登錄shell為.sbin/nologin
5.在vsftpd.conf配置文件中設置一個真實用戶賬號,并將真實用戶賬號vftper和虛擬用戶賬號文件關聯起來。
vim vsftpd.conf 在文件最后添加如下內容:
guest_enable=YES #允許來賓用戶訪問共享,即虛擬用戶
guest_username=vftper # 指定來賓用戶名為vftper用戶(即第4步新建的用戶)
user_config_dir=/etc/vsftpd/vuser_conf #指定用戶配置文件目錄
allow_writeable_chroot=YES #允許chroot功能下執行寫操作(必須加此行,否則會登錄失敗)
6.給每個虛擬用戶賬號設置獨立的共享訪問速度和訪問目錄。
cd /etc/vsftpd
mkdir -v vuser_conf
cd vuser_conf #在/etc/vsftpd目錄下,創建vuser_conf目錄
#創建f1、f2虛擬用戶的會員個性化設置文件,允許f1這個虛擬用戶在自己的家目錄中可讀可寫。
touch f1 f2
mkdir -v /home/vftper/{f1,f2}
chmod -v 777 /home/vftper/{f1,f2}
vim f1 輸入內容:
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vftper/f1
#允許f2這個用戶在自己的家目錄中可讀,但不可寫。
vim f2 輸入內容:
local_root=/home/vftper/f2 #只寫這行,其余行可以不寫
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
7.重啟vsftpd服務,并分別用虛擬用戶賬號訪問共享。
systemctl restart vsftpd
ftp 192.168.11.11 -->用f1、f2虛擬用戶分別訪問共享,測試文件的上傳。
到此,vsftpd的虛擬用戶項目試驗完畢。
ftp和lftp客戶端程序的操作功能:
兩者都是客戶端應用程序
ftp命令格式: ftp 192.168.11.11
lftp命令格式:lftp 192.168.11.11 -u qq,0 #使用密碼為0,用戶名為qq的賬號登陸
ftp 和 lftp 的區別: ftp模式下傳輸文件需指定文件的根目錄,lftp則不需指定文件的根目錄
看完上述內容,你們對怎樣進行linux ftp服務的搭建配置有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。