iptables限制,iptable规则_1

  iptables限制,iptable规则

  通过项目中的接口配置IP后,它在IPtables中设置。这个要求很简单,所以我们应该借此机会研究Iptables。

  http://blog . 163 . com/xychenbaihu @ yeah/blog/static/1322229655201212705752493/http://hi . Baidu . com/kexinxing 77/blog/item/fcd 2 af 3 B2 bb 800 eeb 311 c 7 ce . html http://blog . . net/test _ me/article/details/5572195

  Iptables—过滤数据包—命令(-A,-I,-D,-R,-L,等等。),参数(-p,-s,-d,- sport,- dport,-i,-o等。)、actions -j(接受、丢弃、拒绝、重定向等。)

  2012-02-27 13:20:51分类:Linux常用工具字体大小订阅

  Iptables指令

  语法:

  iptables [-t table]命令[match] [-j目标/跳转]

  t参数用于指定规则表。有三个内置的规则表:nat、mangle和filter。

  当没有指定规则表时,它总是被视为过滤器。

  每个规则表的功能如下:

  这个nat规则表有两个规则链,路由前和路由后。其主要功能是进行一对一翻译、一对多翻译、多对多翻译等。因为翻译的特性,需要目的地址翻译的包不需要源地址翻译,反之亦然。因此,为了提高重写数据包的速率,在防火墙运行时,每个数据包将只通过这个规则表一次。如果我们在这个数据表中定义包过滤的规则,将无法多次比较同一个包。因此,除了URL转换之外,此规则表不应用于其他目的。

  这个规则表有三个规则链:路由前、路由前和路由后。除了在翻译URL时重写数据包之外,在一些特殊应用中,可能需要重写数据包(TTL、TOS)或设置标记(标记数据包以便后续过滤)。此时,必须在mangle规则表中定义这些任务。因为使用率不高,这里不打算讨论mangle的用法。

  这个过滤规则表是默认规则表,它有三个规则链:输入、转发和输出。顾名思义,这个规则表用于过滤数据包(例如,丢弃、记录、接受或拒绝)。我们将在这个规则表中构建所有的基本规则。

  主要包括:命令表用于添加(-A,-I)删除(-D)修改(-R)查看(-L)规则等。

  常用的参数用来指定协议(-p),源地址(-s),源端口(- sport),目的地址(-d),目的端口(- dport),

  设置入网卡(-i)、出网卡(-o)等包信息(即包的种类);

  用于描述要处理的包的信息。

  常见的处理操作使用-j来指定数据包的处理(接受、丢弃、拒绝、重定向等。).

  1.常用命令列表:常用命令(-A添加规则,-D删除规则,-R修改规则,-I插入规则和-L查看规则)

  命令-a,-附加

  iptables示例-输入.

  说明向规则链(这里是输入规则链)添加规则(追加方法)将使该规则成为规则链中的最后一个规则。

  命令-d,-删除

  示例iptables-dinput-dport80-jdrop

  iptables -D输入1

  要从规则链中删除规则,您可以输入完整的规则或直接指定要删除的规则编号。

  Command-r,-replace

  iptables-r输入1-s192.168.0.1-jdrop示例

  说明替换现有规则不会改变规则替换后的顺序。(1是位置)

  命令-I,-插入

  示例iptables-I输入1-d端口80-j接受

  说明插入了一个规则,这个位置(这里是位置1)原来的规则会被一个序列后移。

  命令-l,-list

  iptables -L输入示例

  列出规则链中的所有规则。

  命令-f,-flush

  iptables -F输入示例

  删除规则链(这里是输入规则链)中的所有规则。

  命令-z,-零

  iptables -Z输入示例

  解释数据包计数器被重置为零。数据包计数器用于统计同一数据包出现的次数,是过滤阻断攻击不可或缺的工具。

  命令-n -N,-新-链

  允许的iptables -N示例

  解释新的规则链。

  命令-x -X,-删除-链

  允许的iptables -X示例

  删除规则链。

  命令-p,-策略

  iptables -P输入压降示例

  解释过滤策略。即不符合过滤条件的数据包,默认处理方式。

  命令-e -E,-重命名-链

  示例iptables -E允许不允许

  描述自定义规则链的名称。

  2.常用的包比较参数:(-p协议,-s源地址,-d目的地址,- sport源端口,- dport目的端口,-i入网卡,-o出网卡)

  参数-p,-协议(指定协议)

  示例iptables -A输入-p tcp(指定协议)-p所有协议,-p!Tcp删除除tcp之外的所有协议。

  说明匹配的协议类型是否匹配。可以用!用于反向比较的运算符,例如:-p!tcp,

  是指除了tcp以外的其他类型,包括udp、icmp等。如果要比较所有类型,可以使用all关键字,例如:-p all。

  参数-s -s,- src,- source(指定源地址,指定源端口- sport)

  示例:iptables -A输入-s 192.168.1.1

  解释用于比较数据包的源IP。可以比较单机,也可以比较网络。比较网络时请用数字表示屏蔽。

  比如:-s 192.168.0.0/24,比较IP的时候可以用!用于反向比较的运算符,

  示例:-s!192.168.0.0/24。

  参数-d -d,- dst,- destination(指定目标地址,指定目标端口- dport)

  示例:iptables -A输入-d 192.168.1.1

  解释用于匹配数据包的目的IP,并以与上述相同的方式进行设置。

  参数-I -i,- in-interface -i eth所有网卡

  示例:iptables -A输入-i eth0

  说明数据包来自哪个网卡,用通配符做大范围对比。

  比如:-i eth表示所有以太网卡,也可以用!用于反向比较的运算符,

  比如:-我!eth0 .

  参数-o -o,- out-interface(指定出口网卡)

  示例:iptables -A FORWARD -o eth0

  它用于描述从哪个网卡发送数据包。设置方法同上。

  参数- sport,- source-port-port

  示例:iptables-a输入-p TCP-sport22

  解释用于匹配数据包的源端口号,它可以匹配单个端口或一个范围。

  例如:- sport 22:80,这意味着从22到80的所有端口都被视为符合要求的部件。

  如果要匹配不连续的多个端口,必须使用- multiport参数,如下所述。匹配端口号的时候可以用!反向比较的运算符。

  参数- dport,- destination-port-port

  示例:iptables-a input-p TCP-dport22

  解释用于匹配数据包的目的端口号,并以与上述相同的方式进行设置。

  参数- tcp-flags(仅过滤tcp中的部分数据包,如SYN包、ACK包、FIN包、RST包等。)

  例如iptables-p TCP-TCP-flags syn、fin、ack syn

  比较TCP数据包的状态标志。参数分为两部分。第一部分列出了要比较的标志。

  第二部分列出了已经设置的上述标志,未列出的标志必须为空。TCP状态标志包括SYN(同步)、ACK(确认),

  FIN(结束)、RST(复位)、URG(紧急)、PSH(强制推送)等。可以在参数中使用,除此之外,关键字ALL和也可以使用。

  没有对比。比较旗帜的时候可以用!操作子线反向比较。

  参数- syn

  示例:iptables -p tcp - syn

  说明是否是请求连接的TCP包,以及iptables-p TCP-TCP-flags syn,

  FIN,ACK SYN完全一样的功能,如果用的话!运算符可用于匹配未经请求的连接数据包。

  参数-mmultiport-source-port

  例如iptables-a输入-p TCP-m多端口-源端口22,53,80,110

  此描述用于匹配不连续的源端口号。一次最多可以匹配15个端口。可以用!

  反向比较的运算符。

  参数- m多端口-目的端口

  例如iptables-a输入-p TCP-m多端口-目的端口22,53,80,110

  描述用于匹配多个不连续的目的端口号。设置方法同上。

  参数-m多端口

  例如iptables-a输入-p TCP-m多端口-端口22、53、80、110

  解释此参数是特殊的,用于比较具有相同源端口号和目的端口号的数据包。它的设置方式与上面相同。

  注意:在本例中,如果源端口号为80,目的端口号为110,则此数据包不合格。

  参数-icmp-类型

  示例:iptables-a input-p icmp-icmp-type 8

  解释用于比较ICMP的类型号。您可以使用代码或数字进行比较。

  请调用iptables -p icmp - help查看有哪些代码可用。

  参数-极限-极限

  示例:iptables-a输入-m限制-限制3/小时

  用于比较某段时间内数据包的平均流量。上面的例子是用来比较的:每小时的平均流量是

  一次不超过3包。除了每小时平均次数,还可以每秒、每分钟、每天平均一次。

  默认值为每小时一次,参数如下:/秒、/分、/天。除了密封的数量之外

  外部,设置该参数也会在条件满足时暂停数据包比较,避免黑客利用flood。

  攻击方法,导致服务被阻塞。

  参数限制突发

  示例iptables-a输入-m限制-限制-突发5

  说明是用来比较一瞬间大量数据包的数量。上面的例子是用来比较同时涌入的数据包是否超过数量。

  5(这是默认值)后,超过这个上限的印章将直接报废。使用效果同上。

  参数- m mac - mac-source

  iptables示例-a输入-m MAC-MAC-source 00:00:00:01

  此参数用于比较数据包的源网络接口的硬件地址。此参数不能用于输出和路由后规则。这是因为数据包发送到网络后,网卡驱动程序才能通过ARP通信协议找到目的地的MAC地址。因此,iptables在比较数据包时不知道数据包将被发送到网络接口。

  参数标记

  示例iptables-t angle-a input-m mark-mark 1

  它用于指示数据包是否由某个数字表示。当数据包比对成功后,我们可以用一个数字来标记数据包,这个数字最多不能超过4294967296。

  参数- m所有者-uid-所有者

  示例iptables-a输出-m所有者-uid-所有者500

  说明来自本地机器的数据包是否由特定用户生成,从而避免使用服务器。

  Root或其他身份将敏感数据发送出去,可以减少系统被黑客攻击的损失。可惜这个功能没法比。

  来自其它主机的数据包。

  参数- m所有者-GID-所有者

  示例iptables-a output-m owner-GID-owner 0

  描述用于比较来自本地机器的数据包是否由特定用户群生成,使用时间同上。

  参数- m所有者-PID-所有者

  示例iptables-a output-m owner-PID-owner 78

  描述用于比较来自本地机的包是否由特定的trip生成,使用时间同上。

  参数- m所有者-sid-所有者

  示例iptables-a output-m owner-sid-owner 100

  描述来自本地计算机的数据包是否是特定连接的响应数据包(会话ID)。使用时

  机器同上。

  参数-m状态-状态

  示例iptables-a输入-m状态-状态相关,已建立

  描述用于比较在线状态。有四种在线状态:无效、已建立、新建和相关。

  无效表示数据包的连接编号(会话ID)无法识别或编号不正确。

  ESTABLISHED表示数据包属于已建立的连接。

  NEW表示数据包想要启动连接(重置连接或重定向连接)。

  RELATED表示数据包属于已建立的连接,这是一个新连接。例如,FTP数据连接必须源自FTP连接。

  3.常见处理操作:(-j指定对满足条件的数据包的处理。常见的操作包括接受报告、丢弃报告、拒绝报告并通知对方、重定向数据包等。)

  j参数用于指定要执行的处理操作。常用的处理动作有:接受、拒绝、丢弃、重定向、伪装、日志、DNAT、SNAT、镜像、排队、返回、标记,分别描述如下:

  接受释放数据包。在这个处理之后,它将跳到下一个规则链,而不比较其他规则。

  REJECT阻塞数据包并发送数据包以通知另一方。可以发送的数据包有几种选择:ICMP端口不可达、ICMP回应回复或tcp重置(该数据包将要求另一方关闭连接)。经过这个处理后,过滤过程将直接中断,而不比较其他规则。

  示例:iptables-a forward-p TCP-dport 22-j reject-reject-with TCP-reset

  丢弃的数据包将不会被处理。经过这样的处理后,不会再比较其他规则,直接中断过滤过程。

  将数据包重定向到另一个端口(PNAT)。在这个处理之后,它将继续比较其他规则。

  该函数可用于实现透明代理或保护web服务器。

  示例:iptables-t NAT-a routing-p TCP-d port 80-j重定向到端口8080

  伪装将数据包源IP重写为防火墙NIC IP,并可以指定相应的端口范围。在这个处理之后,它将直接跳转到下一个规则(mangleostrouting)。该功能与SNAT略有不同。执行IP伪装时,不需要指定要伪装成哪个IP,IP将直接从网卡读取。使用拨号连接时,IP通常由ISP公司的DHCP服务器分配。化妆舞会在这个时候特别有用。

  示例:iptables-t NAT-a posting-p TCP-j伪装到端口1024-31000

  在/var/LOG中记录与数据包相关的消息。有关详细信息,请参考/etc/syslog.conf配置文件。在这个处理之后,将不断地比较规则。

  示例:iptables-a input-p TCP-j log-log-prefix input packets

  t SNAT重写包的源IP是一个特定的IP或IP范围,可以指定端口对应的范围。在这个处理操作之后,它将直接跳转到下一个规则(mangleostrouting)。

  例如:iptables-t NAT-a posting-p TCP-o eth 0-j snat-to-source 194 . 236 . 50 . 155-194 . 236 . 50 . 160:1024-32000

  DNAT将分组目的地IP重写为特定的IP或IP范围,并且可以指定对应于端口的范围。经过这样的处理后,会直接跳转到下一个协议(filter:input或者filter:forward)。

  示例:iptables-t NAT-a routing-p TCP-d 15 . 45 . 23 . 67-d port 80-j dnat-to-destination 192 . 168 . 1 . 1-192 . 168 . 1 . 10:80-100

  镜像数据包,即源IP与目的IP交换后,将数据包发回。在此处理之后,过滤过程将被中断。

  中断队列过滤程序,将数据包放入队列,交给其他程序处理。通过自行开发的加工程序,可以进行其他应用,

  例如:计算在线费用等。

  返回当前规则细化中的过滤程序,返回主规则细化继续过滤。如果将自定义规则细化视为子例程,此操作将很早结束子例程并返回到主程序。

  用代码标记数据包,以便为后续过滤提供标准。在这个处理之后,我们将继续比较其他规则。

  例如:iptables-t mangle-a routing-ptcp-d port 22-jmark-set-mark 2

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: