FTP服务

FTP

   FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
   默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定,使用的应是大于1024的任意端口

一.ftp服务的部署

1.配置SELINUX环境
命令行输入genenfore,查一下是否为disable,如果不是要修改成disable。
查看selinux
修改的地址在:etc/sysconfig/selinux 。 改SELINUX=disabled
在这里插入图片描述
修改完成后必须重启,才能重新加载为disabled。
2.安装并开启vsftp服务
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 。从此名称可以看出来,编制者的初衷是代码的安全。

 1. yum search vsftp 
 2. yum search lftp 
 3. yum install vsftp.x86_64 lftp.x86_64 -y
 4. yum start vsftpd  

搜索
开启
3.火墙开启ftp功能
开启火墙图形设置firewall-config
将ftp设置为永久开启并重启火墙
开启ftp
重启火墙
4.查看vsftp的相关文件
rpm -ql vsftpd###查看相关配置文件
默认配置文件
默认发布目录

二.匿名用户设定

1.匿名用户登录

通过实验,我们可以发现默认设置里匿名用户是可以登陆的。
匿名用户登录
如果不想让匿名用户登录,需要在配置文件中修改。
vim /etc/vsftpd/vsftp.conf ###修改配置文件
修改登陆
修改后匿名用户无法登陆

2.匿名用户上传

匿名用户默认不可以上传文件。
无法上传
想开启匿名用户上传功能,配置文件中修改:
write_enable=YES
agon_upload_enable=YES

修改完成后重启服务。此时匿名用户依然无法上传文件。这是因为权限太小。
权限太小
chgrp ftp /var/ftp/pub #匿名用户使用ftp用户的身份访问ftp服务器,所以将ftp目录的所有组改为ftp
chmod 775 /var/ftp/pub ###修改ftp组的权限。注意不能修改为777权限过大也会出现错误500
权限过大
上传成功

3.匿名用户删除文件

此时如果我们想把刚才上传的文件删除可以吗?答案是否定的。
依然存在
如果想让匿名用户可以删除文件,需在配置文件中加入一行:
.anon _other-write_enable=YES(允许匿名用户删除)|NO(不允许匿名用户删除)
可以删除
删除成功

4.匿名用户建立目录

匿名用户能否建立目录,在配置文件中决定:
anon_mkdir_write_enable=YES(允许匿名用户建立目录)|NO (不允许)
允许建立目录
建立目录成功

5.匿名用户下载

匿名用户默认不允许下载文件,若想下载,需在配置文件中添加
anon_world_readable_only=NO(可下载所有文件)|YES(只允许下载可读文件)
下载失败
允许匿名用户下载
下载成功

6.匿名用户修改上传文件默认权限

配置文件中加入:
anon_umask=022 ###修改匿名用户默认权限,上传文件权限为666-umask=644;如果不指定umask,上传文件权限默认为600
umask
修改完成

7.匿名用户使用的本地用户身份修改

== chown_uploads=YES
chown_username=student ##修改后的本地用户身份==
修改为student
长传文件发现文件所有人不同了。
上传文件
查看student id信息,发现符合。修改成功。
studentid信息

8.匿名用户上传速率

企业为了效益,需要区分会员与非会员的上传速率。可以在配置文件中修改:
anon_max_rate=102400 ##最大上传速率的设定,单位为k
修改速率
修改前
可以看到上传速率大大降低。
修改前
修改后
修改后

9.最大连接数的设置

为了做到服务器稳定,需要限制登陆人数。最大连接数的设定,在配置文件中修改:
max_clients=2 ##最大连接数的设置,2的意思就是最多可以有两个用户登录
最大连接数
可以看到当有两台主机登陆后第三台主机无法登陆
最大2台连接

三.本地用户设定

1.本地用户锁定在家目录

使用本地用户登陆时,默认可以进出目录。这太不安全了。我们可以设定使用本地用户登陆时,将其锁定在家目录,无法进入别的目录。
配置文件修改:
chroot_local_user=YES (将所有用户都锁住)
命令行输入:
chmod u-w /home* ####不修改本地用户权限太大

修改前:
修改前
修改后
修改后

2.锁定家目录的黑白名单设定

刚才的方法针对的是所有本地用户。可以通过黑白名单的方法来区分不同本地用户的权限。
配置文件修改:
chroot_list_enable=YES(黑名单)|No(白名单)
chroot_list_file=/etc/vsftpd/chroot_list ###文件里写入本地用户

值得注意的是:黑白名单的列表是同一列表。黑白名单的区别就是配置文件中设定:chroot_list_enable=时,YES即**/etc/vsftpd/chroot_lis**列表里的用户为黑名单NO则为白名单
我们可以看看效果:
设定黑名单
设定黑名单
黑名单用户
用户
无法离开家目录
在这里插入图片描述
改成白名单
白名单
则名单里的用户可以离开家目录
白名单

3.永久黑名单及临时黑名单

除了锁定用户进出家目录的黑白名单外,还有限制能否使用FTP服务的黑名单。
黑名单
/etc/vsftpd/ftpusers内的用户为永久黑名单,无法使用FTP服务。
在这里插入图片描述
使用名单内的用户无法登陆ftp。
不许登陆
而临时黑名单内的用户也不可以使用ftp服务。
临时
无法登录
但临时黑名单可以转换成白名单,使得只有名单内的用户可以使用ftp服务。
配置文件内添加一行
userlist_deny=NO
配置文件
此时名单内的用户可以登陆
student
名单外的用户无法登陆
user1

四.虚拟用户设定

   在实际中,不可能给每一个用户都分配一个服务器的本地用户。这样不安全也不现实。因此,用户一般都是以虚拟用户登陆的。而虚拟用户的登陆,需要认证。这牵涉到了Linux系统的安全模式:3A认证
   3A机制: account auth author 帐号、认证和用户授权。
   而认证的程序是PAM:Pluggable Authentication Modules,可插入认证模块。可以动态引入认证各种认证模块和插件,而无需重新加载系统。具有高度灵活性,随配随生效。

1.创建虚拟用户身份

1.创建虚拟用户名单

 1. vim /etc/vsftpd/vuserlist  ###创建虚拟用户名单
 2. user1          			   ###用户 
 3. 123                        ##密码 
 4. user2 
 5. 123
 6. user3
 7. 123

注意:编辑虚拟用户密码时注意不要空格,空格也算一个字符,且不易排错
虚拟用户

2.对虚拟用户文件进行加密
db_load -T -t hash -f vuserlist vuserlist.db##对虚拟用户文件进行hash加密,加密后会生成vuserlist.db这个加密文件
db文件
3.配置认证
在pam.d下是各种认证。我们也需要将虚拟用户的认证写入。
vim /etc/pam.d/renzheng
account required pam_userdb.so db=/etc/vsftpd/vuserlist(默认带db)
当账户认证时,用pam_userdb.so工具检查与加密的db文件是否符合,正确认证,错误返回
auth required pam_userdb.so db=/etc/vsftpd/vuserlist
当密码认证时,用pam_userdb.so工具检查与db内容是否符合,正确认证,错误返回
认证
4.将认证写入配置文件
vim /etc/vsftpd/vsftpd.conf ##编辑该配置文件
pam_service_name=renzheng ##将用户认证指向renzheng文件
guest_enable=YES ##虚拟用户可以登录

认证
5.虚拟用户登录
lftp 172.25.70.251 -u user1 ###检测虚拟用户是否可以登陆
虚拟用户登录成功

2.虚拟用户的授权

1.修改虚拟用户登陆的本地用户
配置文件中添加:
guest_username=student##虚拟用户以student登录
2.虚拟用户家目录独立设定(使虚拟用户登录进去不是默认使用的ftp用户的家目录,可以根据用户名称进入自己的家目录)

 1. mkdir /var/ftpuser             ###虚拟用户家目录的地址
 2. mkdir /var/ftpuser/{user1,user2,user3} -p
 3. mkdir /var/ftpuser/user{1,2,3}/pub -p
 4. touch /var/ftpuser/user1/user1file  ##可以观察是否更改成功
 5. touch /var/ftpuser/user2/user2file
 6. touch /var/ftpuser/user3/user3file
 7. vim /etc/vsftpd/vsftpd.conf        ###修改配置文件
 8. local_root=/var/ftpuser/$USER   ###家目录为/var/ftpusrdir/登陆名,$USER是shell下的变量,vim本身不识别 
 9. user_sub_token=$USER ,意为读取调用环境中的变量含义
 10. chgrp ftp /var/ftpuser -R
 11. chmod 775 /var/ftpuser/user{1..3}/pub

用户
可以看到家目录已经成功改变了。
user1
在这里插入图片描述

3.虚拟用户的独立配置

之前的配置都是针对某一类用户。想要用户具有单独配置,可以:
mkdir -p /etc/vsftpd/user_conf # ###建立指定目录
touch /etc/vsftpd/user_conf/user1 ###在刚建目录下创建虚拟用户user1的配置文件
vim /etc/vsftpd/user_conf/user1 ###编辑文件

文件内写入你想要该虚拟用户拥有的权限
==anon_upload_enable=YES ==

在配置文件内加入一行,指向你刚才创建的用户的配置文件:
vim /etc/vsftpd/vsftpd.conf
user-config_dir=/etc/vsftpd/user_conf ##用户配置目录指向刚才建立的目录

在这里插入图片描述
关闭公共的上传功能
在这里插入图片描述
我们会发现:只有配置了上传的user1用户可以上传文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值