一:安装vsftpd

查看是否已经安装vsftpd

  1. rpm -qa | grep vsftpd

如果没有,就安装,并设置开机启动

  1. yum -y install vsftpd
  2. chkconfig vsftpd on

安装时发现错误:

  1. Loaded plugins: fastestmirror, refresh-packagekit, security
  2. Loading mirror speeds from cached hostfile
  3. Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os error was
  4. 14: PYCURL ERROR 6 - "Couldn\'t resolve host \'mirrorlist.centos.org\'"
  5. Error: Cannot find a valid baseurl for repo: base

View Code

是因为缺少DNS,解决如下:到/etc目录下配置resolv.conf加入nameserver IP:

  1. [root@localhost ~]# vi /etc/resolv.conf
  2. #下面地址是福建电信DNS
  3. nameserver 218.85.157.99

管理vsftpd相关命令:

启动vsftpd:  service vsftpd start

停止vsftpd:  service vsftpd stop

重启vsftpd:  service vsftpd restart

 

二、配置防火墙

打开/etc/sysconfig/iptables文件

  1. vi /etc/sysconfig/iptables

在REJECT行之前添加如下代码

  1. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

保存和关闭文件,重启防火墙

  1. service iptables start

 

三、配置vsftpd服务器

1.默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。

  1. vi /etc/vsftpd/vsftpd.conf

下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。

  1. #chroot_list_enable=YES
  2. # (default follows)
  3. #chroot_list_file=/etc/vsftpd.chroot_list

改为

  1. chroot_list_enable=YES
  2. # (default follows)
  3. chroot_list_file=/etc/vsftpd/chroot_list

3.增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。

  1. useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

4.设置用户口令

  1. passwd ftpuser

5、编辑文件chroot_list:

  1. vi /etc/vsftpd/chroot_list

内容为ftp用户名,每个用户占一行,如:

peter
john

6、重新启动vsftpd

  1. service vsftpd restart

另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:(未用过)

http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users

 

———————————-

1、500 OOPS: cannot change directory
解决方法:

 

在终端输入命令:

  1. setsebool -P ftpd_disable_trans 1
  2. service vsftpd restart

就OK了!
原因:这是因为服务器开启了selinux,这限制了FTP的登录。

版权声明:本文为surge原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/surge/p/3868270.html