vsftp服务的部署和配置
1、安装vsftp pam db4
[root@vm96-yw-65-test-3060 ~]# yum install -y vsftpd pam* db4 db4-utils
配置文件说明:
- /etc/vsftpd/vsftpd.conf vsftpd的核心配置文件
- /etc/vsftpd/ftpusers 用于指定哪些用户不能访问FTP服务器
- /etc/vsftpd/user_list 指定允许使用vsftpd的用户列表文件
- /etc/vsftpd/vsftpd_conf_migrate.sh vsftpd操作的一些变量和设置脚本
- /var/ftp/ 默认情况下匿名用户的根目录
相关参数意义:
相关参数意义:
anonymous_enable=NO #禁止匿名访问
anon_upload_enable=NO #禁止匿名上传文件
anon_mkdir_write_enable=NO #禁止匿名创建文件夹
anon_other_write_enable=NO #禁止匿名其他写操作
chroot_list_enable=NO #禁止用户离开自己的FTP主目录
chroot_local_user=NO #禁止本地用户离开自己的FTP主目录
chroot_list_file=/etc/vsftpd.chroot_list #虚拟用户列表,每行一个用户名
local_enable=YES #允许本地用户访问
local_umask=022 # 设置本地用户所上传文件的默认权限掩码值
write_enable=YES #是否允许写
pam_service_name=vsftpd.vu #权限验证需要的加密文件
guest_enable=YES #开启虚拟用户功能
guest_username=ftp #虚拟用户的宿主用户
virtual_use_local_privs=YES #用户登录后操作主目录和本地用户具有同样的权限
user_config_dir=/etc/vsftpd/vconf #虚拟用户主目录设置文件
listen=yes #是否以独立运行的方式监听服务
listen_address=0.0.0.0 # 设置监听ftp服务的IP地址
listen_port=21 #设置监听FTP服务的端口号
write_enable=yes #启用任何形式的写入权限(如上传,删除文件等)都需要开启此项
download_enable=yes #是否可以下载文件(建立仅限浏览,上传的ftp服务器时可将其设为“no”)
dirmessage_enable=yes #用户切换进入目录时显示.message文件(如果存在)的类容
xferlog_enable=yes #启用xferlog日志,默认记录到/var/log/xferlog
xferlog_std_format=yes #启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式
connect_from_port_20=yes #同意服务器主动模式(从20端口建立数据连接)
pasv_enable=yes #同意被动模式连接
pasv_max_port=24600 #设置用于被动模式的服务器最大端口号
pasv_min_port=24500 #设置用于被动模式的服务器最小端口号
pam_service_name=vsftpd #设置用于用户认证PAM文件位置(/etc/pam.d/目录中对应的文件名)
userlist_enable=yes #是否启用户控制列表
userlist_deny=NO #是否禁用user_list列表文件中的用户账号
userlist_file=/etc/vsftpd/uer_list #//访问控制列表的路径
max_clients=0 #最多同意多少个客户端同是连接(0为不限制)
max_per_ip=0 #对来自同一个ip地址的客户端,最多同意多少个并发连接(0为不限制)
tcp_wrappers=yes #是否启用TCP_Wrappers主机访问控制
开启虚拟用户
guest_enable=YES #启用用户隐射功能
guest_username=ftp #映射的系统用户名字 本地用户
guest_config_dir=/etc/vsftp_user_conf #记录虚拟用配置文件的目录
pam_service_name=ftp.vu #指定 pam认证文件
附上我的vsftpd.conf文件,可以直接复制使用,应该问题不大,如果需要什么功能,对照上表进行添加或者删除
use_localtime=YES
reverse_lookup_enable=NO
listen_port=21
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to Awei FTP servers
chroot_local_user=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
idle_session_timeout=300
data_connection_timeout=1
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
virtual_use_local_privs=YES
pasv_min_port=9000
pasv_max_port=9045
accept_timeout=5
connect_timeout=1
2、建立虚拟用户名单文件
[root@vm96-yw-65-test-3060 ~]# touch /etc/vsftpd/virtusers
[root@vm96-yw-65-test-3060 ~]# vim /etc/vsftpd/virtusers
web1 ##账号
123456 ##密码
web2
123456
web3
123456
3、生成虚拟用户数据文件
[root@vm96-yw-65-test-3060 ~]# db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
[root@vm96-yw-65-test-3060 ~]# chmod 600 /etc/vsftpd/virtusers.db
4、修改/etc/pam.d/vsftpd文件
[root@vm96-yw-65-test-3060 ~]# vim /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
5、新建一个系统用户vsftpd
设置家目录,并让该用户不能登录
[root@vm96-yw-65-test-3060 ~]# useradd vsftpd -d /home/wwwroot -s /sbin/nologin
[root@vm96-yw-65-test-3060 ~]# chown vsftpd:vsftpd /home/wwwroot -R
6、建立虚拟用户个人vsftp的配置文件
[root@vm96-yw-65-test-3060 ~]# mkdir /etc/vsftpd/vconf
[root@vm96-yw-65-test-3060 ~]# mkdir /home/wwwroot/web{1..3}
[root@vm96-yw-65-test-3060 ~]# cd /etc/vsftpd/vconf
[root@vm96-yw-65-test-3060 vconf]# touch web1 web2 web3
[root@vm96-yw-65-test-3060 vconf]# vi web1 #编辑用户web1配置文件,其他的跟这个配置文件类似
local_root=/home/wwwroot/web1/ ##修改用户文件夹就行,这是虚拟用户的根目录所在
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
7、启动vsftpd服务
#centos6
[root@vm96-yw-65-test-3060 vconf]# /etc/init.d/vsftpd start
#centos7
[root@vm96-yw-65-test-3060 vconf]# systemctl start vsftpd