基本匹配条件

-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

最新文章

  1. PHP 显示文章发布日期 一小时前 一天前 一月前 一年前
  2. Swift语法简介(二)闭包
  3. Java数据库——连接关闭、增删改查
  4. ABAP版连连看
  5. jQuery停止动画和判断是否处于动画状态
  6. java实现大数加法、乘法(BigDecimal)
  7. 【转】深入研究java.lang.Runtime类
  8. 仿猪八戒一个提示(jQuery插件) v0.1 beta
  9. SQL使用记录
  10. 一个Java对象到底占多大内存?(转)
  11. MVC的验证 jquery.validate.unobtrusive
  12. 【Alpha】Daily Scrum Meeting——Day1
  13. docker、oci、runc以及kubernetes梳理
  14. git如何设置ssh密钥
  15. 监控linux服务器是否能登陆 邮件报警
  16. 模板引擎,中间件,spring AOP原理
  17. python网络编程:socket、服务端、客户端
  18. 【LeetCode232】 Implement Queue using Stacks★
  19. 解决SQLite异常:library routine called out of sequence
  20. Vue-CLI3.x 高版本覆盖低版本Vue-CLI2.x 解决方法

热门文章

  1. axis2 webService开发指南(3)
  2. centos7 安装docker-ce ,最新版本docker,docker阿里云加速
  3. Codeforces 712D DP
  4. string.Empty与null与""
  5. CloudFoundry 快速上手笔记
  6. sqlserver全备份,差异备份和日志备份
  7. Qt自定义插件编程小结
  8. unary_function和binary_function详解
  9. elmah oracle
  10. Linux 上安装 rlwrap