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功能
小结
- ftp默认使用用户名和密码登录 ==》ftp或者匿名用户
- lftp默认使用的匿名用户登录 ==》lftp 192.168.0.113:/> user name或lftp user@ip
- 工具不知道咋用,里面输入?号或者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
小结
- 用户在ftpusers文件中,那么用户不能访问ftp服务器;
- 用户在user_list文件中,如果该文件是白名单,那么只在该文件中的用户可以访问ftp服务器;
- 如果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
- 编译安装时加--enable-libwrap
- rpm安装通过如下命令检查
ldd /usr/sbin/vsftpd |grep libwrap*
补充一个高级权限
chmod -R 1777 /tmp
o+t 粘滞位,一般作用在公共目录上(777),只能自己管理自己,也就是说在该目录下,只有root和文件的创建者可以删除,其它人不可以删除不属于自己的文件。
本文来自博客园,作者:霸都运维,转载请注明原文链接:https://www.cnblogs.com/wangjie20200529/p/16065542.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」