FTP服务器安全配置
1、FTP简介
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:“下载”(Download)和“上传”(Upload)。“下载”文件就是从远程主机拷贝文件至自己的计算机上;“上传”文件就是将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。
2、FTP服务器架设
测试环境 centos 6.6,ftp选择vsftp
安装vsftpd
yum install vsftpd -y
运行服务
/etc/init.d/vsftpd -y
初始安装完成,初始安装完成后允许任意用户直接登录,可以下载其中的文件
3、错误配置及利用
3.1 允许匿名用户直接登录,下载文件
3.2 配置不当存在弱口令
3.3 权限配置不当
3.4 proFTPd 未授权的文件拷贝(CVE-2015-3306)
在proFTPd版本小于1.3.5的条件下,登陆proftp后(未授权或者爆破),使用cpfr和cpto,能够拷贝主机中的文件,如果在知道web目录的绝对情况下,有可能写入webshell
具体攻击方法参考
4、实际案例
4.1 FTP未授权访问
4.2 FTP弱口令
5、修复方案
修复方案使用vsftp的配置文件作为标准
5.1 禁止匿名访问
vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO
5.2 增强口令强度
避免弱口令
5.3 进行访问限制
使用iptables做ACL FTP分为主动式和被动式,书写防火墙规则是要注意
5.3.1 主动式
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -p tcp -m multiport --dport 20,21 -m state --state NEW -j ACCEPT
5.3.2 被动式
vim /etc/modprobe.conf alias ip_conntrack ip_conntract_ftp ip_nat_ftp vim /etc/rc.local /sbin/modprobe ip_conntract /sbin/modprobe ip_conntrack_ftp /sbin/modprobe ip_nat_ftp
假设vsftpd.conf中得相关配置如下
pasv_enable=YES pasv_min_port=2222 pasv_max_port=2225
防火墙规则可写为
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 2222:2225 -j ACCEPT
6、漏洞扫描与发现
先使用nmap对21端口的开放情况进行扫描,然后使用hydra或者medusa进行登陆验证或者暴力破解 端口扫描
nmap -Pn -p21 ip
登陆验证或者端口扫描
medusa -H ip.txt -U user.txt -P passwd.txt -M ftp #hydra不支持批量的导入 hydra -L username.txt -P passwd.txt ftp://ip