1. 程式人生 > >ftp服務原理與基本配置

ftp服務原理與基本配置

ftp服務原理與基本配置

ftp是一種文件傳輸協議,分為主動模式與被動模式
主動模式基本原理:

主動:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,客戶端在命令鏈路上用PORT命令告訴服務器:“我打開了XXXX端口,你過來連接我”。於是服務器從20端口向客戶端的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。
技術分享圖片

被動模式基本原理:

被動:客戶端向服務器的FTP端口(默認是21)發送連接請求,服務器接受連接,建立一條命令鏈路。當需要傳送數據時,服務器在命令鏈路上用PASV命令告訴客戶端:“我打開了XXXX端口,你過來連接我”。於是客戶端向服務器的XXXX端口發送連接請求,建立一條數據鏈路來傳送數據。

技術分享圖片


搭建ftp服務過程
1、安裝服務,並進行火墻操作

在搭建好yum源的前提下,進行
yum install vsftpd -y
setenforce 0
firewalld-cmd --permanent --add-service=ftp
firewalld-cmd --reload
systemctl start vsftpd

2、配置ftp服務


1、修改匿名用戶登陸的家目錄
anon_root=/ftpdirhaha #將匿名用戶登陸的新目錄進行建立
重啟服務
技術分享圖片


2、匿名用戶與本地用戶是否可以登陸
anonymous_enable=YES | NO
YES表示匿名用戶可以登陸,NO表示匿名用戶不可以進行登陸

local_enable=YES | NO
YES表示本地用戶可以登陸,NO表示本地用戶不可以進行登陸
若登陸不成功,則顯示的是這樣的界面
技術分享圖片


3、本地用戶是否可以進行上傳
前提是將write_enable=YES (將本地用戶可寫打開)
anon_upload_enable=YES 表示支持本地用戶可以上傳文件
因為本地用戶上傳的目錄是/var/ftp/pub目錄,所以要將此目錄給以相應的權限。
匿名用戶使用的是ftp用戶,所以再次將此目錄給以這樣的權限
chgrp ftp /var/ftp pub
chmod 775 /var/ftp/pub
技術分享圖片


4、匿名用戶進行下載
anon_world_readable_only=YES|NO(設定參數為NO表示匿名用戶可以下載)

技術分享圖片


5、對匿名用戶下載進行限速處理
anon_max_rate=102400 #控制速度在100kb左右
實驗為往ftp服務器上上傳文件,所以要將anon_upload_enable=YES參數打開
不限速的實驗效果
技術分享圖片
進行限速後的實驗效果
技術分享圖片
速度是控制在100k左右


6、本地用戶與匿名用戶上傳文件的權限
local_umask=022 #值越大,安全級別越高
anon_umask=077技術分享圖片
本地用戶的權限是644
技術分享圖片
匿名用戶的權限是600


7、將本地用戶鎖在家目錄中
chroot_local_user=YES
chmod u-w /home/* #不進行此不操作會出現權限過大的報錯


8、虛擬用戶的設置
步驟:
(1)在/etc/vsftpd/創建一個保存虛擬用戶名與密碼的文件
技術分享圖片
(2)對此文件進行加密
db_load -T -t hash -f userdb userdb.db
-T 表示進行轉換
-t hash 表示進行hash加密
-f 表示原文件是userdb文件
(3)修改配置文件
vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftpuser
此模塊是一個認證的模塊,源文件寫的是vsftp,將此改變,表示讓服務去讀取重新寫入的ftpuser的認證模塊
guest_enable=YES #使用guest的身份進行登陸
guest_username=ftp #是guest_enable參數必須設置的一個參數使用ftp身份
local_root=/vftphome/$USER
user_sub_token=$USER
(4)寫入自定義的認證模塊
[root@localhost user3]# cat /etc/pam.d/ftpuser
account required pam_userdb.so db=/etc/vsftpd/userdb
auth required pam_userdb.so db=/etc/vsftpd/userdb
(5)測試
技術分享圖片

ftp服務原理與基本配置