web安全——防火墙

简介

用于实现服务器(Linux)的访问控制的功能的。
分硬件和软件防火墙。
主要是控制访问的流入和服务器的流出。
通过黑名单和白名单的思想来实现更细粒度的控制,这个一般结合其他的应用来定义策略实现。

概念

黑白名单

可以说防御的思想,主要就是黑白名单的思想!!!!是黑白名单的组合。
黑名单指的是对名单上的ip拒绝提供服务,主要用于拒绝恶意访问和攻击。
白名单指的是对名单上的ip是信任的,不做严格的控制(不限速、不限频率等)。比如说用于测试的时候使用、用于cdn回源下载、第三方防ddos服务的ip等。

服务器类型

不同服务器类型的策略是不一样的。暂时定义几个策略。这个需要根据对服务器的架构职责来划分。

  1. 代理服务器。对外的http服务,一般只开放80端口,同时把请求转发到其他服务器。所以即有外网网卡又有内网网卡。
  2. 业务服务器。不对外提供服务。所以没有外网网卡,只有内网网卡。以最小原则的方式,限制可以通信的端口(具体的每一个开放的端口,都需要明确提供什么服务)。特殊情况是需要外网卡的,比如说调用第三方短信或者邮件服务。
  3. 堡垒机。是日常运维使用的服务器,只对外提供ssh服务。所以即有外网网卡又有内网网卡。

场景

  1. 过滤服务,只开放需要的服务
  2. 控制请求的频率和速度
  3. 对指定ip的访问不控制
  4. 拒绝指定ip的访问

方案

iptables是一个链条,通过对链条规则的操作就可以实现场景的需求。链条是顺序执行的。链条是双向的,包括入和出。限制可以做到网卡级别,不同的网卡限制的规则也是不一样的
例如代理服务器的设置
外网提供服务的防火墙设置思路:

  1. 通过黑名单思想,直接拒绝指定的ip(ip黑名单)访问。
  2. 通过白名单思想,只提供80(端口白名单)端口的访问。
  3. 通过白名单思想,对指定的ip(ip白名单)不设置访问限制。
  4. 限制80端口的访问(频率和流量)。
  5. 拒绝所有服务。

内网提供服务的防火墙设置思路:

  1. 通过白名单思想,直接允许内网的指定端口(具体根据业务,比如数据库、ssh、nfs等)可以访问
  2. 拒绝所有服务。

所以,最重要的是规则设定,以及结合其他的应用实现自动添加黑名单ip。比如说结果nginx分析出恶意ip,然后通过添加到防火墙的黑名单里。

验证方法

这里的验证方法和工具还需要不断的补充

1.通过nmap来验证,端口的开放情况
2.通过ab或者webbench来验证,限制和访问的频率

参考资料

  1. iptables详解
  2. linux下IPTABLES配置详解
  3. netfilter/iptables全攻略
  4. iptables限制同一IP连接数
  5. 使用IPTABLES限制IP上传下载速度,如何用iptables限速?
posted @ 2016-06-28 15:17  庄君祥  阅读(810)  评论(2编辑  收藏  举报