Linux系统Iptables端方执行按次过细讲解
来历:网海拾贝
准备知识(转): iptable有三种行列队伍(表)端方,mangle queue, filter queue, nat queue。
1。The first is the mangle table which is responsible for the alteration of quality of service bits in the TCP header.
2。The second table is the filter queue which is responsible for packet filtering.
* Forward chain: Filters packets to servers protected by the firewall.
* Input chain: Filters packets destined for the firewall.
* Output chain: Filters packets originating from the firewall.
3。The third table is the nat queue which is responsible for network address translation. It has two built-in chains; these are:
* Pre-routing chain: NATs packets when the destination address of the packet needs to be changed.
* Post-routing chain: NATs packets when the source address of the packet needs to be changed
个人私家总结:
iptables执行端方时,是从从端方表中从上至下按次执行的,如果没碰着婚配的端方,就一条一条往下执行,如果碰着婚配的端方后,那么就执行本端方,执行后按照本端方的举动(accept, reject, log等),决定下一步执行的情形,后续执行一样往常有三种情形。
1。一种是继续执行今后端方行列队伍内的下一条端方。歧执行过Filter行列队伍内的LOG后,还会执行Filter行列队伍内的下一条端方。
2。一种是中缀今后端方行列队伍的执行,转到下一条端方行列队伍。歧从执行过accept后就中缀Filter行列队伍内别的端方,跳到nat行列队伍端方去执行
3。一种是中缀一切端方行列队伍的执行。
iptables 是采用端方堆栈的方式来进行过滤,当一个封包进上钩卡,会先搜检 Prerouting,然后搜检目标 IP 鉴定可否需求转送出去,接着就会跳到 INPUT 或 Forward 进行过滤,如果封包需转送处置责罚则搜检 Postrouting,如果是来自本机封包,则搜检 OUTPUT 以及 Postrouting。历程中如果切合某条端方将会进行处置责罚,处置责罚举动除了 ACCEPT、REJECT、DROP、REDIRECT 和 MASQUERADE 以外,还多出 LOG、ULOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、TOS、TTL、MARK 等,此中某些处置责罚举动不会中缀过滤法度,某些处置责罚举动则会中缀统一端方炼的过滤,并遵照前述流程继续进行下一个端方炼的过滤(当心:这一点与 ipchains 不同),不停到堆栈中的端方搜检终了为止。透过这种机制所带来的益处是,我们可以进行重年夜、多重的封包过滤,重年夜的说,iptables 可以进行犬牙交织式的过滤(tables)而非炼状过滤(chains)。
ACCEPT 将封包放行,进行完此处置责罚举动后,将不再比对别的端方,间接跳往下一个端方炼(nat:postrouting)。
REJECT 拦阻该封包,并传送封包报告对方,可以传送的封包有几个选择:ICMP port-unreachable、ICMP echo-reply 或是 tcp-reset(这个封包会要求对方封闭联机),进行完此处置责罚举动后,将不再比对别的端方,间接 中缀过滤法度。 范例范比方下:
iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
DROP 甩失封包不予处置责罚,进行完此处置责罚举动后,将不再比对别的端方,间接中缀过滤法度。
REDIRECT 将封包从新导向到另一个端口(PNAT),进行完此处置责罚举动后,将 会继续比对别的端方。 这个后果可以用来实作通透式 porxy 或用来保护 web 效力器。比方:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
MASQUERADE 改写封包来历 IP 为防火墙 NIC IP,可以指定 port 对应的范围,进行完此处置责罚举动后,间接跳往下一个端方炼(mangle:postrouting)。这个后果与 SNAT 略有不同,当进行 IP 假装时,不需指定要假装成哪个 IP,IP 会从网卡间接读取,当运用拨继续线时,IP 几次是由 ISP 公司的 DHCP 效力器指派的,这个时分 MASQUERADE 特别有效。范例范比方下:
iptables -t nat -A POSTROUTING -p TCP -j MASQUERADE --to-ports 1024-31000
LOG 将封包相干讯息记载在 /var/log 中,过细地位请查阅 /etc/syslog.conf 组态档,进行完此处置责罚举动后,将会继续比对别的端方。比方:
iptables -A INPUT -p tcp -j LOG --log-prefix "INPUT packets"
SNAT 改写封包来历 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处置责罚举动后,将间接跳往下一个端方炼(mangle:postrouting)。范例范比方下:
iptables -t nat -A POSTROUTING -p tcp-o eth0 -j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
DNAT 改写封包目标地 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处置责罚举动后,将会间接跳往下一个端方炼(filter:input 或 filter:forward)。范例范比方下:
iptables -t nat -A PREROUTING -p tcp -d 15.45.23.67 --dport 80 -j DNAT --to-destination 192.168.1.1-192.168.1.10:80-100
MIRROR 镜射封包,也即是将来历 IP 与目标地 IP 对换后,将封包送回,进行完此处置责罚举动后,将会中缀过滤法度。
QUEUE 中缀过滤法度,将封包放入行列队伍,交给别的法度处置责罚。透过自行斥地的处置责罚法度,可以进行别的运用,比方:计较联机用度.......等。
RETURN 终了在目前端方炼中的过滤法度,前去主端方炼继续过滤,如果把自订端方炼看成是一个子法度,那么这个举动,就相称于延长终了子法度并前去到主法度中。
MARK 将封包标上某个代号,以便提供作为后续过滤的条件鉴定按照,进行完此处置责罚举动后,将会继续比对别的端方。范例范比方下:
iptables -t mangle -A PREROUTING -p tcp --dport 22 -j MARK --set-mark 2
版权声明:
原创作品,许愿转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。否则将深究法律责任。