iptables笔记

数据包流向

PREROUTING->FORWARD->POSTROUTING

PRETOUTING->INPUT->OUTPUT->POSTROUTING

第一种方式是NAT路由器,第二种方式是主机防火墙。

iptables包含三个表:filter,nat和mangle

filter是默认的表,包含真正的防火墙过滤规则,内建的规则链包括:INPUT,OUTPUT,FORWARD.

nat表包含源和目的地址以及端口转换使用的规则,内建的规则链包括:PREROUTING,OUTPUT,POSTROUTING.

mangle表用于设计特殊的数据包路由标志 的规则,这些标志随后被filter表中的规则检查。内建的规则链包括:PREROUTING,INPUT,FORWARD,POSTROUTING,OUTPUT.

表对应的相关规则链的功能:

INPUT:当一个数据包由内核中的路由计算确定是本地的Linux系统后,它会通过INPUT链的检查

OUTPUT:保留系统自身生成的数据包

FORWARD:经过Linux系统路由的数据包(即当iptables防火墙用于连接两个网络时,两个网络之间的数据包必须流经该防火墙)

PREROUTING:用于修改目标地址(DNAT)

POSTROUTING:用于修改源地址(SNAT)


iptables详细语法

iptables [-t 表名] < -A|I|D|R >链名[规则编号] [ -i|o 网卡名称 ] [-p 协议类型] [-s 源ip地址|源子网] [--sport 源端口号] [ -d 目标ip地址|目标子网] [--dport 目标端口号] <-j 动作>


详细说明:

1.定义默认策略

作用:当数据包不符合链中任意一条规则时,iptables将根据该链预先定义的默认策略来处理数据包

iptables [-t 表名] <-P> <链名> <动作>

-t    默认策略用于哪个表,可以使用filter,nat和mangle,如果没有指定就使用filter。

-P    定义默认策略

<链名>    指默认策略用于哪个链,可以使用所有链

<动作>    处理数据包的动作,可以使用ACCEPT和DROP

2.查看iptables规则

iptables [-t 表名] <-L> [链名]


[-t 表名]

指查看哪个表的规则列表,可以使用filter,nat和mangle,如果没有指定就使用filter。

<-L>

查看指定表和指定链的规则列表

[链名]

指查看指定表中哪个链的规则列表,可以使用所有类型的链。如果不指明则将查看所有链的规则列表。

3.增加、插入、删除、替换iptables规则

iptables [-t 表名] <-A|I|D|R> [链名] [规则编号]

-A    增加一条规则,该规则将会增加到规则列表的最后一行,该参数不能使用规则编号

-I    插入一条规则,原本该位置上的规则将会往后顺序移动,如果没有指定规则编号,则在第一条规则前插入

-D    从规则列表中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除

-R    替换某条规则,必须要指定替换的规则编号,规则被替换不会改变顺序

[-i|o 网卡名称]

[-p 协议类型]    可以指定规则应用的协议


动作说明

DROP:丢弃数据包

ACCEPT:接收数据包

REDIRECT:将数据包重新转向到本机或另外一台主机的某个端口,通常能实现透明代理或对外开放内网的某些业务。

REJECT:拦截该数据封包,并发回封包通知对方。

SNAT:源地址转换,即改变数据包的源地址。

DNAT:目标地址转换,即改变数据包的目的地址。

MASQUERADE:IP伪装,即常说的NAT技术,只能用于ADSL等拨号上网的IP伪装,也就是主机的IP是由ISP动态分配的,如果主机的IP地址是静态固定的就只能使用SNAT

LOG:日志功能,将符合规则的数据包相关信息记录在日志里,以便管理员的分析和排错。

-s = source address

-d = destination address

-p = protocol

-j = action

-P = specify default policy for chain

-D = delete a rule from chain

-R = replace a rule from chain

-F = remove all rules for specified chain

-L = list chain rules

-A = append/add a rule to the end of the chain

常见端口号

FTP = TCP 21/20    21 for configuration and 20 for file transfering.

SSH = TCP 22

Telnet = TCP 23

Web/http = TCP 80

SSL/https = TCP 443

DNS = UDP 53

DHCP = UDP 67 and UDP 68

SAMBA = 137-139 and 445

NETBIOS = 137-139

ACTIVE DIRECTORY = 445 Netbios/DNS

SMTP(email out) = 25

POP3(email in) = 110

IMAP(email in) = 143

VPN = 1723

KERBEROS = 88

SNMP = 161/162

参考书《构建高可用Linux服务器》等

你可能感兴趣的:(学习笔记)