linux下的vsftpd
安装ftp
通过yum命令查看并安装ftp的vsftpd.x86_64版本
system enable vsftpd //设为开机启动
通过firewall-config配置防火墙否则ftp为服务无法通过防火墙,如图首先选择为Permanent模式,然后将ftp勾选,最后点击Options选项卡的第一个选项生效
关闭selinux服务
通过配置selinux文将,将服务状态给为disabled,然后重启,getenforce命令查看
vsftpd服务用户的配置
服务的主配置文将在/etc/vsftpd/vsftp.conf,通过man命令可以查看帮助
匿名用户管理
anonymous_enable=YES 默认值为YES表示匿名用户可以登陆,NO不可以登陆,通过systemctl restart vsftpd重启服务,测试结果如下,测试完恢复
anon_upload_enable=YES是开启匿名用户上传服务,默认值YES是可以可以上传,反之不可以上传,但是ftp默认家目录对于匿名用户没有写权限,因此还要将/var/ftp/pub/权限改为1777,所属组为ftp。
anon_world_readable_only=NO是开启匿名下载表示不只只读也就是可以下载,YES为只读,添加前后使用get对比如下
anon_other_write_enable=YES是开启匿名用户可以删除,添加前后对比如下
anon_mkdir_write_enable=YES是开启创建,对比如下
anon_max_rate=102400是控制上传速度,为最小块4字节的倍数
max_clients=2是控制最大连接数
对比如下
anon_root=/westos 是匿名指定登陆目录,对应的创建该目录,修改目录权限
anon_umask=022 可以通过修改umask来修改所有匿名默认上传文件具有的权限,匿名用户上传文件所具有的默认权限777-022-111=644,
匿名用户指定身份登陆
chown_uploads=YES 开启指定用户登陆
chown_username=student 指定用户身份
chown_upload_mode=0644 指定该用户上传文件所具有的权限
对应的注释掉匿名用户默认目录和上传文件默认权限,否则不知道是哪个生效了
local_enable=YES默认本地用户可以登陆,NO不可以登陆
如下之后修改为NO后,服务器不允许登陆,改回YES后继续可以登陆
write_enable=YES 本地用户写权限限制,默认YES可以写,NO为不可以
先修改为NO不可创建,YES时可以创建
local_root=/westos 本地用户指定登陆目录
local_umask=022 本地用户上传文件默认所具有的权限
本地用户限制到家目录
chroot_local_user=YES 将所有本地用户锁在家目录
chmod u-w /home/*修改本地/home/*下的本地用户家目录权限
本地用户登陆限制目录的黑白名单建立
黑名单
vim /etc/vsftpd/chroot_list首先建立名单,将student写入
chroot_local_user=NO 表示所有本地用户不受ftp限制cd到其他目录
chroot_list_enable=YES 名单状态启用
chroot_list_file=/etc/vsftpd/chroot_list配置名单路径
写入名单的student无法cd到家目录外,因此是黑名单,如图结果也是student用户无法到其他目录
白名单
反之当chroot_local_user=YES时,所有用户都被限制家目录,只有名单内用户student可以到其他目录,这时是启用了白名单
本地用户登陆的黑白名单
vim /etc/vsftp/user_list写入用户student
userlist_enable=YES名单生效,为黑名单
student用户在名单内无法登录,其他用户可以登陆
当添加参数userlist_deny=NO黑名单变为白名单,student可以登陆,其他不可以登陆
本地用户登陆的永久性黑名单
vim /etc/vsftpd/ftpusers添加到该名单的用户将无法登录ftp服务,不会因为参数改变
如下黑名单加入student后,用户student就无法登陆
ftp虚拟用户的设定
vim /etc/vsftp/guestuser 建立虚拟用户信息,文件名字可以任意
db_load -T -t hash -f /etc/vsftpd/guestuser /etc/vsftp/vsftpd/guestuser.db将该文件数据通过hash加密,生成新的文件guestuser.db存放加密后的数据
vim /etc/pam.d/guestuser用户身份密码认证方式的配置文件,文件名任意
最后添加配置文件vsftpd.conf以下参数
pam_service_name=pamuser配置的文件名要与pam验证配置文件名一致
guest_enable=YES虚拟用户配置开启
guert_username=ftp使用的身份为ftp
如下生效后可以通过虚拟用户登陆ftp
虚拟用户指定家目录
首先创建家目录,修改目录权限
mkdir /ftphome/wes1/wes1dir -p
mkdir /ftphome/wes2/wes2dir -p
mkdir /ftphome/wes3/wes3dir -p
mkdir /ftphome/wes4/wes4dir -p
配置vsftp.conf文件添加参数如下,$USER为用户变量,每个用户的变量值为它们的变量名
local_root=/ftphome/$USER
user_sub_token=$USER
成功登陆到各自的家目录
虚拟用户的个人权限配置
user_config_dir=/etc/vsftpd/configdir/个人配置目录,名字任意
mkdir /etc/vsftpd/configdir -p创建目录以及路径,必须与上面一致
vim wes3创建编辑虚拟用户wes3的个人配置文件,名字必须与用户名称一致,配置如下用户具有写上传权限