工作实战搭建FTP服务
FTP分为三种模式 1匿名开放模式2本地用户模式3虚拟用户模式
搭建虚拟用户模式
第三种是最安全的一种认证模式,相对配置也比较简单,这些帐户信息在服务器系统中实际上是不存在的,仅供FTP服务程序进行认证使用,这样黑客破解了账户信息也无法登录服务器,从而有效降低了破坏范围。
#安装ftp服务,关闭Selinux,关闭防火墙,
[root@ftp-19 ~]#yum -y install vsftpd
[root@ftp-19 ~]#yum -y install ftp
[root@ftp-19 ~]#systemctl start vsftpd.service
[root@ftp-19 ~]#setenforce 0
[root@ftp-19 ~]#systemctl stop firewalld.service
[root@ftp-19 ~]#systemctl disable firewalld.service
#把原本的配置文件备份,重新编辑配置文件vsftpd.conf
[root@ftp-19 ]#mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
[root@ftp-19 ~]#cd /etc/vsftpd
#创建虚拟用户列表
[root@ftp-19 vsftpd]#vim vuser.list
admin
123123
apache
123123
#明文信息不安全,用哈希算法转换为数据库文件
[root@ftp-19 vsftpd]#db_load -T -t hash -f vuser.list vuser.db
[root@ftp-19 vsftpd]#file vuser.db
vuser.db: Berkeley DB (Hash, version 9, native byte-order)
#建一个可以映射到虚拟用户的系统本地用户
[root@ftp-19 ~]#useradd -d /var/ftproot -s /sbin/nologin virtual
[root@ftp-19 ~]#ls -ld /var/ftproot/
drwx------ 2 virtual virtual 59 Mar 13 18:46 /var/ftproot/
[root@ftp-19 ~]#chmod -Rf 755 /var/ftproot/
#新建一个用于虚拟用户认证的 PAM 文件 vsftpd.vu
[root@ftp-19 ~]#vim /etc/pam.d/vsftpd.vu
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
#为虚拟用户设置不同的权限
[root@ftp-19 ~]#mkdir /etc/vsftpd/vusers_dir/
[root@ftp-19 ~]#cd /etc/vsftpd/vusers_dir/
#apache虚拟用户只允许查看
[root@ftp-19 vusers_dir]#touch apache
#admin用户可以上传,创建,修改,查看,删除
[root@ftp-19 vusers_dir]#vim admin
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@ftp-19 ~]#vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
allow_writeable_chroot=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES
user_config_dir=/etc/vsftpd/vusers_dir
[root@ftp-19 ~]#systemctl restart vsftpd
#查看端口21是否打开
[root@ftp-19 ~]#netstat -ntlp
#客户端测试
[root@ftp-19 ~]#ftp 192.168.52.19
Connected to 192.168.52.19 (192.168.52.19).
220 (vsFTPd 3.0.2)
Name (192.168.52.19:root): admin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> exit