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中:
listen_port指定ftp端口,修改前需先注释掉系统默认配置的20端口
tcp_wrappers实现主机访问控制
guest_enable允虚拟用户
guest_username指定虚拟用户映射的系统用户
pam_service_name系统认证的服务名,vsftp的服务名就是vsftpd
user_config_dir指定虚拟用户配置文件目录
虚拟用户名单ftpusers.txt:
虚拟用户user1配置文件
vsftpd.conf部分解释:
一:进程类别优化:
1.listen=YES/NO
设置独立进程控制vsftpd
二:登录和访问控制选项优化:
1.anonymous_enable=YES/NO
允许/禁止匿名用户登陆
2.banned_email_file=/etc/vsftpd/vsftpd.banned_emails
允许/禁止邮件的使用的存放路径和目录
配合使用:deny_email_enable=YES/NO
允许/禁止匿名用户使用邮件作为密码
3.banner_file=/etc/vsftp/banner_file
在文件banner_file添加欢迎词即可
4.cmds_allowed=HELP,DIR,QUIT,!
列出被允许使用的FTP命令
5.ftpd_banner=welcome to ftp server
和第三条一样是欢迎词屏幕,方法不一样
6.local_enable=YES/NO
允许/禁止本地用户登陆
7.pam_service_name=vsftpd
使用pam模块进行ftp客户端的验证
8.userlist_deny=YES/NO
禁止/允许文件列表user_list的用户访问ftp服务器
配合使用:userlist_file=/etc/vsftpd/user_list
用户列表文件
配合使用:userlist_enable=YES/NO
激活/失效第8条的功能
9.tcp_wrappers=YES/NO
启用/不启用tcp_wrappers控制服务访问的功能
三:匿名用户选项的优化:
1.anon_mkdir_write_enable=YES/NO
允许/禁止匿名用户创建目录、删除文件
2.anon_root=/path/to/file
设置匿名用户的根目录,默认是/var/ftp/ 3.anon_upload_enable=YES/NO
允许/禁止匿名用户上传
4.anon_world_readable_only=YES/NO
禁止/允许匿名用户浏览目录和下载
5:ftp_username=anonftpuser
把匿名用户绑定到系统用户名
6:no_anon_password=YES/NO
不需要/需要匿名用户的登录密码
四:本地用户选项的优化:
1.chmod_enable=YES/NO
允许/禁止本地用户修改文件权限
2.chroot_list_enable=YES/NO
启用/不启用禁锢本地用户在家目录
3.chroot_list_file=/path/to/file
建立禁锢用户列表文件,一行一个用户
4.guest_enable=YES/NO
激活/不激活虚拟用户
5.guest_username=系统实体用户
把虚拟用户绑定在某个实体用户上
6.local_root=/path/to/file
指定或修改本地用户的根目录
7.local_umask=具体权位数字
设置本地用户新建文件的权限
8.user_config_dir=/path/to/file
激活虚拟用户的的主配置文件
五:目录选项的优化:
1.text_userdb_names=YES/NO
启用/禁用用户的名称取代用户的UID
六:文件传输选项优化:
1.chown_uploads=YES/NO
启用/禁用修改匿名用户上传文件的权限
chown_username=账户
指定匿名用户上传文件的所有者
2.write_enable=YES/NO
启用/禁止用户的写权限
max_clients=数字
设置FTP服务器同一时刻最大的连接数
4.max_per_ip=数字
设置每ip的最大连接数
七:网络选项的优化:
1.anon_max_rate=数字
设置匿名用户最大的下载速率(单位字节)
2.local_max_rate=数字
设置本地用户最大的下载速率