IptablesIptables
😂

Iptables

Last edited time
Nov 21, 2021 02:16 PM
Created
Nov 21, 2021 04:42 AM
Tags

基本概念

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

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

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

raw表:关闭nat表上启用的连接追踪机制;iptable_raw
PREROUTING      的规则可以存ngle表,nat表。

INPUT          的规则可以存在于:mangle表,filter表,(centos7中还有nat表,centos6中没有)。

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

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

POSTROUTING      的规则可以存在于:mangle表,nat表。
raw     表中的规则可以被哪些链使用:PREROUTINGOUTPUT

mangle  表中的规则可以被哪些链使用:PREROUTINGINPUTFORWARDOUTPUTPOSTROUTING

nat     表中的规则可以被哪些链使用:PREROUTINGOUTPUTPOSTROUTING(centos7中还有INPUT,centos6中没有)

filter  表中的规则可以被哪些链使用:INPUTFORWARDOUTPUT
优先级次序(由高而低):

raw –> mangle –> nat –> filter
notion image
ACCEPT:允许数据包通过。

DROP:直接丢弃数据包,不给任何回应信息,这时候客户端会感觉自己的请求泥牛入海了,过了超时时间才会有反应。

REJECT:拒绝数据包通过,必要时会给数据发送端一个响应的信息,客户端刚请求就会收到拒绝的信息。

SNAT:源地址转换,解决内网用户用同一个公网地址上网的问题。

MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的ip上。

DNAT:目标地址转换。

REDIRECT:在本机做端口映射。

LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则,也就是说除了记录以外不对数据包做任何其他操作,仍然让下一条规则去匹配。

命令

 

iptables -t {table} -L {link}

iptables -t {table} -L

iptables -L {link} # t=filter

-v #详细信息
-n #ip不解析
--line-numbers / --line #编号
-x #显示包精确数量
pkts:对应规则匹配到的报文的个数。

bytes:对应匹配到的报文包的大小总和。

target:规则对应的target,往往表示规则对应的”动作”,即规则匹配成功后需要采取的措施。

prot:表示规则对应的协议,是否只针对某些协议应用此规则。

opt:表示规则对应的选项。

in:表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则。

out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则。

source:表示规则对应的源头地址,可以是一个IP,也可以是一个网段。

destination:表示规则对应的目标地址。可以是一个IP,也可以是一个网段。 
 

iptables -t {table} -I {link} -s {source ip} -j {action}
iptables -t {table} -I {link} {number} -s {source ip} -j {action}
-I # inspect
-A # append
 

iptables -t {table} -D {link} {number}

iptables -t {table} -F {link} # del all

Loading Comments...