本文发布于Cylon的收藏册,转载请著名原文链接~

生产环境配置主机防火墙有两种模式:

逛公园及看电影两种模式:

逛公园:默认随便出进,对非法的分子进行拒绝。企业应用:企业配置上网网关路由。

看电影:默认没有票进不去。花钱买票才能看电影。企业应用:服务器主机防火墙。

很显然:第二种更严格,更安全。

逛公园及看电影两种模式本事就是防火墙的默认规则是允许还是拒绝。

1.清理当前所有规则和计数器

1
2
3
iptables -F
iptables -Z
iptables -X

2.配置允许SSH登陆端口进入

1
2
iptables -A INPUT -p tcp --dport 52113 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.1.0/30 -j ACCEPT

提示:此步骤是为了防止执行下面的步骤,把自己关在外面,除非你在本地处理,这部可以不做。


3.设置允许本机lo通讯规则

1
2
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT # output加不加都行,在工作环境上是加的

4.设置默认的防火墙禁止和允许规则

1
2
3
 iptables -P INPUT DROP
 iptables -P FORWARD DROP
 iptables -P OUTPUT ACCEPT

一般情况下OUTPUT我们不要drop,像电影院一样,电影已经看完了,中间不想看就回家了,你不可能说不行不能走,所以一般出去没人管,进来才收票,OUTPUT一般不设置,但是不设置也有风险,企业流量暴涨,由于服务器中病毒外发流量。

查看结果

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  192.168.1.0/27       0.0.0.0/0           tcp dpt:52113 
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0 

5.开启网段信任

允许IDC LAN/WAN和办公网ip的访问,及对外合作机构访问

办公室固定IP段,IDC机房内网网段,其他机房内网网段,IDC机房外网网段

例:

1
iptables -A INPUT -p all -s 192.168.1.0/27 -j ACCEPT

安全提示:要细化到掩码最小,租用阿里云攻击同网段案例


6.允许icmp类型协议通过

1
iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT

注: 如果不想开,就不执行此行命令。如果对内网开,对外不开就用下面方式。


1
iptables -A INPUT -p icmp -s 10.0.0.0/24 -m icmp --icmp-type any -j ACCEPT

8.允许关联的状态包通过(web服务不要使用FTP)

通过其他服务器扫描我们配置的防火墙:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
$  nmap 192.168.1.5 -p 1-65535 # 时间很长
Starting Nmap 5.51 ( http://nmap.org ) at 2016-10-31 01:24 CST
Nmap scan report for 192.168.1.5
Host is up (0.00024s latency).
Not shown: 65533 filtered ports
PORT      STATE SERVICE
80/tcp    open  http
52113/tcp open  unknown
MAC Address: 00:0C:29:BE:2D:75 (VMware)

Nmap done: 1 IP address (1 host up) scanned in 117.86 seconds

在命令行操作的每一条命令都是在内存里 ,没有写入磁盘里,重启服务就丢了

在上面的命令行配置中所有的命令结果仅仅存在放于内存中,重启服务就会丢失。因此,我们有必要保存成配置文件。 法一:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$ /etc/init.d/iptables save
iptables:将防火墙规则保存到 /etc/sysconfig/iptables:[确定]
$ cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Tue Nov 15 02:50:43 2016
*filter
:INPUT DROP [133073:5855518]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [202:14432]
-A INPUT -s 192.168.1.0/27 -p tcp -m tcp --dport 52113 -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A OUTPUT -o lo -j ACCEPT 
COMMIT
# Completed on Tue Nov 15 02:50:43 2016

法二:

1
$ iptables-save >/etc/sysconfig/iptables

提示:/etc/sysconfig/iptables为iptables的默认配置文件路径

提示:第一次保存可以覆盖,以后保存只能追加


本文发布于Cylon的收藏册,转载请著名原文链接~

链接:https://www.oomkill.com/2016/10/ch3-iptables-configuration/

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」 许可协议进行许可。