一、简述

1. 部署企业级防火墙两种思路

  1. 默认规则默认是允许的状态。
    逛公园的思路,只阻止指定的人员进入
  2. 默认规则默认是不允许的状态[更安全]。
    看电影的思路,只允许指定的人员进入

2. 防止自己被踢出门外

操作过程中,有可能配置错误导致自己也被阻断SSH连接,处理此问题的方法如下

  1. 去机房重启系统或登录服务器删除刚才的禁止规则
  2. 让机房人员重启服务器或者让机房人员拿用户密码登录进去
  3. 通过服务器的远程管理卡管理
  4. 先写一个定时任务,每5分钟就停止防火墙 [预防为主,推荐]
  5. 测试环境测试好,写成脚本,批量执行[预防为主,推荐]

二、配置实战

  1. 备份防火墙配置文件信息
1
cp /etc/sysconfig/iptables{,.bak}
  1. 配置规则清除
1
2
3
iptables -F
iptables -X
iptables -Z
  1. 别把自己踢出到门外
1
2
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
  1. 配置防火墙filter上各个链的默认规则
1
2
3
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
  1. 允许本机lo通信规则
1
iptables -A INPUT -i lo -j ACCEPT
  1. 指定外网可以访问的端口信息
1
iptables -A INPUT -p tcp -m multiport --dport 80,443 -j ACCEPT
  1. 内网之间不要配置防火墙策略
    放开内网网段之间的访问
1
iptables -A INPUT -s 172.16.1.0/24 -j ACCEPT
  1. 允许某些外网访问
    如合作企业,异地机房等
1
2
iptables -A INPUT -s 10.0.1.0/24 -j ACCEPT
iptables -A INPUT -s 10.0.2.0/24 -j ACCEPT
  1. 允许关联的状态包通过
1
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
  1. 允许icmp类型协议通过[ping.非必须]
1
2
3
iptables -A INPUT -p icmp -m icmp-type any -j ACCEPT
提示:如果不想开,就不执行此命令,或者如下仅允许指定IP可以ping
iptables -A INPUT -p icmp -s 10.0.0.0/24 -m icmp --icmp-type any -j ACCEPT

三、保存配置

  1. 用防火墙启动脚本命令参数,实现永久保存
1
/etc/init.d/iptables save 

保存到/etc/sysconfig/iptables 下面,以后重启,会自动调用此文件中的配置
2. 利用防火墙配置信息保存命令,实现永久保存

1
iptables-save >/etc/sysconfig/iptables
  1. 保存文件查看
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Mon Aug 15 01:33:44 2016
*nat
:PREROUTING ACCEPT [1413:153792]
:POSTROUTING ACCEPT [132:8834]
:OUTPUT ACCEPT [132:8834]
COMMIT
# Completed on Mon Aug 15 01:33:44 2016
# Generated by iptables-save v1.4.7 on Mon Aug 15 01:33:44 2016
*filter
:INPUT DROP [1798:662465]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [288:21100]
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s 10.0.0.0/24 -p tcp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT

# Completed on Mon Aug 15 01:33:44 2016