您好,登錄后才能下訂單哦!
官方語言介紹下ftp,文件傳輸協議(File Transfer Protocol,FTP)是用于在網絡上進行文件傳輸的一套標準協議,FTP 的目標是提高文件的共享性。今天從ftp的兩種模式,ftp用戶管理主要的兩方面實踐使用下。
1.ftp 兩種模式
簡明直接:
主動FTP:
命令連接:客戶端 >1024端口 ---> 服務器 21端口
數據連接:客戶端 >1024端口 <--- 服務器 20端口
被動FTP:
命令連接:客戶端 >1024端口 ---> 服務器 21端口
數據連接:客戶端 >1024端口 ---> 服務器 >1024端口
具體說明:
如圖對于兩種傳輸模式來說,控制連接的建立過程都是一樣,均為服務器監聽21號端口,客戶端向服務器的該端口發起TCP連接。主動模式服務器通過控制連接知道客戶端監聽的端口后,使用自己的20號端口作為源端口,“主動”發起TCP數據連接。而被動模式服務器監聽1024-65535的一個隨機端口,并通過控制連接將該端口告訴客戶端,客戶端向服務器的該端口發起TCP數據連接。
兩種模式該選擇哪個了?選擇被動模式。
如果FTP客戶端在私網,FTP服務器在公網(云主機的應用場景)應該使用被動模式,因為這種應用場景FTP服務器訪問不到在私網的FTP客戶端,而FTP客戶端可以訪問到FTP服務器。
那ftp服務器放開大于1024端口,不安全,如何做了?
服務端配置高點端口,然后防火墻中限制這個端口段可以被客戶端連接過來。
再者就是限制客戶端的ip,指定特定的客戶端地址。(誰用誰連)
被動模式配置
connect_from_port_20=NO
PASV_enable=YES 開啟被動模式
PASV_min_port=%number% 被動模式最低端口
PASV_max_port=%number% 被動模式最高端口
2.ftp 創建虛擬用戶(加強訪問安全的措施)
簡明直接:
我們登錄FTP有三種方式,匿名登錄、本地用戶登錄和虛擬用戶登錄。
匿名登錄:在登錄FTP時使用默認的用戶名,一般是ftp或anonymous。
本地用戶登錄:使用系統用戶登錄,在/etc/passwd中。
虛擬用戶登錄:這是FTP專有用戶,有兩種方式實現虛擬用戶,本地數據文件和數據庫服務器。
FTP虛擬用戶是FTP服務器的專有用戶,使用虛擬用戶登錄FTP,只能訪問FTP服務器提供的資源,大大增強了系統的安全。
具體實施:
2.1 搭建
yum -y install vsftpd
添加虛擬用戶文件,添加虛擬用戶名和密碼,一行用戶名,一行密碼,以此類推。奇數行為用戶名,偶數行為密碼。
vim /etc/vsftpd/vuser.txt
name #用戶
passwd #密碼
生成虛擬用戶認證文件
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db
編輯vsftpd的pam認證文件/etc/pam.d/vsftpd
vsftpd的其他行可注釋掉。
添加以下:
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
建立本地映射用戶并設置宿主目錄權限
useradd -d /data -s /sbin/nologin vsftpd
chmod a-w /data
chown -R vsftpd:vsftpd /data
2.2 配置文件vsftpd.conf
#連接相關
ftpd_banner=welcome to ftp service
#空閑超時時間,用戶超過這段時間不動作被服務器提出。
idle_session_timeout=300
#數據連接超時時間
data_connection_timeout=60
connect_timeout=60
max_clients=100
#允許每個客戶端連接3個
max_per_ip=3
listen_address=192.168.100.100
listen_port=21
#權限相關
#不允許匿名用戶登錄
anonymous_enable=NO
#允許本地用戶登錄(這里指創建系統用戶vsftpd)
local_enable=YES
#允許ascii模式的上傳(可以防止上傳腳本等惡意文件),而不會遭受拒絕服務的危險。
ascii_upload_enable=YES
guest_enable=YES
guest_username=vsftpd
#允許匿名用戶上傳(這里指系統用戶下的虛擬用戶)
anon_upload_enable=YES
#允許匿名用戶創建和寫入
anon_mkdir_write_enable=YES
#開啟全局權限
write_enable=YES
#設置這個之后客戶端上傳目錄權限就改為755,文件權限就為644
anon_umask=022
#以下為系統默認設置
#允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容。
dirmessage_enable=YES
#xferlog_enable=YES,啟用記錄上傳/下載活動日志功能。
xferlog_enable=YES
#connect_from_port_20=YES啟用FTP數據端口的連接請求
connect_from_port_20=NO
xferlog_std_format=YES
#在VSFTPD中使用TCP_Wrappers遠程訪問控制機制,默認值為YES
tcp_wrappers=YES
特別強調的配置:
#開啟虛擬用戶;虛擬用戶對應的系統用戶;PAM認證文件。
guest_enable=YES
guest_username=vsftpd
pam_service_name=vsftpd
#這種完成后只能上傳文件,及下載文件。但是不能修改ftp 服務端的文件。
如何才能修改及刪除呢?
anon_other_write_enable=YES #允許虛擬用戶寫入權限(即修改刪除操作)
2.3 啟動vsftpd
systemctl start vsftpd
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。