ftp服务部署

操作系统

CentOS7.8

查看是否安装ftp
rpm -q vsftpd

安装服务端
yum install vsftpd -y

启动vsftpd
systemctl start vsftpd

开机自启动
systemctl enable vsftpd

查看软件列表
rpm -ql vsftpd
/etc/logrotate.d/vsftpd //日志轮转的文件
/etc/pam.d/vsftpd //安全认证
/etc/vsftpd //配置文件的主目录
/etc/vsftpd/ftpusers //用户列表(黑名单)
/etc/vsftpd/user_list //用户列表(默认黑名单|可黑可白)
/etc/vsftpd/vsftpd.conf //主配置文件
/usr/sbin/vsftpd //二进制命令
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_HOSTS //虚拟主机
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/VIRTUAL_USERS //虚拟用户
/usr/share/man/man5/vsftpd.conf.5.gz //man文档
/var/ftp //匿名用户的默认数据的根目录
/var/ftp/pub //匿名用户的默认数据目录的扩展目录

配置文件解读
[root@qg113 vsftpd]# grep -v ^# vsftpd.conf
anonymous_enable=YES //支持匿名用户访问
local_enable=YES //非匿名用户
write_enable=YES //写的总开关
local_umask=022 //反掩码
anon_upload_enable=YES //允许匿名用户上传
anon_mkdir_write_enable=YES //允许匿名用户写的权限
dirmessage_enable=YES //启用消息功能
xferlog_enable=YES //开启xferlog日志
connect_from_port_20=YES //支持主动模式,默认被动模式
xferlog_std_format=YES //xferlog日志格式
listen=NO //ftp服务独立模式下的监听
pam_service_name=vsftpd //指定认证文件
userlist_enable=YES //启用用户列表
tcp_wrappers=YES //支持tcp_wrappers功能

小结

  1. ftp默认使用用户名和密码登录 ==》ftp或者匿名用户
  2. lftp默认使用的匿名用户登录 ==》lftp 192.168.0.113:/> user name或lftp user@ip
  3. 工具不知道咋用,里面输入?号或者man ftp、man lftp

允许匿名用户上传文件
配置文件需增加如下配置
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

使匿名用户有下载权限
配置文件需增加如下配置
anon_umask=022

开启本地用户消息功能
配置文件需增加如下配置
dirmessage_enable=YES
然后在用户的家目录下添加信息
echo "welcome to anon home" >/var/ftp/.message
su -m web -c "echo "welcome to myhome" >/home/web/.message"

需要所有用户登录时看到
vim /etc/vsftpd/vsftpd.conf
增加一行
banner_file=/etc/vsftpd/banner_file
vim /etc/vsftpd/banner_file
@@@@@@@@@@@@@@


哈哈哈哈哈哈
嘿嘿嘿嘿嘿嘿
重启vsftpd
systemctl restart vsftpd
客户端登录

禁锢所有本地用户
chroot_local_user=YES //不能随便跳转

禁锢大部分,允许小部分
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
echo stu2> /etc/vsftpd/chroot_list
重启vsftpd
systemctl restart vsftpd

禁锢小部分,允许大部分
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
echo stu1> /etc/vsftpd/chroot_list
重启vsftpd
systemctl restart vsftpd

指定匿名用户上传文件保存路径
vim /etc/vsftpd/vsftpd.conf
local_root=/home/data

ftp本身对象访问控制
ftpusers //黑名单
user_list //默认黑名单|可黑可白
只允许某个用户访问
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO
echo stu2 >>/etc/vsftpd/user_list

小结

  1. 用户在ftpusers文件中,那么用户不能访问ftp服务器;
  2. 用户在user_list文件中,如果该文件是白名单,那么只在该文件中的用户可以访问ftp服务器;
  3. 如果user_list是白名单,用户既在ftpusers中又在user_list中,那么ftpusers优先。

ftp网络访问控制
主要是配合以下两个文件
/etc/hosts.allow
/etc/hosts.deny

写法
/etc/hosts.deny
vsftpd:all //全部拒绝
vsftpd:all EXCEPT 192.168.0.121 //拒绝所有除了192.168.0.121
vsftpd:192.168.0.121 //拒绝单个ip地址等价于/etc/hosts.allow增加vsftpd:192.168.0.121:deny
vsftpd:192.168.0.0/255.255.255.0 //拒绝某个网段
vsftpd:192.168.0.0/255.255.255.0 EXCEPT 192.168.0.121 //拒绝某个网段除了某个IP
注意:子网掩码不支持192.168.0.0/24这种写法

如何判断一个服务是否支持tcp_wrappers

  1. 编译安装时加--enable-libwrap
  2. rpm安装通过如下命令检查
    ldd /usr/sbin/vsftpd |grep libwrap*

补充一个高级权限
chmod -R 1777 /tmp
o+t 粘滞位,一般作用在公共目录上(777),只能自己管理自己,也就是说在该目录下,只有root和文件的创建者可以删除,其它人不可以删除不属于自己的文件。

posted @ 2022-03-28 08:58  霸都运维  阅读(154)  评论(0编辑  收藏  举报