以下命令都通過(guò)普通用戶創(chuàng)建邪媳,linux版本 centos7
作為遠(yuǎn)程服務(wù)器捐顷,ftp也是必不可少的,在此簡(jiǎn)單記錄一下自己ftp的搭建和配置雨效。
安裝vsftp
sudo yum install vsftpd -y
確保成功安裝vsftpd -v
啟動(dòng)vsftpd服務(wù)
sudo systemctl start vsftpd
sudo systemctl enable vsftpd
如無(wú)意外迅涮,現(xiàn)在可以直接通過(guò)本機(jī)打開(kāi)ftp了,我用的是 開(kāi)源多平臺(tái)的Filezilla 徽龟,默認(rèn)端口會(huì)自動(dòng)識(shí)別為21叮姑,此圖為Filezilla匿名登錄配置
畢竟匿名用戶還有默認(rèn)端口會(huì)導(dǎo)致一些不安全行為,所以再稍微配置一下
創(chuàng)建ftp用戶
sudo adduser 你的ftp用戶名 -d 路徑 -s /sbin/nologin
sudo passwd 你的ftp用戶名
由此創(chuàng)建一個(gè)匿名用戶据悔,只用于ftp登錄訪問(wèn)特定的文件夾传透,不能用于登錄ssh。并創(chuàng)建密碼极颓。
修改ftp監(jiān)聽(tīng)端口
sudo vi /etc/vsftpd/vsftpd.conf
在ftp配置文件最后追加
listen_port= 其他端口
隨后重啟ftp服務(wù)
sudo systemctl restart vsftpd
防火墻添加新添加的端口
sudo firewall-cmd --zone=public --add-port=端口/tcp --permanent
重啟防火墻
sudo firewall-cmd --reload
這樣理論上已經(jīng)可以使用新的匿名用戶登錄ftp了朱盐,但是在修改完端口后能成功連上ftp卻一直報(bào)一個(gè)錯(cuò)誤
最后添加ftp被動(dòng)模式解決 :
pasv
再次修改ftp配置文件,追加
pasv_enable=YES
pasv_min_port=隨機(jī)數(shù)
pasv_max_port=隨機(jī)數(shù)
兩個(gè)隨機(jī)數(shù)是一個(gè)端口范圍讼昆,只要是正確的端口且都大于1023就行托享。
隨后添加此端口范圍到防火墻中
sudo firewall-cmd --zone=public --add-port=隨機(jī)數(shù)-隨機(jī)數(shù) --permanent
重啟防火墻即可
其他配置
限制ftp用戶只能訪問(wèn)特定的目錄,不能查看父級(jí)目錄
修改ftp配置文件浸赫,直接追加:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
然后在vsftpd目錄下新建 chroot_list
sudo vi /etc/vsftpd/chroot_list
在里面添加要限制的用戶名闰围,保存即可。
這里有點(diǎn)藥注意的既峡,如果想限制只能訪問(wèn)自身的目錄羡榴,需要對(duì)用戶的根目除去寫的權(quán)限,不然連接的時(shí)候會(huì)錯(cuò):
需要如下操作
sudo chmod a-w ftp的用戶根目錄
最后保存重啟 vsftpd 服務(wù)便可正確連接服務(wù)器运敢。