CentOS6.5配置vsftp虚拟用户全程记录
一、 检查selinux是否开启,如果开启,请先关闭以便调试
二、创建虚拟用户文本文件,添加虚拟用户和密码
cd /etc/vsftpd/
touch ftpusers.txt
编辑ftpusers.txt,设置用户名、密码,奇数行是用户名,偶数是密码
比如:
user1
123123
user2
123123
三、生成虚拟数据库文件
如果db_load没有安装,yum install db4-utils db4-devel db4-4.3安装才能使用
db_load –T –t hash –f /etc/vsftpd/ftpusers.txt /etc/vsftpd/ftpusers.db
四、 配置PAM认证
目的是对虚拟用户进行登录验证
编辑/etc/pam.d/vsftpd文件,批注所有内容,后添加:
auth required pam\_userdb.so db=/etc/vsftpd/ftpusers
account required pam\_userdb.so db=/etc/vsftpd/ftpusers
不能写成db=/etc/vsftpd/ftpusers.db
五、修改虚拟数据库文件ftpusers.db的权限
为 700
chmod 700 ftpusers.db
六、增加一个系统用户ftp
使用它来对应所有虚拟用户,虚拟用户使用系统用户来访问ftp服务器。
mkdir /home/ftp
useradd -d /home/ftp ftp
chown ftp:ftp /home/ftp
usermod -s /sbin/nologin ftp
七、修改vsftpd.conf配置文件
使虚拟用户可以访问vsftpd服务器,增加以下参数
#注释掉原有端口配置
#connect_from_port_20=YES
#设置独立进程控制vsftpd
listen=YES
#修改端口vsft接入端口
listent_port=9999
#设置vsftp可随机占用的端口
pasv_max_port=8000
pasv_min_port=7000
#激活虚拟账户
guest_enable=YES
#把虚拟账户绑定为系统账户ftp
guest_username=ftp
#使用PAM验证
pam_service_name=vsftpd
"="两边不能有空格,请把所有注释、空格全部删掉,只留下文字和换行
八、 设置虚拟用户的主配置文件
编辑vsftpd.conf文件,添加:
user_config_dir=/etc/ftp/ftp_user_conf
九、建立ftp_user_conf
mkdir /etc/ftp/ftp_user_conf
十、设置虚拟用户配置文件
与虚拟账户同名
touch /etc/ftp/ftp_user_conf/user1
编辑虚拟账户user1的配置文件user1,使虚拟账户user1获得相应的权限,内容如下:
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=022
local_root=/home/ftp/user1
anon_world_readable_only=NO是否只读
anon_upload_enable=YES允许上传
anon_mkdir_write_enable=YES允许创建和删除目录
anon_other_write_enable=YES允许重命名和删除文件
anon_umask=022配置上传文件的默认权限
local_root=/home/ftp/user1
"="两边不能有空格,请把所有注释、空格全部删掉,只留下文字和换行
配置iptables
vim /etc/sysconfig/iptables
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
#ssh端口
-A INPUT -p tcp -m tcp --dport 111 -j ACCEPT
-A OUTPUT -p tcp -m tcp --sport 111 -j ACCEPT
#允许回环网卡所有端口,让php-fpm正常运行
-A INPUT -i lo -j ACCEPT
#允许本机访问外网
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#允许分配给vsftp的随机端口
-A INPUT -p tcp -m tcp --dport 7000:8000 -j ACCEPT
COMMIT
附录:
本次使用配置:
vsftpd.conf中: