第14章 FTP服务
1号机服务器
2号机Linux客户端
3号机windows客户端
///////////////////////////
1号机
yum install vsftpd 安装服务
systemctl start firewalld.service 打开防火墙
setenforce 1 启动SELinux
firewall-cmd --permanent --add-service=ftp 配置防火墙
firewall-cmd --reload
getsebool -a | grep ftp 查看布尔值
setsebool -P ftpd_full_access on 直接开最大权限
vim /etc/vsftpd/vsftpd.conf ftp的配置文件
ll /var/ftp/pub/ 默认发布目录
mount /dev/cdrom /var/ftp/pub/ 直接把光盘挂上
systemctl restart vsftpd 启动服务
2号机
systemctl start firewalld.service 打开防火墙
setenforce 1 启动SELinux
直接就可以访问了
1号机
卸载出现有人占用情况
fuser -km /var/ftp/pub/ 直接给它干了
umount /var/ftp/pub/ 然后卸载
df -Th 查看一下还有没有挂着
touch /var/ftp/pub/qintest 建立测试文件
vim /etc/vsftpd/vsftpd.conf 修改ftp的配置文件
因为匿名用户进来是other所以有权限问题
chmod o+w /var/ftp/pub/ 给others添加一个写入权限对 /var/ftp/pub/
systemctl restart vsftpd.service 重启服务
2号机
yum install ftp 安装服务
yum install lftp 安装服务
lftp 192.168.100.1 直接进入192.168.100.1
直接get qintest就给down下来了
put qin2file 上传qin2file
ftp 192.168.100.1 使用ftp进去
//////////////账号密码登陆
useradd user1 创建两个账号
useradd user2
passwd user1 设置密码user1
echo user2 | passwd --stdin user2 设置user2密码
vim /etc/vsftpd/vsftpd.conf 修改配置文件
systemctl restart vsftpd.service 重启
2号机
ftp 192.168.100.1 进去后使用user1用户就可以登陆了
可以直接 get 里面的文件
但是 put 不行因为权限问题
chmod o+w /var/ftp/pub/ 给others添加一个写入权限对 /var/ftp/pub/ 就可以了
但是这样子有问题。可以直接cd / cd /boot 权限太大,可以乱来
vim /etc/vsftpd/vsftpd.conf 去修改配置文件,解决问题
前2行是锁定普通用户,进来就只能在/var/ftp下操作
后2行是指定特殊用户搞一个列表,这些列表的用户可以随意操作
vim /etc/vsftpd/chroot_list 配置可以随意操作的用户
systemctl restart vsftpd.service 重启服务
2号机
ftp 192.168.100.1 直接user1登陆,如果出错可能是因为指定目录有写入权限,去除写入权限即可
setfacl -m u:user1:rwx /var/ftp/pub/ 使用setfacl为user1添加写入权限
然后就可以进去操作了
delete qin2file 比如删了qin2file
使用user2登陆就可以随便操作,去任何位置
lftp使用以下3种方式登陆
3号机
flashFxp 整个小工具
指到文件的位置,就可以直接上传文件了
1号机
修改配置文件改成被动模式
systemctl restart vsftpd.service
/////////////////////////限制用户
把被动模式删除了
不用限制用户会发现用别的用户也可以随便登陆服务器
vim /etc/vsftpd/user_list 用户列表
只要下面这里写了YES,那/etc/vsftpd/user_list 列表里写的用户都无法登陆服务器
添加以下命令以后,就反向操作了,只有user_list列表里的用户能登陆服务器
systemctl restart vsftpd.service 重启服务
修改用户列表,只让user1登陆
这样子就只有user1能登陆了
////////////////////////限制用户 方法2
在以下tcp等于YES的情况下
修改vim /etc/hosts.deny对ip进行限制,使得192.168.100.7无法登陆
allow是写允许的,deny写拒绝的,当里面写了冲突语句时候,听allow的
2号机直接ssh登陆服务器
限制ssh,不让访问所有
这样子2号机就ssh过不去了
去allow里写一样的sshd:all 2号机就又可以过去了,先看allow的
which vsftpd 查找位置
///////////////////////////////虚拟账号
机器恢复最初安装vsftpd 配置状态
useradd qinftp -s /bin/false 建立一个真实用户给虚拟账号做依靠,不给登陆本机权限
vim /etc/vsftpd/virtualuser.list 建立虚拟用户列表
db_load -T -t hash -f /etc/vsftpd/virtualuser.list /etc/vsftpd/qinftp.db 把明文数据改成密文数据到/etc/vsftpd/qinftp.db
vim /etc/pam.d/vsftpd 修改
全选加# ctrl+v 宣布选中,shift+i 然后添加# 然后两下esc
mkdir -p /ftpdate/qinftp{1..3} 建立三个文件夹
touch /ftpdate/qinftp1/qinftp1 在文件里增三个文件区分一下
touch /ftpdate/qinftp2/qinftp2
touch /ftpdate/qinftp2/qinftp3
vim /etc/vsftpd/vsftpd.conf 修改配置文件
第一句开启虚拟用户,第二句指定依靠的真实用户,第三句虚拟用户的配置文件位置,第四句权限使用本地vsftpd权限
mkdir /etc/vsftpd/virtualuserconf 建立虚拟用户配置文件的文件夹
vim /etc/vsftpd/virtualuserconf/qinftp1
vim /etc/vsftpd/virtualuserconf/qinftp2 后面一样操作
vim /etc/vsftpd/virtualuserconf/qinftp3
systemctl restart vsftpd.service 重启服务
然后去3号机就可以用虚拟用户登陆了