iptables介绍

1、防火墙的作用

 防火墙是存在于内部网络和外部网络之间的软件或硬件系统,主要作用是根据设定的安全策略,允许计算机的哪些服务可以被远程用户或站点访问,或者阻止内部重要信息向外流出,有双向监督功能。

2、基于Netfilter的iptables防护墙

2.1、iptables数据包传输流程

 

如果目的地址为本地的数据包被INPUT规则链的规则所接受,数据包就会在本地传送,如果数据包被FOWEARD规则链的规则所接受,数据包就会被送出相应的接口

经过本地处理后的外出数据包被送到OUTPUT规则链,如果被规则链接受,就会被送出到相应的接口

基于这个原理在项目中为了安全考虑,我们限制了INPUT的规则,使一部分可以通过规则链请求服务器的服务,加强了系统的安全性

2.2、常见的iptables基本语法

三个规则链:

1.INPUT——进来的数据包应用此规则链中的策略

2.OUTPUT——外出的数据包应用此规则链中的策略

3.FORWARD——转发数据包时应用此规则链中的策略

语法:

    1

    2

    3

    4

iptable <option> <chain> <matching criteria> <target>

 

示例:

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

 

说明:上面示例的意思是允许请求服务的22端口,下面将参数进行说明

-A:在指定链的末尾添加一条新的规则

-D:从规则链中删除条目;

-I:向规则链中插入条目;

-R:替换规则链中的条目;

-L:显示规则链中已有的条目;

-F:清除规则链中已有的条目;

-p:匹配协议(tcp,udp,icmp)

--dport: 匹配目标端口号

-j:控制允许类型(ACCEPT|DROP )

删除已添加的iptables规则——使用-D参数

    1

    2

#假设之前用iptables -A INPUT -s 192.168.1.4 -j DROP 添加的规则

iptables -D INPUT -s 192.168.1.4 -j DROP

 

修改规则——使用-R参数

    1

    2

#假设之前用iptables -A INPUT -s 192.168.1.4 -j DROP 添加的规则

iptables -R INPUT -s 192.168.1.4 -j DROP

屏蔽ip——使用-I参数

    1

    2

iptables -I INPUT -s 123.45.6.7 -j DROP       #屏蔽单个IP的命令

iptables -I INPUT -s 123.0.0.0/8 -j DROP      #封整个段即从123.0.0.1到123.255.255.254的命令

在集群加固的过程中,我们需要让集群之间保通信,所有需要放开对特定IP的端口段

    1

-A INPUT -s 10.66.64.130/32 -p tcp -m tcp --dport 1024:65535 -j ACCEPT

添加好后永久生效

    1

    2

service iptables save #保存

service iptables restart #重启iptables防火墙

 

当已经添加好一个规则后,再次添加时还会成功,为了防止规则链重复

    1

    2

    3

    4

    5

    6

    7

最近的iptables版本中有一个新的-C --check选项。

# iptables -C INPUT -p tcp --dport 8080 --jump ACCEPT

iptables: Bad rule (does a matching rule exist in that chain?).

# echo $?

1

$1是输出上次命令的执行结果

返回为0说明是已经存在

 

2.3、iptables的基本原理表和链

有点复杂,先上图:

 

 

用户请求web服务器时先将报文发送到网卡,信息通过内核的tcp协议传输到用户空间中的web服务

所以我们可以在内核中设置关卡,对进出的报文加以控制,这些关卡就是iptables中的规则链

对于iptbale防火墙是有规则链组成的,不同功能的规则放在不同的表中进行管理

而iptables已经为我们定义了4种表,下面分别说明这几个表的作用

 

filter表:负责过滤功能,防火墙;内核模块: iptables_filter

nat 表: network address translation,网络地址转换功能;内核模块: iptables_nat

mangle表:拆解报文,做出修改,并重新封装的功能; iptables_mangle

raw表:关闭nat表上启用的连接追踪机制; iptables_raw

 

如上图所示:

    1

    2

    3

    4

    5

PREROUTING 的规则可以存在于:raw表,mangle表,nat表

INPUT 的规则可以存在于:mangle表,filter表

Forward 的规则可以存在于:mangle表,filter表

OUTPUT的规则可以存在于:raw表 mangle表 nat表 filter表

POSTROUTING 的规则可以存在于 :mangle表,nat表

当数据通过同一条链上的四个表时,执行的顺序:raw->mangle->nat->filter

那么表和链的关系就很清楚了,当数据包通过一条链时,往往会当前链的所有规则都匹配一遍,这样就会按上面的顺序经过不同的表,通过匹配的规则对数据包进行丢弃、转发或者拒绝操作,这样就可以控制别人对服务器数据的访问了。

最后网络安全是当今互联网最关注的问题之一,我们当树立安全意识。了解网络安全的基本常识。防止信息被窃取利用。

posted @ 2021-07-16 16:15  卯仙  阅读(336)  评论(0编辑  收藏  举报