返回列表 发帖

vsftpd虚拟用户

使用虚拟用户的好处在于:可以将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

图片1.png
2020-10-9 09:32





创建虚拟用户配置文件夹:
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

图片2.png
2020-10-9 09:32





重启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

图片3.png
2020-10-9 09:33




指定虚拟用户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

图片4.png
2020-10-9 09:34




指定虚拟用户funny的根目录:(这样就只能下载文件和文件夹了)
echo 'local_root=/ftp' >> /home/virtual_ftp_user/vuser_dir/funny

图片5.png
2020-10-9 09:34




创建数据库文件:
[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

图片6.png
2020-10-9 09:39


重建数据库文件:
[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包邮 偏远除外】
zhuazi.png
2019-10-5 11:30


利临多功能抹布5片装 超细纤维洗碗巾擦车巾百洁布
maojin.png
2019-10-5 11:30


薇语馨311秋装新款修身中长款蕾丝连衣裙七分袖新款
fenho.png
2019-10-5 11:30

返回列表