Linux防火墙白名单设置

在linux系统中安装yum install iptables-services

然后 vi /etc/sysconfig/iptables

# Generated by iptables-save v1.4.7 on Sun Aug 28 12:14:02 2016
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#这里开始增加白名单服务器ip(请删除当前服务器的ip地址)
-N whitelist
-A whitelist -s 8.8.8.8 -j ACCEPT
-A whitelist -s x.x.x.x -j ACCEPT
#这些 ACCEPT 端口号,公网内网都可访问
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允许接受本机请求之后的返回数据 RELATED,是为FTP设置的
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 13020 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1000:8000 -j ACCEPT  #开放1000到8000之间的所有端口
#下面是 whitelist 端口号,仅限 服务器之间 通过内网 访问
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j whitelist
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j whitelist
#为白名单ip开放的端口,结束
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT

 

解释:

添加防火墙过滤规则步骤如下;

1、查看现有防火墙过滤规则:

 iptables -nvL --line-number

2、添加防火墙过滤规则(设置白名单):

       1)添加白名单

iptables -I INPUT 3 -s 136.6.231.163 -p tcp --dport 1521 -j ACCEPT

            命令详解:

             -I:添加规则的参数  

               INPUT:表示外部主机访问内部资源

    规则链:

       1)INPUT——进来的数据包应用此规则链中的策略
       2)OUTPUT——外出的数据包应用此规则链中的策略
       3)FORWARD——转发数据包时应用此规则链中的策略
       4)PREROUTING——对数据包作路由选择前应用此链中的规则 (记住!所有的数据包进来的时侯都先由这个链处理)
     5)POSTROUTING——对数据包作路由选择后应用此链中的规则(所有的数据包出来的时侯都先由这个链处理)

                3:表示添加到第三行(可以任意修改)

               -s:指定作为源地址匹配,这里不能指定主机名称,必须是IP;

               -p: 用于匹配协议的(这里的协议通常有3种,TCP/UDP/ICMP)

               --dport: 用于匹配端口号

               -j: 用于匹配处理方式:

                   常用的ACTION:

        DROP:悄悄丢弃,一般我们多用DROP来隐藏我们的身份,以及隐藏我们的链表
                REJECT:明示拒绝
                ACCEPT:接受
        2)查看添加结果

iptables -nvL --line-number

 然后重启防火墙即可生效 
重启防火墙的命令:service iptables restart 

此时,防火墙规则只是保存在内存中,重启后就会失效。

使用以下命令将防火墙配置保存起来;

保存到配置中:service iptables save (该命令会将防火墙规则保存在/etc/sysconfig/iptables文件中。)

 -----------------------------------------------------------------------------------

附:

开放端口段3000~3008

iptables -A INPUT -p tcp --dport 3000:3008 -j ACCEPT

开放ip段

iprange模块提供了两个匹配参数:
--src-range: 匹配来源地址的范围,例如,iptables -A INPUT -p tcp -m iprange --src-range 192.168.0.2-192.168.0.61 -j DROP
--dst-range: 匹配目的地址的范围,例如,iptables -A OUTPUT -p tcp -m iprange --dst-range 192.168.0.2-192.168.0.61 -j DROP 

禁止用户访问www.baidu.com
iptables -I FORWARD -d www.baidu.com -j DROP

 

iptables—命令(-A、-I、-D、-R、-L等)、

1、常用命令列表:  常用命令(-A追加规则、-D删除规则、-R修改规则、-I插入规则、-L查看规则)
命令-A,--append
范例 iptables -A INPUT ...
说明新增规则(追加方式)到某个规则链(这里是INPUT规则链)中,该规则将会成为规则链中的最后一条规则。

命令-D,--delete
范例 iptables -D INPUT --dport 80 -j DROP
iptables -D INPUT 1
说明 从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。

命令-R, --replace
范例 iptables -R INPUT1-s 192.168.0.1 -j DROP
说明取代现行规则,规则被取代后并不会改变顺序。(1是位置)

命令-I,--insert
范例 iptables -I INPUT1--dport 80 -j ACCEPT
说明插入一条规则,原本该位置(这里是位置1)上的规则将会往后移动一个顺位。

命令-L, --list
范例 iptables -L INPUT
说明 列出某规则链中的所有规则。

命令-F, --flush
范例 iptables -F INPUT
说明 删除某规则链(这里是INPUT规则链)中的所有规则。

命令-Z,--zero
范例 iptables -Z INPUT
说明 将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具。

命令-N, --new-chain
范例 iptables -N allowed
说明 定义新的规则链。

命令-X, --delete-chain
范例 iptables -X allowed
说明 删除某个规则链。

命令-P, --policy
范例 iptables -P INPUT DROP
说明 定义过滤政策。 也就是未符合过滤条件之封包,预设的处理方式。

命令-E,--rename-chain
范例 iptables -E allowed disallowed
说明 修改某自订规则链的名称。
View Code

释义,可参考:Centos7.0-iptables linux的出站入站端口维护

 Iptables防火墙规则使用梳理

规则的删除等:linux下iptables的使用下面是可能用于防止慢连接攻击的方式

#处理IP碎片数量,防止攻击,允许每秒100个
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
#设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包
iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

 

posted @ 2019-06-20 15:28  君子笑而不语  阅读(21849)  评论(0编辑  收藏  举报