FTP服务

1.基础设置:
设置网络和yum源
设置网路nm-connection-editor
设定名称hostnamectl set-hostname server3.example.com
更改repo文件vim /etc/yum.repos.d/rhel_dvd.repo(http://172.25.254.250/rhel7
清除数据yum clean all
安装 [root@server3 ~]# yum repolist
[root@server3 ~]# yum install vsftpd -y(相当于阿帕奇)
[root@server3 ~]# yum install lftp -y(相当于浏览器)
启动ftpd服务[root@server3 ~]# systemctl start vsftpd
[root@server3 ~]# systemctl enable vsftpd
logout
ssh root@172.25.254.103 -X
设置内核配置 vim /etc/sysconfig/selinux
SELINUX=disabled —>getenforce查看
reboot
ssh root@172.25.254.103 -X
[root@server3 ~]# firewall-cmd –permanent –add-service=ftp
success //更改防火墙设置为永久,启动服务ftp
[root@server3 ~]# firewall-cmd –reload
success //更改防火墙设置加载
或者 在server3中firewall-config
Configuration设置为permanent
下方列表中添加ftp
Options中reload
2.lftp操作
登陆lftp 172.25.254.250
登陆本地用户 lftp 172.25.254.250 -u student
配置文件vim /etc/vsftpd/vsftpd.conf
重启服务systemctl restart vsftpd

报错: 530是登录失败,能列出东西才可以登陆(密码错了,设置错了)
550是程序不允许
553是服务器文件系统不允许你写(权限过小)
500是权限过大
chmod 777 /var/ftp/会报500的错误

anonymous_enable=YES(第12行)匿名用户是否可以登陆
local_enable=YES(第16行)为本地用户是否可以登陆

这里写图片描述

write_enable=YES(第19行)为本地用户能否可写
anon_upload_enable=YES(第29行)为匿名用户可以上传
默认目录 /var/ftp/
匿名用户上传
anon_upload_enable=YES(第29行)为匿名用户可以上传
chgrp ftp /var/ftp/pub 更改文件的用户组
chmod 775 /var/ftp/pub 组权限
lftp 172.25.254.120
cd /pub/
put /root/Desktop/file
ls
put /上传的东西

这里写图片描述

下载 vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO可以下载
systemctl restart vsftpd
lftp 172.25.254.120
cd /pub/
ls
get passwd 下载文件(下载到进入lftp之前所在的目录)
mirror westos 下载目录

建立目录 vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES(33行)
systemctl restart vsftpd
lftp 172.25.254.120
cd /pub/
ls
mkdir westos

删除 vim /etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES 设定匿名用户能否进行删除文件
systemctl restart vsftpd
lftp 172.25.254.120
cd /pub/
ls
mv 原文件名 新文件名
ls
rm -fr linux

这里写图片描述

这里写图片描述

这里写图片描述

匿名用户的家目录
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos 设定匿名用户家目录
systemctl restart vsftpd
在westos下建立三个文件
lftp 172.25.254.120
cd到家目录(cd)下查看,可以看到文件

这里写图片描述

匿名用户默认建立目录权限
vim /etc/vsftpd/vsftpd.conf
anon_umask=xxx(220)
systemctl restart vsftpd
lftp 172.25.254.120
mkdir westos
ls -l

这里写图片描述

设定上传文件的所有人
vim /etc/vsftpd/vsftpd.conf
chown_uploads=YES 由这项才可有下面的两项
chown_username=student 更改为student id student查看UID
systemctl restart vsftpd
put file
ls

这里写图片描述

这里写图片描述

设定匿名用户上传文件的权限
vim /etc/vsftpd/vsftpd.conf
chown_upload_mode=0644(这条写入上面的匿名用户默认建立目录权限就失效了)
systemctl restart vsftpd
put file
ls

这里写图片描述

限制上传下载速度
dd if=/dev/zero of=bigfile bs=1M count=2000 创建一个2G的大文件
du -sh bigfile 查看大文件信息
vim /etc/vsftpd/vsftpd.conf
anon_max_rate=102400 ##单位为byte,102400为100k/s,速度上
!!限速是服务器长期稳定的保证

这里写图片描述

最大链接数 //同时最多允许几个用户同时连接
vim /etc/vsftpd/vsftpd.conf
max_clients=2
systemctl restart vsftpd

这里写图片描述

本地用户家目录设定(指定)(验证方法痛匿名用户)
vim /etc/vsftpd/vsftpd.conf
local_root=/westos 设定本地用户家目录
systemctl restart vsftpd
lftp 172.25.254.120 -u student
ls

这里写图片描述

本地用户锁定在自己的家目录中
vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES !!锁定 108行
systemctl restart vsftpd
chmod u-w /home/* !!去除家目录所有的写权限,否则会报500权限过大错误
lftp 172.25.254.120 -u student
cd /
ls

这里写图片描述

设定用户的名单
vim /etc/vsftpd/vsftpd.conf
chroot_list_enable=YES !!启动列表

chroot_local_user=YES !!锁住了,大家都出不去,下面是白名单
chroot_list_file=/etc/vsftpd/chroot_list !!指定白名单名称
或者 chroot_local_user=NO !!没有锁,大家都可以出去,下面是黑名单
chroot_list_file=/etc/vsftpd/chroot_list !!指定黑名单名称
vim /etc/vsftpd/chroot_list
systemctl restart vsftpd
chmod u-w /home/* !!去除家目录所有的写权限,否则会报500权限过大错误
lftp 172.25.254.120 -u student
cd /
ls
切换另一个本地账户再次尝试

这里写图片描述

PS:查看主配置文件 man vsftpd.conf
/read 查找含有read的关键词

1.本地用户名单
vim /etc/vsftpd/vsftpd.conf
userlist_enable=YES(默认可以登陆)
systemctl restart vsftpd.service
/etc/vsftpd/user_list 临时黑名单(我把student写到里面)
student进不去,westos能进去

这里写图片描述

vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO(加上这个默认用户不能登陆)
systemctl restart vsftpd.service
/etc/vsftpd/user_list 临时白名单
student能进去,westos进不去

这里写图片描述

PS:userlist_deny=YES(默认可以登陆)

/etc/vsftpd/ftpusers 永久黑名单(即改即生效)

required必须通过

2.ftp虚拟用户的设定
vim /etc/vsftpd/westosfile 文件名称随意(里面写虚拟用户和密码,一行用户一行密码,不要加空格)
westos1
123
westos2
123
westos3
123

这里写图片描述

db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db 加密

cat /etc/vsftpd/westosfile.db 看加密的文件就会显示乱码

这里写图片描述

vim /etc/pam.d/ftpcheck 文件名任意

account帐号 required必须通过 pam_userdb.so db=/etc/vsftpd/westosfile指定看门的人用按照哪个名单看
auth密码 required必须通过 pam_userdb.so db=/etc/vsftpd/westosfile

这里写图片描述

vim /etc/vsftpd/vsftpd.conf
pam_service_name=ftpcheck (指定看门的人按照哪个文件里的方式看)
guest_enable=YES
guest_username=westos(虚拟用户登陆之后系统用户的名字)

lftp 172.25.254.120 -u westos1
123

这里写图片描述

PS:ls看不见
anon_world_readable_only=NO改了这个才能读

3.虚拟用户家目录独立设定
mkdir /ftpdir/westos{1..3} -p(递归建立)
touch /ftpdir/westos1/westos1file
touch /ftpdir/westos2/westos2file
touch /ftpdir/westos3/westos3file
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpdir/ $ USER (指定本地用户家目录)

user_sub_token=/ USER使vim USER时什么意思,引用shell的环境变量)
systemctl restart vsftpd.service
然后每个用户都能在家目录中看见相对应的文件

这里写图片描述

4.在子配置文件中给不同虚拟用户不同权限(可下载可上传)
先关闭以前设置的上传和下载权限
mkdir /etc/vsftpd/confdir
mkdir /ftpdir/westos{1..3}/pub

这里写图片描述

chmod 775 /ftpdir/westos{1..3}/pub
chgrp westos /ftpdir/westos{1..3}/pub

vim /etc/vsftpd/confdir/westos1
anon_upload_enable=YES
anon_mkdir_write_enable=YES

vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/confdir

用户可以上传,下载

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值