使用虚拟用户的好处在于:可以将FTP登录的账号与系统登录账号区分开,用户名、密码都不相同,从而进一步增强了FTP服务器的安全性。
安装vsftpd服务和相关软件:
yum -y install vsftpd
yum -y install db4-utils
// 不允许匿名登录(默认是允许匿名登录的)
sed -i 's/anonymous_enable=YES/anonymous_enable=no/g' /etc/vsftpd/vsftpd.conf
// 将FTP用户禁锢在家目录 (默认是可以随意切换目录的)
echo "chroot_local_user=YES" >> /etc/vsftpd/vsftpd.conf
关闭SELinux:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
防火墙的配置可参考:vsftpd匿名用户
开启vsftpd服务:
service vsftpd start
开机自动运行vsftpd
chkconfig --level 35 vsftpd on
查看vsftpd服务是否运行中:
[root@localhost ~]# service vsftpd stop
关闭 vsftpd:[确定]
[root@localhost ~]#
[root@localhost ~]# ps -ef |grep vsftpd
root 1712 1660 0 05:15 pts/0 00:00:00 grep vsftpd
[root@localhost ~]#
[root@localhost ~]# ps -ef |grep vsftpd |grep -v grep
[root@localhost ~]#
[root@localhost ~]# echo $?
1
[root@localhost ~]# ps aux |grep vsftpd
root 1737 0.0 0.0 103324 876 pts/0 S+ 05:17 0:00 grep vsftpd
[root@localhost ~]#
[root@localhost ~]# ps aux |grep vsftpd |grep -v grep
[root@localhost ~]#
[root@localhost ~]# echo $?
1
[root@localhost ~]# service vsftpd start
为 vsftpd 启动 vsftpd:[确定]
[root@localhost ~]# ps -ef |grep vsftpd
root 1759 1 0 05:18 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 1762 1660 0 05:18 pts/0 00:00:00 grep vsftpd
[root@localhost ~]#
[root@localhost ~]# ps -ef |grep vsftpd |grep -v grep
root 1759 1 0 05:18 ? 00:00:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@localhost ~]# echo $?
0
[root@localhost ~]# ps aux |grep vsftpd
root 1759 0.0 0.0 52132 808 ? Ss 05:18 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 1767 0.0 0.0 103324 876 pts/0 S+ 05:20 0:00 grep vsftpd
[root@localhost ~]#
[root@localhost ~]# ps aux |grep vsftpd |grep -v grep
root 1759 0.0 0.0 52132 808 ? Ss 05:18 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
[root@localhost ~]# echo $?
0
给vsftpd创建一个系统用户:
[root@localhost ~]# useradd -s /sbin/nologin virtual_ftp_user
[root@localhost ~]# tail -1 /etc/passwd
virtual_ftp_user:x:500:500::/home/virtual_ftp_user:/sbin/nologin
为虚拟用户建立PAM认证文件:
echo "auth required pam_userdb.so db=/etc/vsftpd/vuser" > /etc/pam.d/vsftpd
echo "account required pam_userdb.so db=/etc/vsftpd/vuser" >> /etc/pam.d/vsftpd
创建虚拟用户配置文件夹:
mkdir /home/virtual_ftp_user/vuser_dir
在vsftpd的主配置文件中添加虚拟用户支持:
cat >>/etc/vsftpd/vsftpd.conf<< EOF
anon_umask=022
guest_enable=YES
guest_username=virtual_ftp_user
user_config_dir=/home/virtual_ftp_user/vuser_dir
EOF
重启vsftpd服务:
[root@localhost ~]# killall -9 vsftpd
[root@localhost ~]#
[root@localhost ~]# pgrep -l vsftpd
[root@localhost ~]#
[root@localhost ~]# service vsftpd start
为 vsftpd 启动 vsftpd:[确定]
[root@localhost ~]#
[root@localhost ~]# pgrep -l vsftpd
1803 vsftpd
###
添加FTP虚拟用户及其密码:(奇数行为用户名,偶数行为上一行用户的密码)
cat >/home/virtual_ftp_user/vuser.txt<< EOF
zhuohua
111
funny
222
EOF
指定虚拟用户zhuohua的根目录:( 其实虚拟用户的根目录可以随意指定的 )
echo 'local_root=/ftp' >> /home/virtual_ftp_user/vuser_dir/zhuohua
允许虚拟用户zhuohua上传文件:
echo 'anon_upload_enable=YES' >> /home/virtual_ftp_user/vuser_dir/zhuohua
允许虚拟用户zhuohua上传文件夹:
echo 'anon_mkdir_write_enable=YES' >> /home/virtual_ftp_user/vuser_dir/zhuohua
允许虚拟用户zhuohua修改和删除文件、文件夹:
echo 'anon_other_write_enable=YES' >> /home/virtual_ftp_user/vuser_dir/zhuohua
指定虚拟用户funny的根目录:(这样就只能下载文件和文件夹了)
echo 'local_root=/ftp' >> /home/virtual_ftp_user/vuser_dir/funny
创建数据库文件:
[root@localhost ~]# db_load -T -t hash -f /home/virtual_ftp_user/vuser.txt /etc/vsftpd/vuser.db
[root@localhost ~]# ll /etc/vsftpd/vuser.db
-rw-r--r-- 1 root root 12288 Jul 5 05:34 /etc/vsftpd/vuser.db
创建FTP目录:
mkdir -p /ftp
chmod -R 777 /ftp/
实验至此,对于/ftp/里面的所有内容,zhuohua可以下载、上传、修改、删除;funny只可以下载
FTP的操作日志记录:(可以看到不同虚拟用户的操作记录的)
[root@localhost ~]# tail /var/log/xferlog
### 输入(Input)的记录
Thu Jul 5 05:38:55 2018 1 192.168.168.159 981 /Identity b _ i g zhuohua ftp 0 * c
Thu Jul 5 05:38:55 2018 1 192.168.168.159 227 /Identity.pub b _ i g zhuohua ftp 0 * c
### 输出(Output)的记录
Thu Jul 5 05:42:59 2018 1 192.168.168.159 4 /dir1/2.txt a _ o g zhuohua ftp 0 * c
Thu Jul 5 05:42:59 2018 1 192.168.168.159 4 /1.txt a _ o g zhuohua ftp 0 * c
### 输出(Output)的记录
Thu Jul 5 05:45:21 2018 1 192.168.168.159 981 /Identity b _ o g funny ftp 0 * c
Thu Jul 5 05:45:21 2018 1 192.168.168.159 227 /Identity.pub b _ o g funny ftp 0 * c
######
要想再添加FTP用户、目录:
( 假设添加虚拟用户happy,密码888,拥有完全控制的权限,根目录为/ftp2/ )
创建FTP目录:
mkdir -p /ftp2
chmod -R 777 /ftp2/
追加虚拟用户名和密码:
cat >>/home/virtual_ftp_user/vuser.txt<< EOF
happy
888
EOF
echo 'local_root=/ftp2' >> /home/virtual_ftp_user/vuser_dir/happy
echo 'anon_upload_enable=YES' >> /home/virtual_ftp_user/vuser_dir/happy
echo 'anon_mkdir_write_enable=YES' >> /home/virtual_ftp_user/vuser_dir/happy
echo 'anon_other_write_enable=YES' >> /home/virtual_ftp_user/vuser_dir/happy
重建数据库文件:
[root@localhost ~]# db_load -T -t hash -f /home/virtual_ftp_user/vuser.txt /etc/vsftpd/vuser.db
备注:无需重启vsftpd服务
相关文章:
CentOS8_vsftpd虚拟用户
vsftpd用户验证(一)
PureFTPd虚拟用户验证
进程
用户管理
#################################
#################################
亲,学习研究也要劳逸结合哦,来我微店逛逛,买点东西好好犒劳犒劳自己和家人吧^_^^_^
永定泡鸭爪400g礼包福建土楼客家特产卤味微辣鸭掌闽西好【满49包邮 偏远除外】
利临多功能抹布5片装 超细纤维洗碗巾擦车巾百洁布
薇语馨311秋装新款修身中长款蕾丝连衣裙七分袖新款
|