centos8系統(tǒng)ftp服務(wù)器安裝及被動(dòng)模式配置詳細(xì)教程
這是一篇新手向的ftp服務(wù)器安裝。
1、了解基礎(chǔ)知識(shí)
FTP:文件傳輸協(xié)議(File Transfer Protocol,F(xiàn)TP)。
FTP是歷史上最悠久的文件傳輸協(xié)議之一,在很多軟件體系中都有應(yīng)用。比如說(shuō)wordpress后臺(tái)更新就需要FTP服務(wù)。
FTP使用 TCP 協(xié)議傳輸而不是 UDP。
FTP使用兩類(lèi)端口:控制端口21,傳輸端口。
FTP傳輸有兩類(lèi)模式,被動(dòng)模式(PASV)和主動(dòng)模式(PORT)。
在傳輸?shù)倪^(guò)程中,無(wú)論是被動(dòng)模式,還是主動(dòng)模式,都是【客戶(hù)端】和【服務(wù)器端的21端口】交換用戶(hù)名密碼等相關(guān)信息并確認(rèn)使用什么模式傳輸。如果是主動(dòng)模式,客戶(hù)端和服務(wù)器端在【服務(wù)器端的20端口】交換數(shù)據(jù)。如果是被動(dòng)模式,將有服務(wù)器端確認(rèn)一個(gè)或幾個(gè)自身的隨機(jī)端口,客戶(hù)端需要與服務(wù)器端的這個(gè)端口進(jìn)行數(shù)據(jù)交換。
VSFTPD是廣泛使用的FTP服務(wù)器軟件。FTP命令是客戶(hù)端的操作命令。
還有一種SFTP。SFTP和FTP只是名字類(lèi)似,不可簡(jiǎn)單地理解問(wèn)安全(safe)的FTP。他是ssh協(xié)議提供的文件傳輸方式,很多云服務(wù)器自帶ssh連接便于遠(yuǎn)程操作,所以即使你沒(méi)有成功配置FTP,可能也是可以使用SFTP傳輸?shù)?。SFTP只用22端口。
2、確認(rèn)系統(tǒng)環(huán)境
個(gè)人配置FTP服務(wù)器使用的是阿里云的ECS服務(wù)器。虛擬主機(jī)可能不支持部分配置,但是很多虛擬主機(jī)都自帶FTP服務(wù)。
系統(tǒng)是Alibaba Cloud Linux 3.2104 64位,兼容Centos8的指令。如果讀者使用的是其他版本的系統(tǒng),需要自行確認(rèn)部分指令是否能用。
使用的軟件包管理器是DNF。這是YUM的替代版本,兼容大多數(shù)YUM的指令。軟件包管理器可以以默認(rèn)路徑讓你方便地安裝、更新系統(tǒng)的軟件,減少因?yàn)榘惭b路徑的設(shè)置帶來(lái)的問(wèn)題,建議初學(xué)者使用。
在進(jìn)一步操作前,我們可以通過(guò)如下指令,確認(rèn)你的系統(tǒng)是否已經(jīng)安裝了相關(guān)組件:
whereis vsftpd
如果系統(tǒng)沒(méi)有安裝vsftpd,將會(huì)返回
VSFTPD:
否則會(huì)返回類(lèi)似如下的目錄
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz
這里面是三個(gè)目錄,使用空格隔開(kāi)。在CENTOS8的DNF默認(rèn)安裝中,/etc/vsftpd是默認(rèn)安裝位置。
3、安裝ftp指令【非必須】
ftp指令可以讓你在服務(wù)器端連接自己的FTP服務(wù)器,避免了防火墻的干擾,更利于排查問(wèn)題。非必須,但建議。
dnf install ftp
安裝上就可以直接使用。
鏈接服務(wù)器:
ftp XXX.XXX.XXX.XXX
XXX.XXX.XXX.XXX代表IP地址。也可以使用ftp localhost鏈接本地服務(wù)器。
退出服務(wù)器
quit
更多的內(nèi)容對(duì)于新手來(lái)說(shuō)并非必要,如想了解請(qǐng)自行搜索。
4、安裝VSFTPD
dnf install vsftpd
5、設(shè)置本地用戶(hù)
useradd xxx
passwd xxx
XXX代表你取的用戶(hù)名。通過(guò)useradd添加用戶(hù),通過(guò)passwd修改密碼
值得注意的是,通過(guò)這種方式添加的用戶(hù)為CENTOS系統(tǒng)的用戶(hù),而不是vsftpd這個(gè)軟件的用戶(hù)。更改的一些設(shè)置也是針對(duì)系統(tǒng)用戶(hù)的。
也可以使用虛擬用戶(hù),將虛擬用戶(hù)映射到系統(tǒng)用戶(hù)上,但相關(guān)設(shè)置對(duì)新手多少有點(diǎn)繁瑣,如需了解請(qǐng)搜索。
6、配置vsftpd的conf文件
之前提及了,CENTOS8下dnf安裝,默認(rèn)安裝路徑為/etc/vsftpd。vsftpd的設(shè)置文件就在這里。
這篇文章使用被動(dòng)模式鏈接。主要需要修改的參數(shù)如下(【】以及【】?jī)?nèi)的內(nèi)容為相關(guān)設(shè)置的注解,請(qǐng)不要寫(xiě)入設(shè)置文件)
禁用PORT模式
connect_from_port_20=NO【禁用了PORT模式使用的傳輸端口】
開(kāi)啟PASV模式
listen=YES listen_ipv6=NO【PASV模式會(huì)向客戶(hù)端返回自己隨機(jī)分配的連接地址及端口,這個(gè)返回值是一個(gè)6位的:XXX,XXX,XXX,XXX,a,b。其中前四位為IP,后兩位按著a*256+b的計(jì)算方式為端口值如果這個(gè)開(kāi)啟,該值會(huì)被識(shí)別成IPV6地址,帶來(lái)復(fù)雜的情況】 pasv_enable=YES【允許PASV模式】 pasv_min_port=xxxx pasv_max_port=xxxx【規(guī)定服務(wù)器端分配的最小和最大端口號(hào)。如果不規(guī)定,服務(wù)器可能配置的端口號(hào)和其他軟件的端口重復(fù),導(dǎo)致出錯(cuò)。建議分配較大的端口避免沖突,但是過(guò)大的端口可能超出服務(wù)器的范圍】 pasv_addr_resolve=YES【十分重要。允許ip地址修改。】 pasv_address=XXX.XXX.XXX.XXX【十分重要。這個(gè)地址是你服務(wù)器的公網(wǎng)地址。PASV模式,服務(wù)器會(huì)返回一個(gè)6位的地址和端口。如果不設(shè)置上述兩項(xiàng),返回的是私網(wǎng)ip,遠(yuǎn)程連接無(wú)法找到你的地址。】 pasv_promiscuous=YES【YES關(guān)閉安全檢查。有一定風(fēng)險(xiǎn)。正常情況下服務(wù)器會(huì)檢查客戶(hù)端兩次連接的IP是否一致,如果不一致將會(huì)拒絕鏈接。】
建議修改的安全性相關(guān)設(shè)置
anonymous_enable=NO【禁止匿名用戶(hù)】 chroot_local_user=YES【禁止用戶(hù)訪(fǎng)問(wèn)規(guī)定根目錄以外的文件】 allow_writeable_chroot=NO
7、配置系統(tǒng)相關(guān)軟件的配合
設(shè)置nologin
修改passwd文件,一般在/etc路徑下,將/bin/bash修改為/sbin/nologin,禁止你的ftp用戶(hù)名密碼直接登錄系統(tǒng)
修改根目錄
修改passwd文件,把目錄地址更換成你想讓ftp用戶(hù)訪(fǎng)問(wèn)的地址。
修改目錄權(quán)限
這部分建議專(zhuān)門(mén)找一篇介紹權(quán)限的書(shū)籍。我設(shè)置的755權(quán)限。
根目錄權(quán)限根據(jù)你的設(shè)置文件,會(huì)有不同的出錯(cuò)可能。
pam文件
修改了用戶(hù)的nologin之后,需要查找系統(tǒng)pam.d文件夾(一般在etc路徑下)。有一條auth required pam_shells.so,當(dāng)你修改成了nologin之后和這個(gè)對(duì)不上,會(huì)出錯(cuò),注釋掉。
如果你有其他設(shè)置,可能需要進(jìn)一步修改這個(gè)文件。
開(kāi)放端口給外網(wǎng)
這一步包括兩個(gè)內(nèi)容,一個(gè)是開(kāi)放服務(wù)器的防火墻,另一個(gè)是可能你的服務(wù)器提供商有外部安全組。
開(kāi)放服務(wù)器的防火墻
CENTOS默認(rèn)安裝firewalld,如果你的系統(tǒng)是iptables請(qǐng)自行搜索,selunix也需要相關(guān)設(shè)置,但是因?yàn)檩^容易出錯(cuò)很多人都默認(rèn)關(guān)閉
systemctl status firewalld【查看firewalld是否開(kāi)啟】 firewall-cmd --add-port=xxx-xxx/tcp --permanent【xxx-xxx代表設(shè)置文件里配置的端口范圍,左小右大】 firewall-cmd --add-port=21/tcp --permanent【開(kāi)放控制鏈路的21端口。如果你沒(méi)禁用PORT模式,還需要開(kāi)放20端口】 firewall-cmd --reload【重新載入設(shè)置】
開(kāi)放服務(wù)商的外部安全組
以阿里云為例,在控制臺(tái)-服務(wù)器-安全組,入方向做類(lèi)似配置,把設(shè)置文件里面的PASV端口范圍、控制鏈路的21端口(PORT模式?jīng)]關(guān)閉還需要開(kāi)放20端口)
8、測(cè)試可能出現(xiàn)的錯(cuò)誤
在服務(wù)器及遠(yuǎn)程客戶(hù)端,通過(guò)ftp指令及ip登錄。windows可以通過(guò)資源管理器ftp://XXX,XXX,XXX,XXX(公網(wǎng)ip地址)登錄,可以通過(guò)cmd命令測(cè)試,也可以使用ftp軟件。
1、如果服務(wù)器可以登錄遠(yuǎn)程不可以,那么檢查一下防火墻的設(shè)置。
2、如果出現(xiàn)“227 Entering Passive Mode”的錯(cuò)誤,那么就是沒(méi)有設(shè)置好pasv_addr_resolve=YES和pasv_address=XXX.XXX.XXX.XXX。服務(wù)器返回的地址是私網(wǎng)地址或者錯(cuò)誤的ip,客戶(hù)端無(wú)法連接上。
我暫時(shí)沒(méi)有遇到更多問(wèn)題,經(jīng)過(guò)如上配置使用FTP更新了自己的wordpress。如果錯(cuò)漏,懇請(qǐng)斧正。謝謝閱讀。
到此這篇關(guān)于centos8系統(tǒng)ftp服務(wù)器安裝及被動(dòng)模式配置-新手友好的文章就介紹到這了,更多相關(guān)centos8系統(tǒng)ftp服務(wù)器內(nèi)容請(qǐng)搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。