Linux系统入门之部署FTP服务
1.FTP的定义
FTP(文件传输协议)是internet上仍常用的最老的网络协议之一,基于客户端/服务端模式,默认使用20 21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关ftp命令与参数。ftp服务器普遍部署于内网中,具有容易搭建 方便管理的特点。而且ftp客户端工具还支持文件的多点下载以及断点续传技术。因此ftp服务得到了广大用户的青睐。
在RED HAT ENTREPRISE LINUX 6中。FTP服务器包的名称为VSFTPD very secure file trandferprotocol damon 服务器名称也叫做vsftpd。vsftpd服务有三种认证模式:匿名开放模式,本地用户模式,虚拟用户模式。
默认配置文件让ANONYMOUS用户只能下载位于CHROOT目录中的内容。/var/ftp这意味着远程FTP客户端能以用户anonymous 或 ftp 身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp 目录下载文件(其本地用户可以读取这些文件)
2.ftp服务的基本信息
软件安装包: vsftpd
默认发布目录: /var/ftp
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
报错id的解析:
530----用户认证失败
550----服务本身功能未开启
553----本地文件系统 权限过小
500----文件系统权限过大
3.部署ftp服务
3.1准备工作:
hostnamectl set-hostname ftp_server.westos.com ##修改主机名
vim /etc/sysconfig/network-scripts/ifcfg-eth0 ##配置网络
systemctl restart network ##重启网络
cd /etc/yum.repos.d/ ##确认yum源正确
getenforce
vim /etc/sysconfig/selinux ##修改getenforce=disable
reboot ##修改完成后reboot重启
安装 ftp: yum install lftp -y
systemctl start vsftpd ##启动vsftpd服务
systemctl enable vsftpd ##设置vsftpd服务开机自启
systemctl status firewalld.service
firewall-cmd --list-all
firewall-cmd --permanent --add-service=ftp ##设置防火墙允许ftp服务
3.2匿名开放用户:一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到FTP服务器。
这种模式一般用来访问不重要的公开文件(在生产环境中尽量不要存放重要文件)
vsftpd服务默认开启匿名开放模式。我们需要做的就是开放匿名 用户的上传/下载文件的权限,以及让匿名用户创建 删除 更名文件的权限。需要注意的是,针对匿名用户开放这些权限会带来潜在的危险,我们只在linux系统中练习配置vsftpd而开放上述权限,在生产环境中不建议如此配置。
修改ftp服务的配置 命令vim /etc/vsftpd/vsftpd.conf
每次修改完成后需要重启vsftpd服务,systemctl restart vsftpd.service 实验过程中不再赘述。
(1)anonymous_enable=YES|NO <匿名用户是否可以登陆>
(2)<匿名用户上传>
anon_upload_enable=YES
write_enable=YES
修改目录权限:
chgrp ftp /var/ftp/pub
chmod 775 /var/ftp/pub
(3)anon_root=/新目录 <匿名用户家目录修改>
(4)anon_unmask=*** <匿名用户上传文件默认权限修改>
(5)<匿名用户建立目录>
(6)<匿名用户下载>
(7)<匿名用户删除>
(8)<匿名用户使用的身份修改>
(9)最大上传速率anon_max_rate
最大连接数max_clients=3
3.3本地用户模式
本地用户模式更安全,配置更简单。
(1)本地用户是否可以登录local_enable=YES|NO
(2)ftp对登录用户可写write_enable=YES|NO
修改为NO 不可写
修改为YES 可上传 可删除
本地用户上传文件权限local_umask=022
(3)本地用户家目录修改
(4)限制本地用户浏览目录
所有本地用户被锁定在自己的家目录中 无法访问/目录 安全性增强
用户黑名单建立
在/etc/vsftpd/chroot_list文件中写入的用户名,该用户被所在自己的家目录中
用户白名单
chroot_local_user=YES
chroot_list_enable=YES
名单中的用户student没有被锁 其他用户被所在家目录中
(5)限制本地用户登录
永久黑名单/etc/vsftpd/ftpusers
a.在/etc/vsftpd/ftpusers中加入用户
b.在配置文件/etc/vsftpd/vsftpd.conf中加入userlist_deny=YES 重启服务
用户临时黑名单:
在/etc/vsftpd/user_list中加入用户名 效果与上述操作相同 不再赘述
用户白名单
a.在/etc/vsftpd/ftpusers中加入用户
b.在配置文件/etc/vsftpd/vsftpd.conf中加入userlist_deny=NO 重启服务
3.4虚拟用户模式
虚拟用户模式在三种模式中最安全的一种认证模式
(1)在/etc/vsftpd目录下建立文件 创建用户进行FTP认证的用户数据库文件,其中奇数行为账户名,偶数行为密码。
(2)文件加密 db_load -T -t hash -f viruser viruser.db
-T 表示转换 -t 表示加密方式为哈希加密 -f 表示加密文件为/etc/vsftpd/viruser
(3)在/etc/pam.d.viruser 写入以下内容进行安全认证
(4)在配置文件vsftpd.conf文件中写入以下内容 重启服务
(5)测试:虚拟用户成功的登录 进入的都是本地用户的加密目录
虚拟用户配置独立
让虚拟用户相互独立 只能查看自己的家目录
(1)给每个虚拟用户建立自己的家目录
(2)修改配置文件vsftpd.conf
(3)测试
虚拟用户的权限设置
(1)新建目录与文件
在user1文件中写入anon_upload_enable=YES 表示只允许user1上传文件
(2)将vsftpd.conf配置文件中 匿名用户上传文件的功能注释掉
并添加user_config_dir=/etc/vsftpd/viruserdir 指向刚才创建的目录 重启服务
(3)测试结果:user1可以上传文件 其他匿名用户不能上传文件