一、安裝准備工作
1、問題1
Linux安裝FTP時報錯,No package vsftp available. Error: Nothing to do
先安裝Install Repository,執行命令
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
有可能會遇到問題 -bash: wget: command not found
那就先安裝wget
方法1、rpm 安裝
rpm 下載源地址:http://mirrors.163.com/centos/6.2/os/x86_64/Packages/
下載wget的RPM包:http://mirrors.163.com/centos/6.2/os/x86_64/Packages/wget-1.12-1.4.el6.x86_64.rpm
rpm ivh wget-1.12-1.4.el6.x86_64.rpm 安裝即可。
如果客戶端用的是SecureCRT,linux下沒裝rzsz 包時,rz無法上傳文件怎么辦?我想到的是安裝另一個SSH客戶端:SSH Secure Shell。然后傳到服務器上安裝,這個比較費勁,所以推薦用第二種方法,不過如果yum包也沒有安裝的話,那就只能用這種方法了。
方法2、yum安裝
這種比較快捷
yum -y install wget
二、開始安裝vsftpd
1、在線安裝vsftpd
yum install -y vsftpd
2、啟動ftp
systemctl start vsftpd.service
3、查看ftp是否啟動
service vsftpd status
安裝ftp工具
測試匿名鏈接ftp,出現ftp>表示成功
4、去掉匿名登錄
修改文件 /etc/vsftpd/vsftpd.conf
#是否匿名登錄 anonymous_enable=YES 修改為 NOchroot_local_user=YES
#用於指定用戶列表文件中的用戶是否允許切換到上級目錄。
默認值為NO。
#通過搭配能實現以下幾種效果:
#①當chroot_list_enable=YES,chroot_local_user=YES時,在/etc/vsftpd.chroot_list文件中列出的用戶,可以切換到其他目錄;
未在文件中列出的用戶,不能切換到其他目錄。
#②當chroot_list_enable=YES,chroot_local_user=NO時,在/etc/vsftpd.chroot_list文件中列出的用戶,不能切換到其他目錄;
未在文件中列出的用戶,可以切換到其他目錄。
#③當chroot_list_enable=NO,chroot_local_user=YES時,所有的用戶均不能切換到其他目錄。
#④當chroot_list_enable=NO,chroot_local_user=NO時,所有的用戶均可以切換到其他目錄。
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=YES
#加上這行解決了無法登陸的問題
重啟ftp:
[root@localhost ~]# systemctl restart vsftpd.service
查看ftp運行狀態
[root@localhost ~]# systemctl status vsftpd.service
5、創建新的ftp用戶組和目錄和其它設置
①創建用戶組
[root@localhost ~]# groupadd ftpgroups
②創建ftp目錄
[root@localhost ~]# mkdir /home/ftp
③創建ftp用戶,指定可訪問目錄,並加入到用戶組,命名為ftpuser
[root@localhost ~]# useradd -d /home/ftp/ -g ftpgroups ftpuser
這里出現警告,是因為我們用mkdir創建了,繼續操作就行了
④設置ftp用戶只能登錄ftp,不能訪問服務器
[root@localhost ~]# usermod -s /sbin/nologin ftpuser
⑤設置ftpuser用戶密碼
我這里設置ftp.1234
[root@localhost ~]# passwd ftpuser
⑥設置設置賬戶權限
[root@localhost ~]# chown -R ftpuser /home/ftp/ [root@localhost ~]# chmod 777 /home/ftp/
⑦增加用戶進入list使它能訪問根目錄
[root@localhost ~]# vi /etc/vsftpd/chroot_list
添加上用戶:ftpuser
⑧編輯pam認證文件,注銷一行
[root@localhost ~]# vi /etc/pam.d/vsftpd
#auth required pam_shells.so
繼續,然后重啟ftp服務
⑨重新設置一下權限
[root@localhost ~]# chown -R ftpuser /home/ftp/ [root@localhost ~]# chown 777 /home/ftp/ [root@localhost ~]# setsebool allow_ftpd_full_access on [root@localhost ~]# systemctl restart vsftpd.service
這里有一點問題就是,關閉防火牆可以訪問ftp,開啟就無法訪問,待解決中....
關閉防火牆 systemctl stop firewalld.service 重啟防火牆 systemctl restart firewalld.service
6、訪問ftp服務
我這里的 ftp://192.168.20.200/
7、修改ftp默認端口
1、修改vsftpd.conf
文件路徑:/etc/vsftpd/vsftpd.conf,在最后添加或者修改以下內容
#登錄FTP服務器,依據/etc/pam.d/vsftpd中內容進行認證; pam_service_name=vsftpd #vsftpd.user_list和ftpusers配置文件里用戶禁止訪問FTP; userlist_enable=YES #設置vsftpd與tcp wrapper結合進行主機的訪問 tcp_wrappers=YES allow_writeable_chroot=YES #修改的端口 listen_port=2121 pasv_enable=YES pasv_min_port=1050 pasv_max_port=1060 pasv_promiscuous=YES ftpd_banner=Welcome to FTP service
2、修改iptables
路徑:/etc/sysconfig/iptables,添加一下兩行,對應vsftpd.conf文件里
listen_port=2121 pasv_min_port=1050 pasv_max_port=1060
-A INPUT -p tcp -m state --state NEW -m tcp --dport 1050:1060 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 2121 -j ACCEPT
3、開放端口
依次執行
#添加端口 [root@localhost ~]# firewall-cmd --zone=public --add-port=2121/tcp --permanent [root@localhost ~]# firewall-cmd --zone=public --add-port=1050-1060/tcp --permanent #重啟防火牆 [root@localhost ~]# systemctl restart firewalld.service #查看監聽端口 [root@localhost ~]# netstat -ntpl | grep vsftpd 命令安裝netstat:yum -y install net-tools
4、現在可以用端口訪問了
ftp://192.168.20.200:2121/
如果不行,看看telenet是否能通
cmd→telnet 192.168.20.200 2121
出來下面的界面,說明端口修改成功
參考文章:https://www.cnblogs.com/letyouknowdotnet/p/11403097.html
附帶linux常用命令:https://www.cnblogs.com/w-yu-chen/p/12870033.html