vsftpd服务
1.ftp介绍
ftp:file transfer proto
互联中最老牌的文件传输协议
实验环境:
server主机:服务器
westos_node1
172.25.254.140
selinux关闭 路径:/etc/sysconfig/selinux
火墙开启
dnf安装设定完成
client主机:客户端
westos_linux
172.25.254.40
selinux关闭
dnf安装设定完成
安装lftp #ftp协议文本浏览器
2.vsftpd安装及启用
安装vsftp服务,在这里我们同时在服务器上安装了lftp 方便后面测试
dnf install vsftpd -y #server服务器
dnf install lftp -y #client客户端
关闭selinux 路径:/etc/sysconfig/selinux
如图:改为 SELINUX=disabled
开启防火墙:
systemctl enable --now firewalld 开启防火墙
firewall-cmd --permanent --add-service=ftp 设置防火墙允许通过服务ftp
编辑服务器vsftpd.conf文件 给客户端设定访问权限
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES ##启动匿名用户的访问功能
systemctl restart vsftpd
测试安装发布:
(1)在firefox中输入 ftp://172.25.254.140
(2)在客户端访问服务器 (注意:客户端必须安装了lftp访问)
lftp 172.25.254.140
此访问方式必须能列出资源才算访问成功
如图:
在使用完成后请输入exit推出lftp
3.vsftpd基本信息
服务名称:
vsftpd.service
配置目录:
/etc/vsftpd
主配置文件:
/etc/vsftpd/vsftpd.conf
默认发布目录:
/var/ftp
报错信息:
550 ##程序本身拒绝
553 ##文件系统权限限制
500 ##权限过大
530 ##认证失败
4.匿名用户访问控制
lftp 192.168.0.10 ##当访问ftp服务时没有加入用户认证为匿名访问
lftp 192.168.0.10 -u westos ##本地用户访问
登陆控制
anonymous_enable=YES|NO
家目录控制
anon_root=/westosdir
上传控制
anon_upload_enable=YES|NO
chmod 775 /var/ftp/pub 给pub目录权限
chgrp ftp /var/ftp/pub 将pub目录的所有组改为ftp
目录建立控制
anon_mkdir_write_enable=YES|NO
下载控制
anon_world_readable_only=NO ##匿名用户可以下载不能读的文件
删除重命令控制
anon_other_write_enable=YES|NO
匿名用户上传文件权限设定
anon_umask=xxx
anon_umask=022 ##当设定chown_username之后上传文权限将不是用此参数设定
匿名用户上传文件的用户身份设定
chown_upload=YES
chown_username=lee
chown_upload_mode=0644
登陆数量控制:
max_clients=2
上传速率控制
anon_max_rate=102400
#########################
5.本地用户的访问
#########################
登陆控制——建立两个用户
useradd westos
useradd lee
echo lee | passwd --stdin westos 修改密码
echo lee | passwd --stdin lee
lftp 172.25.254.140 -u lee
确保在服务器文件上允许本地用户访问
local_enable=YES
其他权限设定
家目录控制:设置本地用户访问服务器时的默认家目录,用来控制他们所能访问到的最大目录
local_root=/software
写权限控制
write_enable=NO|YES
上传文件权限控制
local_umask=077
(1)用户登陆控制
/etc/vsftpd/ftpusers ##永久黑(这个文件中的用户永远不能访问ftp服务器)
/etc/vsftpd/user_list ##默认黑(userlist_deny=YES 不做更改的时候这个文件的用户默认是在黑名单中的)
(2)用户登陆白名单
userlist_deny=NO #设定/etc/vsftpd/user_list白名单
#不在名单中的用户不能登陆ftp
(3)锁定用户到自己的家目录中
chmod u-w /home/*
chroot_local_user=YES
(4)锁定用户到自己的家目录中的白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
(5)锁定用户到自己的家目录中的黑名单
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
6.虚拟用户访问
建立虚拟用户过程
(1)建立虚拟用户信息文件
c切换环境到 /etc/vsftpd/
建立一个文件westos_pam #建立认证文件
编写你所想要建立的虚拟用户信息:
user1 用户名
123 密码
user2
123
user3
123
(2)加密认证文件
db_load -T -t hash -f westos_pam westos_pam.db 加密认证文件
( -T 转换 -t type -f 指定转换文件)
3.在pam认证执行软件内编写认证流程
切换环境到 /etc/pam.d/ 建立文件westos 在此文件当中设定服务器在验证虚拟用户身份的流程
account required pam_userdb.so db=/etc/vsftpd/westos_pam 账号
auth required pam_userdb.so db=/etc/vsftpd/westos_pam 密码
(3)编写系统文件
vim /etc/vsftpd/vsftpd.conf (相当于和pam认证软件交界)
pam_service_name=westos 指定认证策略文件
guest_enable=YES 指定虚拟用户功能开启
guest_username=ftp 指定虚拟用户在ftp服务器上的用户身份,也可以选择其他用户
systemctl restart vsftpd 重启服务
虚拟用户建立完毕,可以用user1 user2 user3 登陆
如果需要在目录中建立文件或者上传下载的时候,给所要上传的目录权限
7.虚拟用户家目录的独立设定
给每个虚拟用户建立自己的家目录,提高安全性
mkdir -p /ftphome/user{1..3}
touch /ftphome/user1/westos1file
touch /ftphome/user2/westos2file
touch /ftphome/user3/westos3file
在文件中台添加信息:
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER 文件中设定虚拟用户的默认家目录
user_sub_token=$USER 与自动匹配建立联系
systemctl restart vsftpd 重启
独立设定家目录完成!!!
8.用户配置独立
user_config_dir=/etc/vsftpd/westos #在此目录中与用户名称相同的文件为用户配置文件
mkdir /etc/vsftpd/westos
建立相应文件,在文件内可以编写独立配置:
vim /etc/vsftpd/westos/user1 编写user1的独立配置 (可以匿名上传文件)
这里为了与user2 user3 突出对比,应该在/etc/vsftpd/vsftpd.conf 中关掉匿名用户上传权限
设定完成后user1用户可以上传文件
user2和user3不行
至此vstpd服务的部署及优化就全部结束啦!!! 希望大家有可以借鉴的地方,一起加油吧!