centos 6.2中配置vsftpd的方法详细介绍

发布时间:2020-01-20编辑:脚本学堂
本文介绍下,在centos 6.2中配置vsftpd的方法,有需要的朋友,可以参考学习下。

vsftpd是一款在linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。

vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。
在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

安装vsftpd

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

复制代码 代码示例:
yum install vsftpd

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

复制代码 代码示例:
chkconfig vsftpd on

3、启动vsftpd服务
 

复制代码 代码示例:
service vsftpd start

管理vsftpd相关命令:
 

复制代码 代码示例:
停止vsftpd:  service vsftpd stop
重启vsftpd:  service vsftpd restart

配置防火墙
打开/etc/sysconfig/iptables文件
vi /etc/sysconfig/iptables
在REJECT行之前添加如下代码
 

复制代码 代码示例:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

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

复制代码 代码示例:
service iptables start

配置vsftpd服务器

默认的配置文件/etc/vsftpd/vsftpd.conf,可以用文本编辑器打开。
vi /etc/vsftpd/vsftpd.conf
添加ftp用户

添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。
1、修改/etc/vsftpd/vsftpd.conf
将底下三行
 

复制代码 代码示例:
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list
 

改为
 

复制代码 代码示例:
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

禁止匿名用户访问:
 

复制代码 代码示例:
anonymous_enable=YES,将YES改为NO

在文件末尾加如下的设置:
 

复制代码 代码示例:
pasv_enable=YES ;允许被动模式
pasv_min_port=10000 ;被动模式使用端口范围
pasv_max_port=10010
local_max_rate=200000 ;用户宽带限制 (未测试)
chroot_local_user=YES ;禁用户离开主目录(未测试)
 

注意:设置pasv端口后,需要修改防火墙,如在centos里,修改如下:
 

复制代码 代码示例:
iptables -A RH-Firewall-1-INPUT -p tcp --dport 10000:10010 -j ACCEPT

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

复制代码 代码示例:
useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser

4、设置用户口令
 

复制代码 代码示例:
passwd ftpuser

5、编辑文件chroot_list:
vi /etc/vsftpd/chroot_list
内容为ftp用户名,每个用户占一行,如:
 

peter
john

6、重新启动vsftpd
 

复制代码 代码示例:
service vsftpd restart

但客户端访问提示如下错误:
500 OOPS: cannot change directory:/home/ftp
原因在于:CentOS系统安装了selinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
 

复制代码 代码示例:

//查看SELinux设置
# getsebool -a|grep ftp
ftp_home_dir-->off

//使用setsebool命令开启
# setsebool ftp_home_dir 1

让设置永久生效的方法,就是使用-P参数:
 

复制代码 代码示例:
//setsebool使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftp_home_dir 1