欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Linux系統(tǒng)搭建FTP服務(wù)器完整步驟

 更新時間:2023年10月19日 15:33:40   作者:Хан  
這篇文章主要給大家介紹了關(guān)于Linux系統(tǒng)搭建FTP服務(wù)器的相關(guān)資料,眾所周知安裝ftp主要是還為了傳輸文件,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

FTP協(xié)議:文件傳輸協(xié)議(File Transfer Protocol)

  • 協(xié)議定義了一個在遠(yuǎn)程計算機系統(tǒng)和本地計算機系統(tǒng)之間傳輸文件的一個標(biāo)準(zhǔn)
  • FTP運行在OSI模型的應(yīng)用層,并利用傳輸協(xié)議TCP在不同的主機之間提供可靠的數(shù)據(jù)傳輸
  • FTP 在文件傳輸中還支持?jǐn)帱c續(xù)傳功能,可以大幅度減少CPU網(wǎng)絡(luò)帶寬的開銷

FTP模型

  • 用戶接口:提供一個用戶接口并使用客戶端協(xié)議解釋器的服務(wù)
  • 客戶端協(xié)議解釋器:向遠(yuǎn)程服務(wù)器發(fā)送命令 并建立客戶數(shù)據(jù)傳輸過程
  • 服務(wù)端協(xié)議解釋器:響應(yīng)客戶協(xié)議機發(fā)出的命令并驅(qū)動服務(wù)端數(shù)據(jù)傳輸過程
  • 客戶端數(shù)據(jù)傳輸協(xié)議:負(fù)責(zé)完成和服務(wù)器數(shù)據(jù)傳輸過程及客戶端本地文件系統(tǒng)的通信
  • 服務(wù)端數(shù)據(jù)傳輸協(xié)議:負(fù)責(zé)完成和客戶數(shù)據(jù)過程及服務(wù)器端文件系統(tǒng)的通信

控制連接(端口號21)

  • 主要用來傳送在實際通信過程中需要執(zhí)行的FTP命令以及命令的響應(yīng)
  • 只需要很小的網(wǎng)絡(luò)帶寬
  • FTP服務(wù)端監(jiān)聽21端口號來等待控制連接建立
  • 建立控制連接后,還需要驗證客戶身份,決定是否建立數(shù)據(jù)連接
  • 當(dāng)需要目錄列表,傳輸文件時,才建立數(shù)據(jù)連接,并且每次客戶端都是用不同的端口號來建立數(shù)據(jù)連接。數(shù)據(jù)傳輸完畢,就中斷這條臨時的數(shù)據(jù)連接
  • 在FTP連接期間,控制連接始終保持通常的連接狀態(tài)。在數(shù)據(jù)連接存在期間,控制連接必須存在;一旦控制連接斷開,數(shù)據(jù)連接會自動關(guān)閉。

數(shù)據(jù)連接(端口號20)

  • FTP服務(wù)端監(jiān)聽20端口來等待數(shù)據(jù)連接
  • 數(shù)據(jù)連接依賴于控制連接
  • 建立方式(主動被動都是相對服務(wù)器而言)

主動模式

  • 通過三次握手,建立控制連接;客戶端的源端口是高位隨機端口,目標(biāo)端口是21端口
  • 控制連接建立后,客戶端進(jìn)行身份驗證,協(xié)商數(shù)據(jù)連接采用主動模式;隨后客戶端會向FTP服務(wù)器發(fā)送Port報文,表明自己監(jiān)聽的IP+端口,并等待FTP服務(wù)器(20端口)向自己監(jiān)聽的IP+端口發(fā)起數(shù)據(jù)連接請求。
  • 服務(wù)端發(fā)起數(shù)據(jù)連接請求,建立數(shù)據(jù)連接

被動模式

  • 通過三次握手,建立控制連接;客戶端的源端口是高位隨機端口,目標(biāo)端口是21端口;
  • 控制連接建立后,客戶端進(jìn)行身份驗證,協(xié)商數(shù)據(jù)連接采用被動模式;隨后客戶端會向服務(wù)器發(fā)送PASV報文,表示我們用被動模式
  • 服務(wù)端收到PASV報文,于是向客戶端發(fā)送Port報文,表明自己監(jiān)聽的IP+端口
  • 客戶端發(fā)起數(shù)據(jù)連接請求,建立數(shù)據(jù)連接

VSFTPD服務(wù)介紹

  • 服務(wù)包:vsftpd
  • 服務(wù)類型:由Systemd啟動的守護進(jìn)程
  • 配置單元: /usr/lib/systemd/system/vsftpd.service
  • 守護進(jìn)程: /usr/sbin/vsftpd
  • 端口: 21(ftp) , 20(ftp‐data)
  • 主配置文件: /etc/vsftpd/vsftpd.conf
  • 用戶訪問控制配置文件: /etc/vsftpd/ftpusers /etc/vsftpd/user_list
  • 日志文件: /etc/logrotate.d/vsftpd
  • 配置文件參數(shù)
參數(shù)作用
listen=NO是否以獨立運行的方式監(jiān)聽服務(wù)
listen_address=ip地址設(shè)置要監(jiān)聽的IP地址
listen_port=21設(shè)置FTP服務(wù)的監(jiān)聽端口
download_enable=YES是否允許下載文件
userlist_enable=YES設(shè)置用戶列表為"允許"
userlist_deny=YES設(shè)置用戶列表為"禁止"
max_clients=0最大客戶端連接數(shù),0為不限制
max_per_ip=0同一IP地址的最大連接數(shù),0為不限制
anonymous_enable=YES是否允許匿名用戶訪問
anon_upload_enable=YES是否允許匿名用戶上傳文件
anon_umask匿名用戶上傳文件的umask
anon_root=/var/ftp匿名用戶的ftp根目錄
anon_mkdir_write_enable=YES是否允許匿名用戶創(chuàng)建目錄
anon_other_write_enable=YES是否開放匿名用戶的其他寫入權(quán)限(重命名、刪除等)
anon_max_rate=0匿名用戶的最大傳輸速率,0為不限制
local_enable=yes是否允許本地用戶登錄
local_umask=022本地用戶上傳文件的umask值
local_root=/vat/ftp本地用戶的ftp根目錄
chroot_local_user=YES是否將用戶權(quán)限禁錮在ftp目錄,以確保安全
local_max_rate=0本地用戶的最大傳輸速率,0為不限制

基礎(chǔ)配置

安裝vsftp

[root@localhoust ~]#yum -y install vsftpd

準(zhǔn)備分發(fā)的文件

[root@localhoust ~]#touch /var/ftp/abd.txt

啟動服務(wù)

[root@localhost ~]#systemctl start vsftpd
[root@localhost ~]#systemctl enable vsftpd

關(guān)閉防火墻

[root@localhost ~]#systemctl stop firewalld
[root@localhost ~]#setenforce 0

客戶端工具

Linux中

1.使用ftp工具

[root@localhost ~]# yum install ftp -y
[root@localhost ~]# ftp <IP地址>
Name (192.168.175.10:root):anonymous
password:直接回車

ftp工具一定要輸入用戶名和密碼,匿名用戶登陸用戶名寫anonymous,密碼直接回車,登陸成功或者失敗都會給出提示

2.使用lftp工具

[root@localhost ~]# yum install lftp -y
[root@localhost ~]# lftp <IP地址>

lftp工具不需要輸入用戶名和密碼直接登陸,不會直接給出登陸成功或者失敗的提示,需要輸入ls工具才能知道是否連接成功,優(yōu)點在于連接更加方便

Windows中

1.在瀏覽器中訪問

可以在瀏覽器、運行窗口或者資源管理器中輸入 ftp://IP地址/ ,這樣訪問的是ftp的根位置,如果需要訪問相關(guān)目錄可以輸入 ftp://IP地址/目錄/文件名

2.在控制管理器中訪問

在cmd窗口中,輸入命令 ftp <IP地址> 即可訪問

需要注意的是直接訪問ftp服務(wù)器的IP地址時訪問的根位置目錄是 /var/ftp,如果需要訪問pub里的test可以訪問 ftp://192.168.80.129/pub/test 。

案例

案例1,匿名用戶訪問(默認(rèn)開啟)

修改配置文件

[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@localhost ~]# systemctl restart vsftpd #重啟配置

新版本的vsftp針對用戶安全性進(jìn)行了升級,普通用戶無法在/var/ftp下新建文件,如果直接添加目錄的w權(quán)限會觸發(fā)安全判斷問題,因為/var/ftp目錄下的文件只能是默認(rèn)的755權(quán)限,普通用戶沒有w權(quán)限,而且/var/ftp目錄的屬主必須是root,如果修改所屬主或者權(quán)限則會觸發(fā)完全問題。欲使普通用戶可以在ftp中上傳文件,就在/var/ftp下新建一個用于普通用戶上傳文件的目錄,比如/var/ftp/pub,將/var/ftp/pub目錄的屬主和屬組改成ftp,并且添加w權(quán)限

chown ftp.ftp /var/ftp/pub
chmod 777 /var/ftp/pub

現(xiàn)在就可以在里面寫文件了

案例2,本地用戶訪問

這些用戶就是Linux下的用戶,使用本地用戶登陸,登陸成功時位置在該用戶的家目錄。如:用戶han登陸時,輸入han在Linux下的密碼,登陸成功后位置在/home,han可以在該目錄下創(chuàng)建或者刪除文件

修改配置文件

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO #不允許匿名用戶訪問
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@localhost ~]# systemctl restart vsftpd #重啟配置
[root@localhost ~]# systemctl enable vsftpd

本地用戶登陸時,密碼使用的是該用戶在Linux下登陸時的密碼,而不是ftp的密碼

注意:出現(xiàn)在/etc/vsftpd/ftpusers /etc/vsftpd/user_list這兩個文件中的內(nèi)容將會被定義為黑名單

案例3,虛擬用戶訪問

只用于登陸ftp的用戶,不是Linux下的用戶。

  • 創(chuàng)建用于進(jìn)行FTP認(rèn)證的用戶數(shù)據(jù)庫文件,其中奇數(shù)行為用戶名,偶數(shù)行為密碼。
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# vim vuser.list #創(chuàng)建文件,稍后虛擬用戶信息從這個文件讀取
eagle #用戶名
centos #密碼
cisco #用戶名
centos #密碼
huawei #用戶名
centos #密碼
  • 使用db_load命令用哈希(hash)算法將原始的明文信息文件轉(zhuǎn)換成數(shù)據(jù)庫文件。
[root@localhost vsftpd]# db_load -T -t hash -f vuser.list vuser.db

由于文件vuser.list中含有密碼等敏感信息,所以使用加密算法加密。轉(zhuǎn)換完后新的文件vuser.db就是用戶數(shù)據(jù)庫,里面是加密后的信息。

查看vuser.db的文件類型:

[root@localhost vsftpd]# file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
  • 降低數(shù)據(jù)庫文件的權(quán)限(避免其他人看到數(shù)據(jù)庫文件的內(nèi)容)。加強數(shù)據(jù)庫vuser.db的安全性,防止破解
[root@localhost vsftpd]# chmod 600 vuser.db
  • 把原始的明文信息文件刪除。
[root@localhost vsftpd]# rm -f vuser.list
  • 創(chuàng)建一個本地用戶,用來做虛擬用戶在本地的代理,為了安全起見,禁止這個本地用戶登錄。
[root@localhost vsftpd]# useradd -d /var/ftproot -s /sbin/nologin virtual
#-d 指定用戶的家目錄為/var/ftproot -s 指定為不能登陸的用戶
[root@localhost vsftpd]# ls -ld /var/ftproot/
drwx------. 2 virtual virtual 59 8月 10 23:04 /var/ftproot/
[root@localhost vsftpd]# chmod -Rf 755 /var/ftproot/

新建一個用于虛擬用戶認(rèn)證的PAM文件vsftpd.vu,利用pam模塊(linux內(nèi)核的一個認(rèn)證模塊)做一個認(rèn)證

[root@localhost vsftpd]# vi /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
  • 配置文件
[root@localhost vsftpd]# cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual #名為virtual的用戶做代理
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu #記得修改這里為我們自己的認(rèn)證文件
userlist_enable=YES
tcp_wrappers=YES
[root@localhost vsftpd]# systemctl restart vsftpd

這時用戶創(chuàng)建完畢,可以登陸,但是不能寫文件,需要給權(quán)限

  • 如果想要針對不同的用戶設(shè)置不同的權(quán)限
[root@localhost vsftpd]# mkdir /etc/vsftpd/vusers_dir/ #創(chuàng)建一個目錄用于存放各個虛擬用戶的配置文件
[root@localhost vsftpd]# cd /etc/vsftpd/vusers_dir/
[root@localhost vusers_dir]# touch huawei #創(chuàng)建huawei的配置文件,如果不給任何權(quán)限,則默認(rèn)為主配置文件
[root@localhost vusers_dir]# vim cisco #創(chuàng)建cisco的配置文件,并修改配置文件
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#與配置匿名用戶權(quán)限一樣
[root@localhost vusers_dir]# vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir #在主配置文件中加上這一行,告訴主配置文件我們這里還有配置
[root@localhost vusers_dir]# systemctl restart vsftpd
配置完后,huawei沒權(quán)限,cisco有權(quán)限

總結(jié) 

到此這篇關(guān)于Linux系統(tǒng)搭建FTP服務(wù)器的文章就介紹到這了,更多相關(guān)Linux搭建FTP服務(wù)器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論