Linux系统的FTP安全优化
FTP
- FTP(File Transfer Protocol,文件传输协议) 是 INTERNET上仍常使用的最老的 络协议之一,也是TCP/IP 协议组中的协议之一它为系统提供了通过 络与远程服务器进行传输的简单方法
- 在 RED HAT ENTREPRISE LINUX 6中 ,FTP服务器包的名称为VSFTPD,它代表Very Secure File TransferProtocol Damon服务器名称也叫做 vsftpd
- 默认配置文件让Anonymous用户只能下载位于chroot目录中的内容。/var/ftp/这意味着远程FTP客户端能以用户anonymous或ftp身份连接到服务器(无需密码),并从ftp服务器上的/var/ftp/目录下载文件(其本地ftp用户可以读取这些文件)
- FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发 站的时候,通常利用FTP协议把 页或程序传到Web服务器上
- 由于FTP传输效率非常高,在 络上传输大的文件时,一般也采用该协议
- 默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息
- 是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定
FTP实验环境
在部署ftp服务之前,首先给自己的server虚拟机配置一个静态ip
ip addr show br0 #查看ip是否配置成功
hostnamectl set-hostname ftpserver #更改server虚拟机名称为ftpserver
配置好对应版本的yum源
selinux设置为disabled模式getenforce #查看selinux的状态
这里查看状态时如果是disabled就可以,如果是enforceing则要vim /etc/sysconfig/selinux`更改状态为disabled,更改完毕之后需要reboot才能生效
FTP服务的基本信息
ftp服务名称(软件安装包):vsftpd
ftp默认发布目录: /var/ftp
默认发布目录的子目录: /var/ftp/pub/
协议接口: 21/tcp
服务配置文件: /etc/vsftpd/vsftpd.conf
FTP 错解析
500 | 文件系统权限过大 |
---|---|
530 | 用户认证失败 |
550 | 服务本身功能未开启 |
553 | 本地文件系统权限过小 |
FTP的安装
ftp服务的安装,实际上就是搭建一个ftp服务器,lftp作为客户端连接ftp服务器,lftp也需要单独安装
可以看到,vsftpd软件已成功安装
FTP配置参数的修改
匿名用户登陆限制
anonymous_enable=YES #允许匿名用户登录ftp服务器,默认为YES
anonymous_enable=NO #不允许匿名用户登录ftp服务器
匿名用户上传
write_enable=YES
anon_upload_enable=YES
chgrp ftp /var/ftp/pub #匿名用户默认是以ftp用户身份访问ftp服务器的,所以将ftp目录的所有组修改为ftp,并且赋予较大的权限,匿名用户才能上传
chmod 775 /var/ftp/pub
匿名用户家目录的修改
anon_root=/westos
匿名用户上传文件默认权限修改
anon_umask=022
匿名用户建立目录
anon_mkdir_write_enable=YES
匿名用户下载
anon_world_readable_only=YES|NO NO表示匿名用户可以下载
匿名用户删除
anon_other_write_enable=YES|NO
匿名用户用户身份修改
chown_uploads=YES
chown_username=student
最大上传速率
anon_max_rate=102400
本地用户设定
本地用户登录权限设定
local_enable=YES #允许本地用户登录
local_enable=NO #不允许本地用户登录
本地用户写权限限制
write_enable=YES|NO ##本地用户写权限限制
本地用户家目录修改
local_root=/dir
本地用户上传文件权限限制
local_umask=022
限制本地用户浏览
chroot_local_user=YES
chmod u-w /home/*
本地用户黑名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
本地用户白名单
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
vim chroot_list
限制本地用户登陆
用户白名单
userlist_deny=NO
/etc/vsftpd/user_list #只有白名单中出现的用户可以登陆ftp
虚拟用户的设定
vim /etc/vsftpd/westosfile #文件名称任意,设定虚拟机的登录用户名和密码这个虚拟账 实际上不存在
db_load | -T | -t | hash | -f | /etc/vsftpd/westosfile | /etc/vsftpd/westosfile.db |
---|---|---|---|---|---|---|
加密命令 | 转换 | 建立 | 加密方 | 文件 | 被加密文件 | 加密过的文件 |
pam_service_name=westos #查看vsftpd.conf文件,认证的时候使用pam认证,将指向改为westos文件,使westos文件中的账 和密码生效
guest_enable=YES #允许游客登录
ftp虚拟帐 身份指定
guest_username=ftp #默认使用虚拟用户时,登录后在pub目录,要想改变此参数,修改此参数,修改后登录到westos家目录
ftp虚拟帐 家目录的独立设定
虚拟用户登陆不再处在以ftp用户的身份登陆默认的目录下
vim /etc/vsftpd/vsftpd.conf
local_root=/ftpuserhome/ U S E R u s e r s u b t o k e n = USER user_sub_token= USERusers/span>ubt/span>oken=USER
虚拟帐 配置独立
chgrp ftp /ftpuserhome -R
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf
vim /etc/vsftpd/userconf/user1
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24697 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!