linux系统中的ftp服务

1.ftp的定义
ftp://  ##文件传输协议

2.ftp协议提供的软件
在rhel7中:vsftpd

3.部署ftp服务
ftp(文件传输协议)是Internet上常用的最老的网络协议之一,它的系统提供了通过网络与远程服务器进行传输的简单方法。ftp服务器包的名称为vsftpd,它代表Very Secure File Transfer Protocol Damon,服务器名称也叫做vsftpd。
默认配置文件让anonymous用户(匿名用户)只能下载位于chroot目录中的内容。
/var/ftp/这意味着远程ftp客户端能以anonymous用户或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)

 

一、建立ftp服务

步骤:

1、下载ftp服务

命令:
     yum install vsftpd -y ##需要本地yum源,如没有详情见《linux中yum源搭建及软件管理》
     systemctl start vsftpd
     systemctl enable vsftpd
     systemctl status vsftpd

 

2、关闭内核级的加强形火墙(编辑 /etc/sysconfig/selinux 文件并重启虚拟机)

vim /etc/sysconfig/selinux  ##disabled
getenforce ##查看状态并未改变
reboot

 

3、设置火墙永久允许ftp服务

firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload

 

4、启动服务

 

5、在浏览器服务端输入需要连接的ftp服务的ip

(显示页面说明ftp服务设置成功)

 

6、测试服务:在真机里打开一个shell

 

二、ftp服务的基本信息


       软件安装包:vsftpd
       默认发布目录:/var/ftp
       协议接口:21/tcp
       服务配置文件: /etc/vsftpd/vsftpd.conf
       报错id解析:

500文件系统权限过大
530用户认证失败
550服务本身功能未开放
553本地文件系统权限过小

 

 

 

 

 

 

三、匿名用户的登录

1、禁止匿名用户登录

      编辑文件 /etc/vsftpd/vsftpd.conf

匿名用户:
anonymous_enable=YES/NO  ##匿名用户是否可以登录

(注:wq保存退出后一定要重启服务否则修改的内容不会生效)

 

检测:

匿名用户不可以登陆:

本地用户可以登录:

 

 

2、匿名用户上传:
 

1、vim /etc/vsftpd/vsftpd.conf
2、systemctl restar vsftpd ##重启服务
3‘chgrp ftp /var/ftp/pub
4、chmod 775 /var/ftp/pub

(1)、编辑文件

编辑内容:
          anon_upload_enable=YESwrite_enable=YES
          anon_upload_enable=YES

 

(2)、修改权限

 

(3)、测试

 

 

3、匿名用户上传文件的权限

将匿名用户上传文件的权限修改为600

anon_umask=077

 

 

4、匿名用户建立目录的权限

anon_mkdir_write_enable=YES|NO

(1)、没有设置前(匿名用户不可建立目录)

 

(2)、设置匿名用户可以建立目录

 

(3)、测试:

(匿名用户可以建立目录)

 

5、匿名用户的下载

anon_world_readable_only=YESdd|NO  ##no表示匿名用户可以下载

(1)、编辑文件

 

(2)、测试:

下载文件

查看下载好的文件

 

 

 

 

6、匿名用户的删除

anon_other_write_enable=YES|NO

(1)、没有设置前

(2)、编辑文件

 

(3)、测试:

(删除成功)

 

 

 

7、匿名用户使用的用户身份修改

chown_uploads=YES
chown_username=student
chown_upload_mode=0644

(1)、编辑文件

 

(2)、测试:

(上传的文件用户身份为student用户)

 

 

 

8、最大的上传速率

anon_max_rate=102400

(1)、没有设置前

(2)、编辑文件

 (3)、测试

(网速和设定的值相似)

 

 

 

 

9、允许的最大链接数

max_clients=1

(1)、编写文件

 

(2)、测试:

(只能登录一个用户)

 

 

 

 

四、本地用户

1、本地用户是否可以登录

local_enable=YES/NO  ##本地用户是否可以登录

(1)编辑文件

 

(2)、测试:

 

 

 



2、write_enable=YES/NO  ##ftp是否对登录用户可写

(1)、没有设置前可以进行读写

 

(2)、编辑文件

 

(3)、测试:

(设置后读写无效)

 

 

 

3、本地用户上传文件的权限

 local_umask=077

(1)、编辑文件

 

(2)、测试:

上传文件一定要在上传功能开启后才可以上传

 

 

4、限制本地用户浏览 / 目录

chroot_local_user=YES   ##所有用户被锁定到自己的家目录中

(1)、设置前本地用户可以浏览 / 目录

(2)、编辑文件

 

(3)、修改权限

 chmod ugo-w /home/*

 

 

(4)、测试

(用户不能浏览名 / 目录)

 

 

五、用户黑名单的建立

chroot_local_user=NO   ##黑名单
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list

(1)、编辑文件

 

(2)、建立 /etc/vsftpd/chroot_list (黑名单自己建立)

 

(3)、测试

 

 

 

 

 

六、用户白名单的建立

 chroot_local_user=YES  ##白名单
 chroot_list_enable=YES
 chroot_list_file=/etc/vsftpd/chroot_list

方法一:

(1)、编辑文件

 

(2)、创建chroot_list 文件

 

(3)、测试

 

 

方法二:

(1)、编辑文件

 

 

(2)、编辑 user_list 文件

 

 

(3)、测试

 

 

 

 

七、限制本地用户登录用户黑名单

vim /etc/vsftpd/ftpusers  ##用户黑名单

(一)、ftpusers(永久黑名单建立)

(1)、编辑文件

 

(2)、测试

 

 

(二)、user_list (临时黑名单)

vim /etc/vsftpd/user_list   ##用户临时黑名单

1、编辑文件

 

(2)、测试

 

 

 

八、ftp虚拟用户的设定

vim /vim /etc/vsftpd/www  ##文件名称任意

(1)、创建虚拟帐号身份:

(2)、编辑文件内容

格式:用户名

        密码

 

(3)、生成加密文件

命令:db_load -T -t hash -f www www.db  ##加密

 

(4)、建立虚拟用户认证文件输入认证的匹配文件

 

 

(5)、编辑 /etc/vsftpd/vsftpd.conf 文件

 

(6)测试:

 

 

 

 

九、虚拟帐号家目录独立设定:用户只能查看自己的目录

(1)

 

 

(2)、

 

 

(3)、测试

 

 

 

9、虚拟帐号配置独立

(1)、关闭匿名用户上传文件的权限

 

(2)、测试:

 

 

(3)、建立用户可以上传的文件

(4)创建目录和文件


 

写入:anon_upload_enable=YES

此文件中设定配置文件中的所有参数,此文件的优先级高 

 

(5)重启服务

 

(6)测试:只有qq1能上传文件

 

 

 

十、实验结束后还原原来的环境

 

 

十一、排错

(1)服务出现问题

(2)根据提示的错误找到问题所在

(3)问题解决

 

 

 

 

十二、SELinux安全策略

(一)、SELINUX=permissive(警告不强制)

(1)建立文件

 

(2)、测试:可以登录查看

 

 

 

 (二)、SELINUX=enforcing         ##强制执行selinux安全策略

(1)、登录/etc/sysconfig/selinux  文件

 (2)保存后重启

 

 

 

(3)测试:登录不可看到上传文件

(访问被拒绝)

 

 

(三)、setenforce   0     将selinux安全策略设置为警告模式(用户登录可以访问)

(1)、时入命令setenforce  0

 

测试:用户可登录查看

 

 

(四)、setenforce   1     将selinux安全策略设置为强制模式(用户登录不可以访问)

 

(1)、输入命令:setenforce   1

 

(2)测试:登录不可见

 

(3)将setenforce   1 改为 setenforce   0

测试:

 

 

(五)、chcon  -t public _content_t   filename      ##修改selinux安全策略的等级 (临时修改)

(1)、输入:chcon  -t public _content_t   filename

 

测试:登录可见

 

 

(六)、chcon  -t public _content_t   filename  -R      ##表示登录后该目录下的所有文件可见 (临时修改)

(1)建立目录以及文件

 

(2)、设置访问的家目录

 

(3)、输入chcon  -t public _content_t   filename  -R 并查看文件信息

 

测试:

 

 

十三、setsebool -P tftp ome_dir  on    ##修改用户登录权限的参数(永久修改)

(1)输入:setsebool -P tftp ome_dir  on

 

(2)、测试:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值