iptables扩展模块

扩展模块一:multiport
作用:可以指定多个离散的源端口或者目标端口,也可以指定连续的端口

//离散的
iptables -I INPUT -s 192.168.247.170 -p tcp -m multiport --dports 22,36,80 -j DROP
80到88端口,这个功能tcp模块也能实现连续的
iptables -A INPUT -s 192.168.247.170 -p tcp -m multiport --dports 22,80:88 -j DROP

模块二:iprange
作用:可以指定连续的ip。

//--src-range
iptables -A INPUT -p tcp -m iprange --src-range 192.168.247.150-192.168.247.170 -j ACCEPT
//--dst-range
iptables -A INPUT -p tcp -m iprange --dst-range 192.168.247.180-192.168.247.190 -j ACCEPT

模块三:string
作用:如果报文中包含对应的字符串,则匹配。

//假如我在网站admin目录下配置了Auth访问认证功能,要拒绝凡是含有Auth字符串的ip访问:
iptables -I INPUT -m string --algo bm --string "Auth" -j REJECT

//--algo指定匹配的算法,有bm和kmp 

模块三:time
作用:指定时间内,匹配

//比如限制公司员工早上10点到11点不能浏览网页
iptables -I OUTPUT -p tcp -m multiport --dports 80,443 -m time --timestart 10:00:00 --timestop 11:00:00 -j REJECT

//timestart开始时间,timestop结束时间
//周六日不能看网页
iptables -I OUTPUT -p tcp --dport 80 -m time --weekdays 6,7 -j REJECT

模块四:connlimit
作用:限制每个ip连接到server端的数量,不用指定ip,默认对单ip的并发连接数限制

//限制同一个ip的ssh登入数量
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT

//--connlimit-above 连接数量

限制某个网段的链接数量

//限制子网掩码为27的网段只能连接10台
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 --connlimit-mask 27 -j REJECT

模块五:limit
作用:限速,限制报文到达的速度

//限制1分钟10个,也就是6秒放行一个
iptables -I INPUT -p icmp -m limit --limit 10/minute -j ACCEPT
iptables -A INPUT -p icmp -j REJECT

注意,该模块有一个默认参数--limit-burst,默认值为5。该参数的意思相当于银行柜台的数量,当前5个包来的时候,柜台都是空的,所有前五个包都会放行,后面的人需要排队。

模块六:tcp模块
tcp模块除了匹配添加–dport,–sport之外还有其他的匹配参数:

–tcp-flags:tcp协议中的标志位。这个和tcp的三次握手有关,第一次握手客户端发送请求会发送一个seq序列号,此时服务端收到之后打开一看seq为1。然后服务端恢复客户端,会发送ack确认号和seq序列号,客户端收到之后打开一看ack=1,seq=1,然后客户端再恢复一个seq给服务端,seq=1。

通过上面的过程可以匹配标志位。

//匹配第一次握手的报文
iptables -I INPUT -p tcp -m tcp --dport 22 --tcp-flags ALL SYN -j REJECT

//ALL SYN表示只有SYN为1
//匹配第二次
iptables -I INPUT -p tcp -m tcp --dport 22 --tcp-flags ALL SYN,ACK -j REJECT

模块七:ICMP
ICMP:互联网控制报文协议。icmp报文类型比较多,这里之说用的最多的一种ping。

//禁止别人ping我们的主机,我们可以ping别人的
iptables -I INPUT -p icmp -m icmp --icmp-type 8/0 -j REJECT

--icmp-type:表示icmp的类型为8,code为0。

模块七:state
常用:

//自动处理响应报文
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iptables的CONNMARK模块是一个用于连接标记(connection marking)的扩展功能。它可以用来在iptables规则中对连接进行标记,以便后续的规则能够根据这些标记进行匹配和处理。 CONNMARK模块提供了以下几个主要的匹配条件和目标动作: 1. `--set-mark`:将连接标记设置为指定的值。 2. `--save-mark`:将连接标记保存到packet mark字段中。 3. `--restore-mark`:从packet mark字段中恢复连接标记。 4. `--save-ip`:将连接标记保存到packet的源或目的IP地址中。 5. `--save-pkttype`:将连接标记保存到packet类型字段中。 使用CONNMARK模块的示例规则如下: ```shell # 设置连接标记为1 iptables -t mangle -A PREROUTING -i eth0 -m connmark ! --mark 0 -j CONNMARK --set-mark 1 # 根据连接标记进行匹配 iptables -A INPUT -m connmark --mark 1 -j LOG --log-prefix "Marked Connection: " # 将连接标记保存到packet mark字段中 iptables -t mangle -A POSTROUTING -m connmark --mark 1 -j CONNMARK --save-mark # 从packet mark字段中恢复连接标记 iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j CONNMARK --restore-mark # 将连接标记保存到packet的源IP地址中 iptables -t mangle -A POSTROUTING -m connmark --mark 1 -j CONNMARK --save-ip-src # 将连接标记保存到packet的目的IP地址中 iptables -t mangle -A POSTROUTING -m connmark --mark 1 -j CONNMARK --save-ip-dst # 将连接标记保存到packet类型字段中 iptables -t mangle -A POSTROUTING -m connmark --mark 1 -j CONNMARK --save-pkttype ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值