通過(guò)WP在線安裝主題或更新插件時(shí)匠璧,WP會(huì)通過(guò)FTP協(xié)議獲取訪問(wèn)網(wǎng)頁(yè)服務(wù)器的權(quán)限芽狗。
安裝vsftpd
vsftpd(very secure FTP daemon)是一款在Linux發(fā)行版中最受推崇的FTP服務(wù)器程序狡蝶。
yum -y install vsftpd
systemctl start vsftpd.service #啟動(dòng)vsftpd
systemctl enable vsftpd.service #設(shè)置vsftpd開(kāi)機(jī)自啟動(dòng)
配置vsftpd
vim /etc/vsftpd/vsftpd.conf
庶橱,修改如下參數(shù),其他默認(rèn)即可
#修改
anonymous_enable=NO #禁止匿名訪問(wèn)
data_connection_timeout=5 #數(shù)據(jù)連接超時(shí)時(shí)間贪惹。如果在使用vsftpd上傳下載碎小文件的時(shí)候容易發(fā)生超時(shí)中斷的問(wèn)題苏章,將120改成5或者更小為佳
#使ftp用戶(hù)始終在項(xiàng)目部署的根目錄范圍內(nèi),禁止訪問(wèn)系統(tǒng)其它文件
chroot_local_user=YES #打開(kāi)注釋
chroot_list_enable=YES #打開(kāi)注釋
chroot_list_file=/etc/vsftpd/chroot_list #打開(kāi)注釋
allow_writeable_chroot=YES #添加
#默認(rèn)保持不變
xferlog_enable=YES #啟用上傳和下載的日志功能奏瞬。它可以對(duì)用戶(hù)的操作進(jìn)行日志記錄枫绅,當(dāng)出現(xiàn)問(wèn)題的時(shí)候可以通過(guò)日志排查問(wèn)題
如果/etc/vsftpd/chroot_list不存在,則需要?jiǎng)?chuàng)建該文件
vim /etc/vsftpd/chroot_list
:wq
配置完成重啟vsftpd硼端,systemctl restart vsftpd.service
創(chuàng)建FTP用戶(hù)
添加名為ftpuser的用戶(hù)并淋,用戶(hù)家目錄為:/var/www/html,且禁止此用戶(hù)登陸服務(wù)器:
useradd -d /var/www/html -s /sbin/nologin ftpuser
passwd ftpuser
調(diào)整防火墻
我用FileZilla登錄珍昨,提示狀態(tài):服務(wù)器發(fā)回了不可路由的地址县耽。使用服務(wù)器地址代替。錯(cuò)誤:20 秒后無(wú)活動(dòng)镣典,連接超時(shí)兔毙。
如果使用實(shí)體機(jī)安裝為request-firewall-server
,如果租賃的是VPS或ECS安裝為requst-instance secure-firewall-server
兄春。我使用的阿里云ECS澎剥,請(qǐng)求的端口會(huì)先經(jīng)過(guò)實(shí)例安全組規(guī)則,再通過(guò)防火墻神郊。從安全角度看肴裙,當(dāng)然兩者都開(kāi)啟攔截最好,不過(guò)如果你開(kāi)啟安全組規(guī)則或防火墻其中一個(gè)也可以涌乳,我的防火墻就是未激活狀態(tài)蜻懦。
FTP有兩種模式,主動(dòng)模式和被動(dòng)模式夕晓。由于兩種模式使用的端口不一樣宛乃,所以調(diào)整的內(nèi)容也不一樣。
FTP主動(dòng)模式
以FileZilla為例蒸辆,進(jìn)入編輯-設(shè)置-連接-FTP
征炼,傳輸模式選擇'主動(dòng)';再進(jìn)入被動(dòng)模式
躬贡,選擇'退回到主動(dòng)模式'谆奥。
- 如果未啟動(dòng)防火墻,就可以直接訪問(wèn)了
- 如果使用的是iptables防火墻拂玻。配置iptables
vim /etc/sysconfig/iptables
酸些,新加:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT #開(kāi)放21端口
重啟iptables宰译,systemctl restart iptables.service
。
- 如果使用VPS或ECS魄懂,在安全組規(guī)則配置允許21端口訪問(wèn)沿侈。以阿里云為例,進(jìn)入
實(shí)例-管理-安全組-配置規(guī)則
市栗,在入方向添加21 port缀拭。
現(xiàn)在可以使用ftp cliet登陸ftp服務(wù)器了!
FTP被動(dòng)模式(推薦使用)
以FileZilla為例填帽,進(jìn)入編輯-設(shè)置-連接-FTP
蛛淋,傳輸模式選擇'被動(dòng)';再進(jìn)入被動(dòng)模式
盲赊,選擇'使用服務(wù)器的外部IP地址來(lái)代替'铣鹏。(默認(rèn)選項(xiàng))
- 編輯vsftpd的配置文件,
vim /etc/vsftpd/vsftpd.conf
#修改
connect_from_port_20=NO #關(guān)閉掉vsftpd的主動(dòng)模式
#添加
pasv_enable=YES #使vsftpd運(yùn)行在被動(dòng)模式
pasv_min_port=30000 #被動(dòng)模式最小端口號(hào)30000
pasv_max_port=31000 #被動(dòng)模式最大端口號(hào)31000
我這里選擇的是30000-31000端口哀蘑,可自行選擇诚卸。保存配置文件并退出。重啟vsftpd服務(wù)绘迁,systemctl restart vsftpd.service
- 如果使用的是iptables防火墻合溺,編輯iptables配置文件,
vim /etc/sysconfig/iptables
缀台,添加
-A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT #開(kāi)放ftp協(xié)議21端口
-A INPUT -p tcp --dport 30000:31000 -j ACCEPT #開(kāi)放30000-31000號(hào)端口
保存配置文件并退出棠赛。重啟iptables服務(wù),systemctl restart iptables.service
- 如果使用VPS或ECS膛腐,在安全組規(guī)則配置允許21和30000-31000端口訪問(wèn)睛约。以阿里云為例,進(jìn)入
實(shí)例-管理-安全組-配置規(guī)則
哲身,在入方向添加21/21和30000/31000辩涝。
現(xiàn)在可以使用ftp cliet登陸ftp服務(wù)器了!
調(diào)整文件夾權(quán)限
使用ftp工具登陸服務(wù)器之后勘天,發(fā)現(xiàn)不管創(chuàng)建什么都會(huì)失敗怔揩。
這個(gè)問(wèn)題主要是在服務(wù)器的文件夾權(quán)限設(shè)置上。以筆者為例脯丝,筆者將ftp服務(wù)器登陸后的默認(rèn)文件夾設(shè)置為/var/www/html商膊,登陸ftp之后上傳什么文件都顯示553 Could not create file。
cd /var/www
ll
可以看到html文件夾的權(quán)限是drwxr-xr-x宠进。非root用戶(hù)沒(méi)有寫(xiě)的權(quán)限晕拆。
chmod 777 html #開(kāi)放最大權(quán)限
返回ftp工具,上傳文件材蹬,一切正常实幕!