2.iptables 匹配条件(基础)
2024-10-20 07:47:03
基本匹配条件
-s 用于匹配报文的源地址,可以同时指定多个源地址,每个IP地址用逗号分开,也可以指定网段
iptables -t filter -I INPUT -s 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -s 192.168.1.0/24 -j ACCEPT
-d 用于匹配报文的目标地址
iptables -t filter -I OUTPUT -d 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -d 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -d 192.168.1.0/24 -j ACCEPT
-p 用于匹配报文的协议类型
iptables -t filter -I INPUT -p tcp -s 192.168.1.146 -j ACCEPT
iptables -t filter -I INPUT ! -p udp -s 192.168.1.146 -j ACCEPT
-i 用于匹配报文从哪个网卡流入本机
iptables -t filter -I INPUT -p icmp -i eth4 -j DROP
iptables -t filter -I INPUT -p icmp ! -i eth4 -j DROP
-o 用于匹配报文从哪个网卡流出本机
iptables -t filter -I OUTPUT -p icmp -o eth4 -j DROP
iptables -t filter -I OUTPUT -p icmp ! -o eth4 -j DROP
扩展匹配条件
tcp扩展模块,常用的扩展匹配条件:
-p tcp -m tcp --sport 用于匹配tcp协议报文的源端口
-p tcp -m tcp --dport 用于匹配tcp协议报文的源端口
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp --sport 22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 22:25 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport :22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 80: -j REJECT
iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp ! --sport 22 -j ACCEPT
multiport 扩展模块
-p tcp -m multiport --sports 用于匹配tcp协议报文的源端口
-p tcp -m multiport --dports 用于匹配tcp协议报文的源端口
iptables -t filter -I OUTPUT -d 192.168.1.146 -p udp -m multiport --sports 137,138 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport ! --dports 22,80 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 80:88 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80:88 -j REJECT
iprange扩展模块
--src-range:指定连续的源地址范围
--dst-range:指定连续的目标地址范围
iptables -t filter -I INPUT -m iprange --src-range 192.168.1.127-192.168.1.146 -j DROP
iptables -t filter -I OUTPUT -m iprange --dst-range 192.168.1.127-192.168.1.146 -j DROP
iptables -t filter -I INPUT -m iprange ! --src-range 192.168.1.127-192.168.1.146 -j DROP
string 模块
--algo 指定对应的匹配算法(bm kmp)
--string 指定匹配的字符串
iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "OOXX" -j REJECT
iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "OOXX" -j REJECT
time模块
--timestart 用于指定时间范围的开始时间,不可取反
--timestop 用于指定时间范围的结束时间,不可取反
-weekdays 用于指定星期几,可取反
--monthdays 用于指定几号,可取反
--datestart 用于指定日期范围的开始日期,不可取反
--datestop 用于指定日期范围的结束日期,不可取反
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 443 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time ! --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --weekdays 5 --monthdays 22,23,24,25,26,27,28 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --datestart 2017-12-24 --datestop 2017-12-27 -j REJECT
connlimit模块(限制连接数量)
--connlimit-above 单独使用此选项时,表示限制每个IP的连接数量
--connlimit-mask 此选项不能单独使用,配合--connlimit-above,则可以针对“某类IP段内一定数量的IP”进行连接数量的限制
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 --connlimit-mask 27 -j REJECT
limit模块(限制报文的到达速率)
--limit-burst 指定令牌桶中令牌的最大数量
--limit 指定令牌桶中生成新令牌的频率
iptables -t filter -I INPUT -p icmp -m limit --limit-burst 3 --limit 10/minute -j ACCEPT
iptables -t filter -A INPUT -p icmp -j REJECT
最新文章
- PHP 显示文章发布日期 一小时前 一天前 一月前 一年前
- Swift语法简介(二)闭包
- Java数据库——连接关闭、增删改查
- ABAP版连连看
- jQuery停止动画和判断是否处于动画状态
- java实现大数加法、乘法(BigDecimal)
- 【转】深入研究java.lang.Runtime类
- 仿猪八戒一个提示(jQuery插件) v0.1 beta
- SQL使用记录
- 一个Java对象到底占多大内存?(转)
- MVC的验证 jquery.validate.unobtrusive
- 【Alpha】Daily Scrum Meeting——Day1
- docker、oci、runc以及kubernetes梳理
- git如何设置ssh密钥
- 监控linux服务器是否能登陆 邮件报警
- 模板引擎,中间件,spring AOP原理
- python网络编程:socket、服务端、客户端
- 【LeetCode232】 Implement Queue using Stacks★
- 解决SQLite异常:library routine called out of sequence
- Vue-CLI3.x 高版本覆盖低版本Vue-CLI2.x 解决方法