Centos 安装vsftpd
一、安装准备工作
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