IPTables简介四——目标(动作)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
公网NAT网关,每月750个小时 15CU
简介: 四、目标(targets and jumps)就是告诉IPTables某条规则匹配以后进行什么动作。可以进行的动作有两类,第一类是进行IPTables定义的动作(target),还有一种就是调用另外一条用户自定义的链。

四、目标(targets and jumps)

就是告诉IPTables某条规则匹配以后进行什么动作。可以进行的动作有两类,第一类是进行IPTables定义的动作(target),还有一种就是调用另外一条用户自定义的链。例如:

IPTables -N July_filter //创建一条自定义的链

IPTables -A INPUT -p tcp -j July_filter //规则匹配后,跳转到上述自定义的链

iptables命令参数-j 表示执行target

1、accept

2、drop

丢弃包,它和reject的区别在于,reject防火墙会回应包来源一个icmp 错误;而DROP不做任何动作(不声不响地丢弃)。

3、reject

只能在INPUT FORWARD OUTPUT链中生效。默认动作是向对端发送一个icmp port unreachable;可以通过--reject-with参数设定回复的报文。可以设置为:icmp host unreachable, icmp port unreachable, icmp proto unreachable, icmp net prohibited或 icmp host prohibited ;对于tcp链接可以设置为tcp-reset,它将触发tcp链接的tcp reset动作发生,导致tcp链接优雅关闭。

4、 snat

只能在postrouting链中生效。参数--to-source 可以设置转换的ip地址。每个链接(防火墙术语里的链接),翻译地址是一致的。snat将尽量保证源地址中的端口号和翻译以后的端口号一致。

例如:

iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 192.168.1.2-192.68.1.6:1024-8000//将snat地址翻译到

192.168.1.2-192.168.1.6 端口从1024-8000上去。

5、  dnat

通常在prerouting链里生效,也可以在output链中生效(见《iptables简介2》hairpin模式)。参数--to-destination

例如:

iptables -t nat -p tcp -i eth1 --to-destination 192.168.1.2-192.168.1.3:80-100

6、 redirect

只在nat表(dnat)的prerouting和output链中生效。可以将目的地址不是本地机器的报文,dst地址转换为接受此包的接口的首地址(如果本地发出的包<output>,就将dst地址转换为127.0.0.1)

可带参数为:

--to-ports:可选参数。用此参数的时候必须跟-p tcp 或udp 或sctp或dccp

例如: iptables -t nat -i PREROUTING -p tcp --sport 80 -j redirect --to-ports 8080

--random:可选参数,将此包中的目的端口转换为任意端口。

如果不指定就不进行端口转换,只进行地址转换。

redirect的应用,就是一些本地代理工具,会将本地发出的包通过iptables output redirect到自己的端口上,然后自己处理后再转发出去。

7、 return

上文曾介绍过,在传统的“五链“中规则的动作可以是用户自己定义的链,一旦发生匹配就跳转到这个用户定义的链上再次执行匹配动作。return动作就是从链(用户自定义链或者默认链)上返回,执行上一级链的下一匹配规则。如果已经是根链了,那么就执行根链的默认动作。

注意:

用户自定义的规则,最后一条不需要设置一个return动作。子链所有规则都匹配完成后,将自动返回上一级链。


8、 MASQUERADE

此动作实际和SNAT很相似,只是说SNAT需要显示指定转换的地址,而MASQURADE会根据出口接口地址的IP自动设置转换的src ip地址。

--to-ports 可选参数。如果不选iptables可以保证端口号不变。

9 、LOG

调试时刻常用此动作,它可以将报文大致的情况记录到系统日志里(通过内核的组建),后面可以通过syslog或者dmesg,或者/var/log/system里看到这些日志。

注意当日志量比较大的时候,可以用ULOG 动作设置MYSQL作为日志存储后端。

可选参数:

--log-level:设定iptables 日志的等级,可以有debug,info,notice,warning,err,emerg。这些设置的日志等级遵从于内核的日志等级。默认是info级别

--log-prefix:在日志消息中添加特定的字串。

例如:

-A INPUT -p tcp -j LOG --log-level info --log-prefix “zxy iptables debug”

10、user_define_chain

除了常规的系统五链之外,用户可以自行定义链,然后将这个链加入到传统的五链中。

step1 创建链

iptables -t nat -N july-chain

step2 在新定义链中加入自己的规则

xxx

step3 将自定义链加入传统五链中

iptable -I output -p tcp --dport 80 -j july-chain


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
1月前
|
网络安全 Python
Python编程--目标IP地址段主机指定端口状态扫描
Python编程--目标IP地址段主机指定端口状态扫描
|
5月前
|
网络协议 Linux 网络安全
Iptables深度解析:四表五链与动作参数
Iptables深度解析:四表五链与动作参数
460 0
|
6月前
|
网络协议 测试技术 数据安全/隐私保护
ensp中高级acl (控制列表) 原理和配置命令 (详解)
ensp中高级acl (控制列表) 原理和配置命令 (详解)
328 0
|
6月前
|
XML 算法 C语言
【C/C++ 静态代码检查工具 Cppcheck 】Cppcheck 检测器列表和检查规则大全一览
【C/C++ 静态代码检查工具 Cppcheck 】Cppcheck 检测器列表和检查规则大全一览
595 0
|
运维 网络协议 Linux
【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)(一)
【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)
1749 0
|
运维 Shell 网络安全
【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)(三)
【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)(三)
2243 0
|
运维 网络协议 网络安全
【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)(二)
【运维知识进阶篇】iptables防火墙详解(iptables执行过程+表与链概述+iptables命令参数+配置filter表规则+NAT表实现共享上网、端口转发、IP映射)(二)
854 0
|
网络协议 Linux
Linux网络管理之ip命令 – 显示与操作路由
ip命令用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。
217 0
Linux网络管理之ip命令 – 显示与操作路由