靠谱的vsftpd配置

功能描述:

1. 服务器上存在多个站点目录 禁止匿名用户访问

2. 系统帐号禁止访问FTP服务

3. 每个帐号被限制在指定主目录中,多个帐号被映射到系统帐号FTP上,这些帐号都不能用来登录系统

4. 上传文件的所有者为ftp, 权限为644, 新创建目录权限为 655

5. 使用被动模式,以保证客户端处于NAT环境中能正常传输文件

6.服务器开启iptables防火墙,被动模式数据传送端口范围限定在 5000--5100



一些预先处理

A. 关闭selinux功能, 编辑文件 /etc/selinux/config, 修改
SELINUX=disabled

B. 安装vsftpd
yum install vsftpd

好了,接下来进行以下配置

1. 编辑配置/etc/vsftpd/vsftpd.conf 输出以下内容

anonymous_enable=NO
local_enable=NO
write_enable=YES
local_umask=022
async_abor_enable=NO
ascii_upload_enable=NO
ascii_download_enable=NO
chmod_enable=YES
chroot_local_user=YES
dual_log_enable=YES
local_enable=NO
log_ftp_protocol=YES

listen=YES
pasv_enable=YES
port_enable=NO
reverse_lookup_enable=NO
use_localtime=YES
pam_service_name=vsftpd
tcp_wrappers=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/users/
virtual_use_local_privs=YES



2. 生成用户帐号文件
建立文件 /etc/vsftpd/logins.txt, 格式如下

username1
password1
psername2
password2

奇数行为用户名,偶数行为对应的密码

安装一个软件包,用于将上述文件转成数据库信息

yum install db4*

生成帐号数据库

db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/logins.db

这将生成文件/etc/vsftpd/logins.db

3. 编辑文件 /etc/pam.d/vsftpd删除其它内容 输入以下内容

auth    required        pam_userdb.so   db=/etc/vsftpd/logins

account required        pam_userdb.so   db=/etc/vsftpd/logins

注意指定的db文件不能带后缀名

4. 建立每个用户的配置文件 编辑文件/etc/vsftpd/users/username1输入以下内容

local_root=/data/wwwroot/

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

提示:请确保/data/wwwroot/目录的所有者为ftp帐号


因为我们开启了iptables防火墙,需要开放相应端口 21 5000-5100 , 增加iptables规则为

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

iptables -A INPUT -p tcp --dport 5000:5100 -j ACCEPT

提示:为了保证安全,请确保只有授权IP可访问ftp服务器

添加新帐号的步骤是:

A. 编辑文件/etc/vsftpd/logins.txt, 加入帐号密码
B. 更新数据库文件 db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/logins.db
C.为用户建立配置文件,文件名与用户名一致 /etc/vsftpd/users/username, 内容大致如下:

local_root=/data/wwwroot/

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES


你可能感兴趣的:(靠谱的vsftpd配置)