1.FTP服务的定义
FTP(文件传输协议)是internet上仍常用的最老的网络协议之一,他为系统提供了通过网络
与远程服务器进行传输的简单方法;
2.ftp协议提供的软件:
在rhel7中:
vsftpd(Very Secure File TransferProtocolDamon )
3.服务基本信息
软件安装包: vsftpd
软件默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
主动:访问通过21接口,传输数据通过20接口
被动(默认):访问通过21接口,传输文件通过一个随机的大于1024的接口,这样更安全;
4.部署ftp服务
(前提)有已经配置好的yum源仓库;
yum install vsftpd.x86_64 lftpd.x86_64 -y #安装相关软件
systemctl start vsftpd #打开vsftpd服务
systemctl enable vsftpd #设置开机自启动
firewall-cmd --permanent --add-server=ftp #给防火墙中添加许可(ftp)
firewall-cmd --reload #重新加载防火墙
也可以用图形的方式添加:
firewall-config
在永久设定里添加ftp,然后选择重新加载;
然后测试,用另外一台主机:
lftp 172.25.254.111 #匿名用户登录
ls
1.如图:
这里我已经安装完成;
2.打开并查看服务状态:
3.防火墙设置许可ftp,并且重新加载;
4.设置开机ftp服务自启:
5.
getenforce #如果为disable不用设置
否则
vim /etc/sysconfig/selinux 改SELINUX=Disable
reboot
如图:
之后再重启;
6.开始测试:
5.对匿名用户的设置
编辑vsftpd的配置文件:
vim /etc/vsftpd/vsftpd.conf
1.匿名用户是否可以登录
anonymous_enable=YES | NO
如图,改为不允许:
则:
2.
2.匿名用户是否可以上传
write_enable=YES
anon_upload_enable=YES
未修改之前:
修改:(然后重启服务)
给权限:
修改之后:
3.匿名用户家目录修改
先创建一个家目录:
再编辑配置文件:
测试:
4.匿名用户上传文件默认权限修改
默认umask=066
修改为770:
结果:
5.匿名用户建立目录
anon_mkdir_write_enable=YES | NO
如图:
结果
6.匿名用户下载(下载就是复制,可读的权力)
anon_world_readable_only=NO|YES #NO表示可下载
编辑:
结果:
7.匿名用户删除
anon_other_write_enable=YES|NO
编辑:
结果:
8.匿名用户使用的用户身份修改
chown_uploads=YES
chown_username=student
chown_upload_mode=0644
9.最大上传速率(我想到了某云盘)
连接客户个数限制
anon_max_rate=102400
max_clients=个数
编辑:
结果:
茶熬过两个用户连接时显示失败;
6.对本地用户的设置
1.本地用户是否可以登录
local_enable=YES|NO 是|否
2.ftp是否对登录用户可写
write_enable=YES|NO
改为不允许:
结果:
3.本地用户家目录修改
local_root=/westos
3.本地用户上传文件权限
local-umask=xxx
结果:
4.限制本地用户浏览根目录
chroot_local_user=YES (将所有用户都锁住)
默认情况下:
之后:
5.用户浏览黑名单建立
< 1>.在shell中
vim /etc/vsftpd/chroot_list 添加某些用户
<2>.在配置文件里
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
编辑配置文件:
添加用户到名单:
测试:不可浏览
6.白名单建立:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list 只有白名单的人不会被锁住
编辑:
查看:
测试:
7.限制本地用户登录
vim /etc/vsftpd/ftpusers #用户黑名单
在其中添加用户名即可永久限制该用户登录
8.临时限制登录
在配置文件里编辑:
userlist_deny=NO
7.虚拟用户的设定
1.创建虚拟用户
vim /etc/vsftpd/westosfile #文件名称任意
=
user1
123
user2
123
user3
123
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db #加密
结果:
创建认证策略:
vim /etc/pam.d/westos #文件名称随意
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
编辑配置文件:
pam_service_name=westos
guest_enable=YES
测试:
8.虚拟用户的授权:
1.虚拟用户身份指定
guest_username=ftpuser
chmod u-w /home/ftpuser
2.虚拟用户家目录独立设定
mkdir /var/ftpuserdir/user{1..3} -p
mkdir /var/ftpuserdir/user{1..3}/pub -p
touch /var/ftpuserdir/user1/user2file
touch /var/ftpuserdir/user2/user2file
touch /var/ftpuserdir/user3/user3file
编辑:
在shell中:
3.虚拟账号配置独立
测试: