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 修改为 NO
chroot_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

posted @ 2020-04-22 15:33  雁书几封  阅读(1522)  评论(0编辑  收藏  举报