Linux 防火墙应用

企业中的防火墙安全配置原则:

            尽可能不给服务器配置外网IP,可以通过代理转发或者通过防火墙进行映射。

            并发不是特别大情况有外网IP,可以开启防火墙服务.

            一般大并发的情况下不能开iptables,影响性能,利用硬件防火墙提升架构安全



iptables防火墙使用时名词概念解释

容器的概念:即为装东西的器皿,docker容器技术,将镜像装在一个系统上,这个系统就称为容器

iptables称为一个容器:装着防火墙的表

防火墙的表又是一个容器:装着防火墙的链

防火墙的链也是一个容器:装着防火墙的规则

1394671-20190311095008589-339082799.png

规则即为:防火墙一条一条的安全策略


  防火墙匹配规则流程图:

1394671-20190311095739375-1389102086.png

 具体流程为:

  (1).防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的

  (2).如果匹配上规则,即明确表示是阻止还是通过,数据包就不再向下匹配新的规则

  (3).如果未匹配上就一直向下进行匹配,直到匹配上为止

  (4).防火墙的默认规则是所有规则执行完才执行的

  防火墙四表五链说明:

1394671-20190311103415317-738954236.png


防火墙操作实践:

1.防火墙配置初试化:

  /etc/init.d/iptables start/status/stop -----启动停止防火墙

  chkconfig     iptables   on      -----加入开机自启

  iptables   -F  -----清除防火墙默认规则

  iptables   -X  -----清除防火墙自定义链

  iptables   -Z  -----清除防火墙技术信息

 2.iptables防火墙信息查看方法:

  service iptables status  ------查看防火墙的状态信息

  iptables  -L          ------ -L 以列表形式展示所有规则信息

  iptables  -L  -n       ------ -n 以数字形式显示IP地址或端口信息,不要转换为字符串显示

  iptables  -t nat  -L -n     ------ -t 表示指定查看或者配置相应的表

  iptables  -L  -n  -v       ------ -v 表示显示详细规则信息,包含匹配计数器数值信息

  iptables  -L  -n  --line-number    ------ --line-number   显示规则序号信息

3.iptables防火墙端口规则配置:


  (1).阻止用户访问服务器的22端口:


  首先需要清除原有的防火墙的规则:iptables  -F 


  之后:iptables -t filter -A INPUT -p tcp --dport 22 -j DROP         ---- -A表示添加规则到相应链,默认加到结尾


  也可以直接:iptables -t filter -I INPUT -p tcp --dport 22 -j DROP    ---- -I 表示插入规则到相应链上,默认加到首部


  iptables -t filter -I INPUT 3 -p tcp --dport 22 -j DROP --- 指定规则插入位置


  iptables -t filter -R INPUT 6 -p tcp --dport 8080 -j DROP   --- -R 指定将配置好的规则信息进行替换


  iptables -t filter -D INPUT 规则序号


  总结防火墙参数信息:


-A   --- 表示将规则添加到指定链上

-I   --- 表示将规则插入到指定链上

-D   --- 表示将规则从指定链上删除

-R   --- 表示将规则信息进行修改

-p   --- 指定相应服务协议信息(tcp udp icmp all)

--dport    --- 表示指定目标端口信息

--sport    --- 表示指定源端口号信息

 -j   --- 指定对相应匹配规则执行什么操作(ACCEPT DROP* REJECT)

  注:这里的DROP表示静默拒绝,对方找不到原因,REJECT表示告诉对方我拒绝了你,推荐用DROP


  (2).阻止相应网段主机访问服务器指定端口服务


  192.168.1.0/24   -- 22端口(阻止)


  iptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j DROP


  iptables -t filter -A INPUT -s 192.168.1.175 -p tcp --dport 22 -j DROP


     iptables -t filter -A INPUT -i eth0 -s 10.0.0.9 -p tcp --dport 22 -j DROP


  总结参数信息:


-s   --- 指定匹配的源地址网段信息,或者匹配的主机信息

-d   --- 指定匹配的目标地址网段信息,或者匹配的主机信息

-i    --- 指定匹配的进入流量接口信息 只能配置在INPUT链上

-o   --- 指定匹配的发出流量接口信息 只能配置在OUTPUT链上

    (3).除了某个地址可以访问22端口之外,其余地址都不能访问


  只允许192.168.1.5访问22端口,其余都不可以访问


  iptables -t filter -A INPUT -s 192.168.1.5 -p tcp --dport 22 -j ACCEPT


  iptables -t filter -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j DROP


  iptables -t filter -A INPUT ! -s 192.168.1.5 -p tcp --dport 22 -j ACCEPT(通过利用 !进行规则取反,进行策略控制)


  (4).指定阻止访问多个端口服务:


  22-80,22,24,25


  iptables -A INPUT -s 192.168.1.175 -p tcp --dport 22:80 -j DROP


  iptables -A INPUT -s 192.168.1.175 -m multiport  -p tcp --dport 22,24,25 -j DROP


  总结参数信息:


  -m   --指定应用扩展模块参数     multiport    ---可以匹配多个不连续端口信息


  (5).通过防火墙实现禁ping功能


  实现ping功能测试链路是否正常,基于icmp协议实现的,


  icmp协议有多种类型:icmp-type 8:请求类型  icmp-type 0:回复类型


  情景一:实现禁止主机访问防火墙服务器(禁ping)


  iptables -A INPUT -p icmp --icmp-type 8 -j DROP

       iptables -A OUTPUT -p icmp --icmp-type 0 -j DROP


  情景二:实现禁止防火墙访问主机服务器(禁ping)


  iptables -A OUTPUT -p icmp --icmp-type 8 -j DROP

       iptables -A INPUT -p icmp --icmp-type 0 -j DROP


  默认情况:所有icmp类型都禁止

       iptables -A INPUT -p icmp -m icmp --icmp-type any -j DROP

       iptables -A OUTPUT -p icmp -m icmp --icmp-type any -j DROP


  (6).实现防火墙状态机制控制


  NEW: 发送数据包里面控制字段为syn=1,发送第一次握手的数据包

       ESTABLISHED: 请求数据包发出之后,响应回来的数据包称为回复的包

       RELATED: 基于一个连接,然后建立新的连接

       INVALID: 无效的的数据包,数据包结构不符合正常要求的


  iptables -A INPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

企业中应用防火墙的方法:

部署一个最安全的企业级防火墙案例:默认规则是不允许的状态最安全

1394671-20190311122500403-1248538796.png


1)保存防火墙配置文件信息

    cp /etc/sysconfig/iptables{,.bak}


  2)清除配置规则

    iptables -F    <- 清空iptables所有规则信息(清除filter)

    iptables -X    <- 清空iptables自定义链配置(清除filter)

    iptables -Z    <- 清空iptables计数器信息(清除filter)


  3)别把自己踢出到门外

    iptables -A INPUT -s 10.0.0.1 -p tcp --dport 22 -j ACCEPT

    iptables -A INPUT -s 10.0.0.0/24 -p tcp --dport 22 -j ACCEPT


  4)配置防火墙filter上各个链的默认规则

    iptables -P INPUT DROP

    iptables -P FORWARD DROP

    iptables -P OUTPUT ACCEPT


  -P   ---指定相应链的默认规则策略,是允许还是阻止


  5)允许iptables服务端ping自己的网卡地址

    iptables -A INPUT -i lo -j ACCEPT   --- 让自己可以ping自己


  6)指定外网可以访问的端口信息

    iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT


  7)企业中内网之间不要配置防火墙策略

    iptables -A INPUT -s 172.16.1.0/24 -j ACCEPT  --- 允许架构内部服务进行访问


  8)企业之间有合作关系的,不要将友商的网络禁止(主要经常改动)

    iptables -A INPUT -s 10.0.1.0/24 -j ACCEPT    --- 允许一些合作企业的外网服务器进行访问

    iptables -A INPUT -s 10.0.2.0/24 -j ACCEPT


  9)如果防火墙上配置了FTP服务,需要配置网络状态机制

    iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT  --- 允许web服务与ftp服务器建立连接


 10)实现iptables策略配置永久保存

    ①. 利用防火墙启动脚本命令参数,实现永久保存

    /etc/init.d/iptables save

    ②. 利用防火墙配置信息保存命令,实现永久保存

    iptables-save >/etc/sysconfig/iptables



本文转载于 https://www.cnblogs.com/datastart/p/10509184.html






发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero

WX:xcs345525801 QQ:345525801 Tel:19521445850 Email:xcssh868@163.com

Copyright © 2020 许承胜个人博客 版权所有 备案号:皖ICP备18014705号-1