西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > 开发教程 > linux教程 >

CentOS防火墙的设置与优化(2)

时间:2016-04-28 23:37来源:未知 作者:好模板 点击:
3、使用自定义链分成分成等级iptables规则: 如果,防火墙规则很多的话,这样写就显示得很乱,不明了。造成后续添加规则就在很多不便。因为,每种服

3、使用自定义链分成分成等级iptables规则:

如果,防火墙规则很多的话,这样写就显示得很乱,不明了。造成后续添加规则就在很多不便。因为,每种服务的访问量都不一样。简单的合并多个端口的做法并是不很理想。

最好为开放的每个服务都使用一条自定义链。这样,以后我们要为某服务添加或删除规则只要找到该服务对应的自定义链,就可以操作了,很方便。如下:

(1)、为http 80服务自定义一条链

[root@stu13 ~]# iptables -t filter -N http_in

[root@stu13 ~]# iptables -A http_in -d 192.168.60.99 -p tcp --dport 80  -m state --state NEW -j ACCEPT

INPUT链调用该链

[root@stu13 ~]# iptables -I INPUT 2 -d 192.168.60.99 -p tcp --dport 80 -j http_in

如果,使用自定义规则检测数据报文没有匹配到则返回主链INPUT

1

[root@stu13 httpd-2.4.9]# iptables -A http_in -j RETURN

(2)、为https 443 服务自定义一条链

[root@stu13 ~]# iptables -t filter -N https_in

[root@stu13 ~]# iptables -A https_in -d 192.168.60.99 -p tcp --dport 443 -m state --state NEW -j ACCEPT

调用自定义链

[root@stu13 httpd-2.4.9]# iptables -I INPUT 3 -d 192.168.60.99 -p tcp --dport 443 -j https_in

如果,使用自定义规则检测数据报文没有匹配到则返回主链INPUT

[root@stu13 httpd-2.4.9]# iptables -A https_in -j RETURN

(3)、为ssh服务自定义一条链

[root@stu13 ~]# iptables -t filter -N ssh_in

[root@stu13 ~]# iptables -A ssh_in -d 192.168.60.99 -p tcp --dport 22 -m state --state NEW -j ACCEPT

调用该链

[root@stu13 httpd-2.4.9]# iptables -I INPUT 4 -d 192.168.60.99 -p tcp --dport 22 -j ssh_in

如果,使用自定义规则检测数据报文没有匹配到则返回主链INPUT

[root@stu13 httpd-2.4.9]# iptables -A ssh_in -j RETURN

(4)、为vsftp文件服务自定义一条链

[root@stu13 ~]# iptables -t filter -N vsftp_in

[root@stu13 ~]# iptables -A vsftp_in -d 192.168.60.99 -p tcp --dport 21 -m state --state NEW -j ACCEPT

调用该链

[root@stu13 httpd-2.4.9]# iptables -I INPUT 5 -d 192.168.60.99 -p tcp --dport 21 -j vsftp_in

如果,使用自定义规则检测数据报文没有匹配到则返回主链INPUT

[root@stu13 httpd-2.4.9]# iptables -A vsftp_in -j RETURN

(5)、删除INPUT链的第6条规则(端口合并那条链)

1

[root@stu13 httpd-2.4.9]# iptables -D INPUT 6

使用自定义链后,规则表如下:

[root@stu13 ~]# iptables --line-numbers -L -n -v

Chain INPUT (policy DROP 928 packets, 83409 bytes)

num   pkts bytes target     prot opt in     out     source               destination

1     7351  435K ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.60.99       state ESTABLISHED

2        6   312 http_in    tcp  --  *      *       0.0.0.0/0            192.168.60.99       tcp dpt:80

3        0     0 https_in   tcp  --  *      *       0.0.0.0/0            192.168.60.99       tcp dpt:443

4        2   104 ssh_in     tcp  --  *      *       0.0.0.0/0            192.168.60.99       tcp dpt:22

5        2   104 vsftp_in   tcp  --  *      *       0.0.0.0/0            192.168.60.99       tcp dpt:21

6        8   416 ACCEPT     all  --  *      *       0.0.0.0/0            192.168.60.99       state RELATED

7        8   672 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy DROP 0 packets, 0 bytes)

num   pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy DROP 2 packets, 120 bytes)

num   pkts bytes target     prot opt in     out     source               destination

1     5842  751K ACCEPT     tcp  --  *      *       192.168.60.99        0.0.0.0/0           state ESTABLISHED

2        0     0 ACCEPT     all  --  *      *       192.168.60.99        0.0.0.0/0           state RELATED

3        8   672 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0

Chain http_in (1 references)

num   pkts bytes target     prot opt in     out     source               destination

1        6   312 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.60.99       tcp dpt:80 state NEW

2        0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain https_in (1 references)

num   pkts bytes target     prot opt in     out     source               destination

1        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.60.99       tcp dpt:443 state NEW

2        0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain ssh_in (1 references)

num   pkts bytes target     prot opt in     out     source               destination

1        2   104 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.60.99       tcp dpt:22 state NEW

2        0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain vsftp_in (1 references)

num   pkts bytes target     prot opt in     out     source               destination

1        2   104 ACCEPT     tcp  --  *      *       0.0.0.0/0            192.168.60.99       tcp dpt:21 state NEW

2        0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0

说明:

在INPUT链,根据实际应用情况,服务的访问繁忙程序调整,http_in、https_in、ssh_in、vsftp_in的先后顺序,来优化iptables/netfilter

的效率。

有了自定义链后,数据报文的检查流程如下图:

 

CentOS防火墙的设置与优化
 

四、测试优化后的防火墙策略是否成功:

1、测试 http 80 服务

1

2[root@nfs ~]# curl http://192.168.60.99/index.html

 

This Server is OK...

 

2、测试 ssh 服务

[root@nfs ~]# ssh 192.168.60.99

Last login: Mon Aug 18 20:21:25 2014 from 192.168.60.88

3、测试vsftp 服务

D:\>ftp 192.168.60.99

连接到 192.168.60.99。

220 (vsFTPd 2.2.2)

用户(192.168.60.99:(none)): ftp

331 Please specify the password.

密码:

230 Login successful.

ftp> get pub/inittab

200 PORT command successful. Consider using PASV.

150 Opening BINARY mode data connection for pub/inittab (884 bytes).

226 Transfer complete.

ftp: 收到 884 字节,用时 0.07秒 12.63千字节/秒。

ftp>

4、测试ping

(1)、ping本主机

D:\>ping 192.168.60.99

正在 Ping 192.168.60.99 具有 32 字节的数据:

来自 192.168.60.99 的回复: 字节=32 时间=1ms TTL=64

来自 192.168.60.99 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.60.99 的回复: 字节=32 时间<1ms TTL=64

来自 192.168.60.99 的回复: 字节=32 时间<1ms TTL=64

192.168.60.99 的 Ping 统计信息:

数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),

往返行程的估计时间(以毫秒为单位):

最短 = 0ms,最长 = 1ms,平均 = 0ms

(2)、本主机ping别的主机

1

[root@stu13 ~]# ping -c 1 192.168.60.88

PING 192.168.60.88 (192.168.60.88) 56(84) bytes of data.

64 bytes from 192.168.60.88: icmp_seq=1 ttl=64 time=0.590 ms

--- 192.168.60.88 ping statistics ---

1 packets transmitted, 1 received, 0% packet loss, time 5ms

rtt min/avg/max/mdev = 0.590/0.590/0.590/0.000 ms

(3)、回环地址

1

[root@stu13 ~]# ping -c 1 127.0.0.1

PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.375 ms

--- 127.0.0.1 ping statistics ---

1 packets transmitted, 1 received, 0% packet loss, time 0ms

rtt min/avg/max/mdev = 0.375/0.375/0.375/0.000 ms

(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容