1.什么是ftp?
FTP ( 文件传输协议 ) 是 INTERNET 上仍常用的最老的网络协议之一 , 它为系统提供了通过网络与远程服务器进行传输的简单方法在 RED HAT ENTREPRISE LINUX 6 中。 FTP 服务器包的名。称为 VSFTPD , 它代表 Very Secure File TransferProtocol
Damon 服务器名称也叫做 vsftpd。默认配置文件让 ANONYMOUS 用户只能下载位于 CHROOT 目录中的内容。 /var/ftp/ 这意味着远程 FTP 客户端能以用户anonymous 或 ftp 身份连接到服务器 ( 无需密码 ), 并从 ftp服务器上的 /var/ftp/ 目录下载文件 ( 其本地 ftp 用户可以读取这些文件 )
2.安装ftp
(1)[root@localhost ~]# vim /etc/sysconfig/selinux
1将第七行改为disabled
2 # This file controls the state of SELinux on the system.
3 # SELINUX= can take one of these three values:
4 # enforcing - SELinux security policy is enforced.
5 # permissive - SELinux prints warnings instead of enforcing.
6 # disabled - No SELinux policy is loaded.
7 SELINUX=disabled
8 # SELINUXTYPE= can take one of these two values:
9 # targeted - Targeted processes are protected,
10 # minimum - Modification of targeted policy. Only selected processes are protected.
11 # mls - Multi Level Security protection.
12 SELINUXTYPE=targeted
(2)[root@localhost ~]# vim /etc/yum.repos.d/rhel_dvd.repo ##配置yum源指向
1 # Created by cloud-init on Thu, 10 Jul 2014 22:19:11 +0000
2 [rhel_dvd]
3 gpgcheck = 0
4 enabled = 1
5 baseurl = http://172.25.254.60/rhel7.2
6 name = Remote classroom copy of dvd
(3)reboot
重启方可生效
步骤如下:
配置yum源指向,为下载FTP服务
3.ftp服务的基本信息
软件安装包:vsftpd
默认发布目录:/var/ftp
协议接口:21/tcp
服务配置文件:/etc/vsftpd/vsftpd.conf
报错id的解析:
500 ##文件系统权限过大
530 ##用户认证失败
550 ##服务本身功能未开放
553 ##本地文件系统权限过小
4.部署ftp 服务
(1)yum install vsftpd -y ##安装ftp软件
(2)systemctl start vsftpd ##开启ftp服务
systemctl enable vsftpd ##开机自启
(3)设置火墙策略
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp ##火墙策略,添加ftp服务
[root@localhost ~]# firewall-cmd --reload ##重新加载火墙服务
[root@localhost ~]# firewall-cmd --permanent --list-all ##列出火墙策略内容
测试:另一台主机访问ftp服务端
lftp 服务器id
[kiosk@foundation60 Desktop]$ lftp 172.25.254.160
[root@localhost ~]# ss -antlpe | grep vsftpd ##查看端口信息
发布目录所含内容
在发布目录里,新建文档
[root@localhost ftp]# touch file
[root@localhost ftp]# ls
file pub
[root@localhost ftp]# touch pub/test
客户端能看到服务端/var/ftp里面的内容
默认配置为匿名ftp服务器,仅仅允许匿名客户端下载,并且禁用所有本地用户,禁止上传
配置文件的修改都是永久的
修改完配置文件要重启服务
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf 修改配置文件
[root@localhost ~]# systemctl restart vsftpd.service 重启服务
anonymous_enable=YES 匿名用户可登陆,匿名用户没有用户身份
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES 本地用户可登陆,注意用户都是ftp服务器上的用户
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES ##本地,匿名用户可写
##匿名用户登录服务器 可下载服务器共享的内容 get test
本地用户
#local_enable=YES|NO #本地用户是否可以登陆
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
local_enable=NO
#
## Uncomment this to enable any form of FTP write command.
#write_enable=YES
#
[root@localhost ~]# systemctl restart vsftpd.service
[kiosk@foundation60 Desktop]$ lftp 172.25.254.160 -u student
Password:
lftp [email protected]:~> ls ##student登陆服务器被拒绝
#write_enable=YES|NO #ftp是否对登陆用户可写(可上传,删除文件)
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
write_enable=YES
anon_uplad_enable=YES
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
anon_root=/direcotry #家目录修改为/direcotry的家目录
anon_umask=xxx
umask为预留权限,上传权限为644
anon_mkdir_write_enable=YES|NO
建立目录 mkdir test
anon_world_readable_only=YES|NO ##设定参数值NO表示匿名用户可以下载
anon_other_write_enable=YES ##匿名用户可删除重命名
删除目录 rm -fr test
anon_max_rate=2048000
二、本地用户设定
local_enable=YES ##本地用户可登陆,注意用户都是ftp服务器上的用户
write_enable=YES ##本地,匿名用户可写
1)本地用户家目录修改
lacal root=/qq
2)本地用户上传文件权限
lacal umask=077
默认配置文件所有用户都可以从家目录中出去
所有用户被锁在自己的家目录中
chroot_lacal_user=YES
所有用户都被锁在家目录里
所有用户都能从家目录中出去
chroot_lacal_user=NO
三、用户黑白名单
所有用户都能从根目录里出去,除了名单中的用户
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在名单中的用户被锁在自己的家目录中
class用户可以从家目录中出去
student用户被锁在家目录中
用户白名单
所用用户被锁在家目录中,名单中的用户可以出去
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
名单中的用户可以出去,其他用户不能出去
student用户可以出去
class用户被锁在家目录中
ftp的用户黑名单,永久的,不可恢复为白名单
用户黑名单,可以恢复为白名单