虚拟用户配置

1、虚拟用户:虚拟用户只能访问FTP服务器,无法登录linux系统。(/sbin/nologin)

2、vsftp的服务进程为:vsftpd

3、vsftpd的配置文件为:/etc/vsftpd/vsftpd.conf

4、vsftpd的用户文件为:/etc/vsftpd/ftpusers

5、vsftpd的用户文件是:/etc/vsftpd/user_list

查看是否安装vsftp服务:


rpm -qa | grep vsftpd


安装vsftpd服务:


yum -y install vsftpd*


关闭selinux。


方法1: vim /etc/selinux/config 更改SELINUX=enforcing为SELINUX=disable (重启靶机)
方法2:setenforce 0


检查selinux开启状态:


/usr/sbin/sestatus -v


Vsftpd服务安全管理--虚拟用户_ftp服务器

创建虚拟用户文本文件

首先进入vsftpd配置文件目录:


cd /etc/vsftpd/
touch vuser.txt


编辑/etc/vsftpd/vuser.txt,奇数行是用户名,偶数行是密码。

然后生成虚拟数据库文件,如果db_load没有安装,那么使用命令:


yum install db4-utils db4-devel db4-4.3安装后才可以使用。


使用命令db_load生成数据库文件


db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuser.db


db_load命令:


选项-T允许应用程序能够将文本文件转译载入进数据库。由于我们之后是将虚拟用户的信息以文件方式存储在文件里的,为了让Vsftpd这个应用程序能够通过文本来载入用户数据,必须要使用这个选项。
指定了选项-T,那么一定要追加子选项-t;子选项-t,追加在在-T选项后,用来指定转译载入的数据库类型。
-f 参数后面接包含用户名和密码的文本文件,文件的内容是:奇数行用户名、偶数行密码
hash就是使用hash码加密
db_load -T -t hash -f /etc/vsftpd/vuser.txt vuser.db 前提就是在linux下配置好Vsftp环境确保db_load命令可以使用就是将用户文本信息文件转换为db数据库并使用hash加密。


配置pam文件,对客户端进行验证。


vim /etc/pam.d/vsftpd


加入代码:


auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser


修改虚拟数据库文件vuser.db的权限为700


chmod 700 /etc/vsftpd/vuser.db


新建系统用户vuser,使其对应所有的虚拟用户。


mkdir /ftpdir
useradd -d /ftpdir vuser (-d参数用来指定用户主目录)
chown vuser.vuser /ftpdir
usermod -s /sbin/nologin vuser (设置该用户无法登录)


设置虚拟用户的主配置文件


vim /etc/vsftpd/vsftpd.conf
增加:
guest_enable=yes
guest_username=vuser
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
mkdir /etc/vsftpd/vsftpd_user_conf
touch /etc/vsftpd/vsftpd_user_conf/vuser


编辑配置文件vuser:


anon_world_readable_only=NO
浏览FTP目录和下载
anon_upload_enable=YES
允许上传
anon_mkdir_write_able=YES
建立和删除目录
anon_other_write_enable=YES
改名和删除文件
local_root=/ftpdir/
指定虚拟用户在系统用户下面的路径


vsftpd.conf加固


listen=YES/NO
设置独立进程控制vsftpd
anonymouse_enable=YES/NO
允许/进制匿名用户登陆
banned_email_file=/etc/vsftpd/vsftpd.banned_emails
允许/禁止邮件的使用和存放路径


配合使用:


deny_email_enable=YES/NO
允许/禁止匿名用户使用邮件作为密码
banner_file=/etc/vsftpd/banner_file
在文件banner_file添加欢迎词即可
cmds_allowed=HELP,DIR,QUIT,!
列出被允许使用的FTP命令
ftpd_bannner=“welcome to ftp server”
也是设置欢迎词屏幕,但是方法不一样
local_enable=YES/NO
允许/禁止本地用户登录
pam_service_name=vsftpd
使用pam模块进行ftp客户端的验证
userlist_deny=YES/NO
禁止/允许文件列表user_list的用户访问ftp服务器


配合使用:


userlist_file = /etc/vsftpd/user_list
用户列表文件
userlist_enable=YES/NO
激活/失效第8条的功能
tcp_wrappers=YES/NO
启用/不启用tcp_wrappers控制服务访问的功能


匿名用户选项的优化:


anon_mkdir_write_enable=YES/NO
允许/禁止匿名用户创建目录、删除文件
anon_upload_enable=YES/NO
允许/禁止匿名用户上传
anon_world_readable_only=YES/NO
禁止/允许匿名用户浏览目录和下载
ftp_username=anonftpuser
把匿名用户绑定到系统用户名
no_anon_password=YES/NO
不需要/需要匿名用户的登陆密码


本地用户选项的优化:


chmod_enable=YES/NO
允许/禁止本地用户修改文件权限
chroot_list_enable=YES/NO
启用/不启用禁锢在本地用户在家目录
chroot_list_file=/path/to/file
建立禁锢用户列表文件,一行一个用户
guest_enable=YES/NO
激活/不激活虚拟用户
guest_username=系统实体用户
把虚拟用户绑定在某个实体用户上
local_root=/path/to/file
指定或修改本地用户的根目录
local_umask=具体权位数字
设置本地用户新建文件的权限
user_config_dir=/path/to/file
激活虚拟用户的主配置文件


目录选项的优化:


text_userdb_names=YES/NO
启用/禁用修改匿名用户上传文件的权限。
write_enable=YES/NO
启用/禁止用户的写权限
max_clients=数字
设置FTP服务器同一时刻的最大连接数
max_per_ip
设置每ip的最大连接数


网络选项的优化:


anon_max_rate=number
设置匿名用户的最大下载速率
local_max_rate=number
设置本地用户的最大下载速率


家目录锁定

限制用户只能访问/home/test,不能访问其他路径,修改/etc/vsftpd/vsftpd.conf来实现。具体实现代码如下:


chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list


这里我们需要手动创建一个chroot_list,因为这个文件默认是不存在的。

这里我们加入一些你想要加入的用户,加入的用户都有登陆ftp的权限,除非你在ftpusers文件中做了限制。

这里我们可以通过修改ftpusers文件来阻止这个文件中的用户登陆,限制重要的系统用户不能登陆ftp权限,默认会加入一些vi较重要系统的用户。

当我们需要某个用户登陆ftp服务器时,我们可以利用ftp的用户策略,即在user_list文件中加入你想让他登陆系统的用户,然后在文件末尾加入


userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd/user_list


这样我们设置的用户就可以登陆ftp服务器。