Contents
2.4. vsftpd服务安装配置¶
2.4.1. 匿名用户登录配置¶
yum -y install vsftpd*
[root@localhost ~]# rpm -qa| grep vsftpd
vsftpd-3.0.2-25.el7.x86_64
vsftpd-sysvinit-3.0.2-25.el7.x86_64
[root@localhost ~]# rpm -ql vsftpd|more
[root@localhost ~]# systemctl restart vsftpd.service
[root@localhost ~]# ps -ef| grep vsftpd
root 1659 1 0 18:07 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 1661 1563 0 18:07 pts/0 00:00:00 grep --color=auto vsftpd
[root@localhost home]# cp /etc/vsftpd/vsftpd.conf{,.bak}
[root@localhost vsftpd]# vim vsftpd.conf
[root@localhost vsftpd]# grep -Ev '(^#/s.*|^#|^$)' /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
anon_upload_enable=YES
anon_other_write_enable=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
[root@localhost ftp]# chown -R ftp pub
[root@localhost ftp]# chmod 755 pub
[root@localhost ftp]# !syste
systemctl restart vsftpd.service
2.4.2. 系统用户登录配置¶
1.yum安装vsftpd
yum -y install vsftpd*
[root@localhost ~]# rpm -qa| grep vsftpd
vsftpd-3.0.2-25.el7.x86_64
vsftpd-sysvinit-3.0.2-25.el7.x86_64
[root@localhost ~]# rpm -ql vsftpd|more
[root@localhost ~]# systemctl restart vsftpd.service
[root@localhost ~]# ps -ef| grep vsftpd
root 1659 1 0 18:07 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 1661 1563 0 18:07 pts/0 00:00:00 grep --color=auto vsftpd
#不允许匿名访问
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf | grep anonymous_enabl
anonymous_enable=NO
#允许本地账户进行ftp访问
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf | grep local_enable
local_enable=YES
#当chroot_list_enable=YES,chroot_local_user=YES时,
#在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf | grep ^chroot
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#配置文件最后添加,要不然会报错
#500 OOPS: vsftpd: refusing to run with writable root inside chroot()
[root@localhost ~]# echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
#创建chroot_list文件
[root@localhost ~]# touch /etc/vsftpd/chroot_list
#设定支持ASCII模式的上传和下载功能
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf | grep ^ascii
ascii_upload_enable=YES
ascii_download_enable=YES
[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf | grep -v "^$"| grep -v "^#"
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
allow_writeable_chroot=YES
#重启vsftpd
systemctl restart vsftpd.service
#创建ftp用户,设置ftp用户密码
[root@localhost ~]# echo "admin#123"| passwd --stdin hujianli1
[root@localhost ~]# echo "admin#123"| passwd --stdin hujianli2
#关闭防火墙和selinux
setenforce 0
sed -i "s#SELINUX=enfoceing#SELINUX=disabled#" /etc/selinux/config
service firewalld stop
service iptables stop
#设置服务开机自启动
systemctl start vsftpd.service
systemctl enable vsftpd.service
#浏览器访问ftp://192.1.68.1.104
用户名:hujianli1
密码:admin#123
2.4.3. Vsftpd虚拟用户实战¶
#安装 FTP 虚拟用户需要用到的软件及认证模块
yum install pam* libdb-utils libdb* --skip-broken –y
创建并生成 vsftpd 数据库文件 vi /etc/vsftpd/ftpusers.txt,内容如下:
第一行为 FTP 虚拟用户,登录用户名,第二行为密码,第三行为用户名
[root@localhost home]# cat /etc/vsftpd/ftpusers.txt
hujianli1
admin#123
hujianli2
admin#123
#生成数据库文件命令
db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
chmod 700 /etc/vsftpd/vsftpd_login.db
#配置 PAM 验证文件:
在配置文件vi /etc/pam.d/vsftpd 行首加入如下两行认证语句: (如果是32位,lib64
需改成 lib,如果 RedHat,加入的语句不一样,需注意)
[root@localhost home]# cat /etc/pam.d/vsftpd
#%PAM-1.0
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account include password-auth
session required pam_loginuid.so
session include password-auth
#创建 vsftpd 映射本地用户:
所有的 FTP 虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登
录。主要用来做虚拟用户映射使用
useradd -s /sbin/nologin ftpuser
#修改vsftpd.cof的配置
[root@localhost vsftpd]# cat vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
保存重启,service vsftpd restart 即可使用虚拟用户登录,这时候所有的虚拟用户共
同 使 用 /home/ftpuser 目 录 上 传 下 载 , 如 果 想 使 用 自 己 独 立 的 目 录 , 可 以 在
/etc/vsftpd/vsftpd_user_conf 目录创建各自的配置文件
#将用户锁定在自己的目录下。建立自己的ftp目录
[root@localhost ftpuser]# cat /etc/vsftpd/vsftpd_user_conf/hujianli1
local_root=/home/ftpuser/hujianli1
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost ftpuser]# cat /etc/vsftpd/vsftpd_user_conf/hujianli2
local_root=/home/ftpuser/hujianli2
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
mkdir -p /home/ftpuser/hujianli{1..2}
chown -R ftpuser:ftpuser /home/ftpuser/