FTP服务以及安全加固

来源:互联网 发布:淘宝产品详情页尺寸 编辑:程序博客网 时间:2024/05/29 17:17

FTP默认控制端口:21  默认数据端口:20

 

VSFTPD服务  very safe FTP daemon(守护)

 

主动模式:端口默认

被动模式:数据端口由FTP服务器和客户端双方协商确定。(优势:防火墙兼容性好)

 

1.  安装  yum install vsftpd

2.  配置  /etc/vsftpd/vsftpd.conf

      命令行 删除注释掉的内容(行首为#) :1,$ g/^#/d 

             ^表示行首,$表示行尾

3.      启动 chkconfigvsftpd on

                    Service vsftpd start

4.      防护 iptables/selinux

                    Iptables : tcp 20,21

        重启iptables

5.    测试 yuminstall ftp

                    ftp 192.168.0.115

默认root用户不能登陆,可使用普通用户或匿名用户anonymous登陆

 

vsftpd.conf文件:

anonymous_enable=YES

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=YES

 

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

~                  

 

 

userlist_enable=YES   启用配置文件userlist :   /etc/vsftpd/user_list

1.      userlist_enable=YES   

userlist_deny=YES 

user_list即为黑名单,若无userlist_deny参数,则默认user_list为黑名单。

2.      userlist_deny=NO 则user_list为白名单,此时ftpusers为黑名单。

 

此时实验测试ftp登陆会出现2个问题:

1.      普通用户不能登陆,selinux作了限制,root用户登陆碰到530问题。

2.      路由route问题。需要把模式从主动修改为被动。

 

 

对于第1个问题:

查看se服务的bool值  getsebool –a|grep ftp

修改se服务的bool值  setsebool –P ftp_home_dir=1

此时本机可用普通用户登陆成功,可使用命令切换至上层目录,存在安全性问题。

 

针对此问题,修改配置文件:vsftpd.conf

 

pasv_enable=YES     使用被动模式

pasv_min_port=9000   最小数据端口号

pasv_max_port=9900   最大数据端口号

 

chroot_list_enable=YES 启用chroot_list文件,可阻止用户切换至上层目录

chroot_list_file=/etc/vsftpd/chroot_list

 

建立文件chroot_list,其中每个用户占据一行。

修改iptables:tcp 9000:9900;

重启vsftpd和iptables服务;

测试命令ftp登陆,或用浏览器:ftp://username@XXX.XXX.XXX.XXX

                                                        Or:  ftp://username:passwd@XXX.XXX.XXX.XXX

 

 

 

启用user_list,修改vsftpd.conf:

userlist_enable=YES

userlist_deny=NO

 

此时user_list为白名单,ftpusers为黑名单。

添加用户至白名单或黑名单,重启服务,测试。

 

/etc/hosts.allow

/etc/hosts.deny

文件内容格式:

                            <service>:network/host

                            ALL:ALL

例:sshd:102.168.0.116

         Sshd:192.168.0.0/255.255.255.0(此时不能使用192.168.0.0/24的写法)

 

iptables简单说明:

-A代表附加规则

-P 协议

-j  动作: ACCEPT 接收  REJECT 拒绝  DROP 丢弃

-s  源地址

-d  目的地址

-m multiport 不连续的端口:

-A INPUT –p tcp –m multiport –dport 20,21,23–j ACCEPT

此时不能在用A:B写法