安装vsftpd

1、以管理员(root)身份执行以下命令

  1. yum install vsftpd

2、设置开机启动vsftpd ftp服务

  1. chkconfig vsftpd on

3、启动vsftpd服务

  1. service vsftpd start

管理vsftpd相关命令:

停止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服务器

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

  1. vi /etc/vsftpd/vsftpd.conf

添加ftp用户

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

1、修改/etc/vsftpd/vsftpd.conf

将底下三行

  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官方发布的脚本管理。

出现的错误

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

在终端输入命令:

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

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

vsftpd相关配置文件介绍: 

/etc/vsftpd/vsftpd.conf      #vsftpd的主配置文件

/etc/pam.d/vsftpd      #这是使用PAM相关模块时用到的文件,用作身份验证之用。 

/etc/vsftpd.ftpusers      #这个文件相当于一个黑名单,包含了无法登陆FTP的用户。 

/etc/vsftpd.ftpuser_list      #这个文件既可以作黑名单也可作为白名单,主要看如何设置策略。 

/etc/vsftpd.chroot_list      #这个文件默认不存在,需要手动建立,用途是将一些用户的根目录锁定在默认目录下,无法进入服务器其他目录。 

/etc/sbin/vsftpd      #vsftpd的启动文件。 

/var/FTP      #vsftpd的默认匿名用户登陆的根目录。 

vsftpd.conf文件设置值的说明: 

anonymous_enable=YES    #允许匿名用户登陆 

local_enable=YES    #允许本地用户登陆 

write_enable=YES    #允许用户上传 

local_umask=022    #默认情况下上传的文件夹权限为777,文件的权限为666,022这个值的意思就是在默认权限的基础上减去022,即把文件可写的权限给去除掉,这样别人就只能读取文件,而不能修改文件 

anno_upload_enable=YES    #允许匿名用户上传,默认被注释掉 

anno_mkdir_write_enable=YES    #允许匿名用户创建文件夹,默认被注释掉 

dirmessage_enable=YES    #当用户进入某个目录时,会显示该目录需要注意的内容,默认文件为.message 

xferlog_enable=YES    #开启客户端上传和下载的日志记录 

connect_from_port_20=YES    #FTP数据通道端口号 

xferlog_std_enable=YES    #日志采用标准格式 

pam_service_name=vsftpd      #用户的认证文件为vsftpd 

userlist_enable=YES      #可以用于检测userlist_file文件中的用户是否可以访问服务器 

listen=YES      #工作在独立模式下 

tcp_wrappers=YES      #linux自带的安全保护程序