iptable 详解

[toc]

复制其他人的博客时 学到了左键和右键的屏蔽 <body oncontextmenu=self.event.returnValue=false onselectstart="return false">

iptable

  • iptable其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫netfilter
    netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。

用处

使用iptable来执行我们编辑的规则,一般的连接是通过端口进行发送数据包,在此之前来判断此数据包是否满足规则,满足则执行 放行(accept),拒绝(reject),丢弃(drop);

  • netfilter 就是执行这些规则的内核,有input和output链,
    但是一个数据包的传输过程是有很多的:分为 “路由前”、”转发”、”路由后”,他们的英文名是PREROUTING、FORWARD、POSTROUTING;
    netfilter就在这些过程中设置了很多规则,

我们对每个”链”上都放置了一串规则,但是这些规则有些很相似,所以把相同功能的规则放到一起,这种集合称为表.
filter表:负责过滤功能,防火墙;内核模块:iptables_filter
nat表:network address translation,网络地址转换功能;内核模块:iptable_nat
mangle表:拆解报文,做出修改,并重新封装 的功能;iptable_mangle
raw表:关闭nat表上启用的连接追踪机制;iptable_raw

表链

根据这个表划分上面的链的上面的规则 或者说,可以分为每个”链”中的规则都存在于哪些”表”中。
PREROUTING 的规则可以存在于:raw表,mangle表,nat表。
INPUT 的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有)。
FORWARD 的规则可以存在于:mangle表,filter表。
OUTPUT 的规则可以存在于:raw表mangle表,nat表,filter表。
POSTROUTING 的规则可以存在于:mangle表,nat表

因为数据包经过一个”链”的时候,会将当前链的所有规则都匹配一遍,但是匹配时总归要有顺序,所以就有表的优先级问题
raw –> mangle –> nat –> filter

规则

匹配条件

源ip,目的ip,还有扩展条件的匹配:源端口目的端口等

处理动作

  • ACCEPT:允许数据包通过。
  • DROP:直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。
  • REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。
  • SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。
  • MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上。
  • DNAT:目标地址转换。
  • REDIRECT:在本机做端口映射。
  • LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配。

vim /

-A:指定链名
-p:指定协议类型
-d:指定目标地址
–dport:指定目标端口(destination port 目的端口)
–sport:指定源端口(source port 源端口)
-j:指定动作类型

参考博客:http://www.zsythink.net/archives/tag/iptables/


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注