iptables 从入门到应用

转自一
转自二

四表

  1. filter 控制数据包是否允许进出及转发,可以控制的链路有input, forward, output
  2. nat 控制数据包中地址转换,可以控制的链路有prerouting, input, output, postrouting
  3. mangle 修改数据包中的原数据,可以控制的链路有prerouting, input, forward, output, postrouting
  4. raw 控制nat表中连接追踪机制的启用状况,可以控制的链路有prerouting, output
  5. security 是否定义强制访问控制规则(CentOS 7)

五链

指内核中控制网络的NetFilter定义的五个规则链

  1. PREROUTING 路由前
  2. INPUT 数据包流入口
  3. FORWARD 转发关卡
  4. OUTPUT 数据包出口
  5. POSTROUTING 路由后

堵通策略

指对数据包所做的操作

  1. ACCEPT
  2. DROP
  3. REJECT

语法规则

iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION

-t table    是指操作的表,filter、nat、mangle或raw, 默认使用filter
COMMAND     子命令,定义对规则的管理,-A -D -L -F -P -I -R -n
chain       指明链路,INPUT OUTPUT FORWARD PREROUTING POSTROUTING
CRETIRIA    匹配的条件或标准,有下面指定方式等 -p tcp、-s、-d、--sport、--dport、--dports、-m tcp、-m state、-m multiport
ACTION      操作动作,ACCEPT DROP REJECT DNAT SNAT

示例

查看已有的规则

iptables -nl

不允许10.8.0.0/16网络对80/tcp端口进行访问

iptables -A INPUT -s 10.8.0.0/16 -d 172.16.55.7 -p tcp --dport 80 -j DROP

  • -A 添加一条记录
  • INPUT 指明链路
  • -s -d -p --dport 设置过滤条件
  • -j DROP 丢弃符合条件的报文

离散或连续的 方式定义多端口匹配条件,最多15个

iptables -I INPUT -d 172.16.0.7 -p tcp -m multiport --dports 22,80,139,445,3306 -j ACCEPT

以连续地址块的方式来指明多IP地址匹配条件

iptables -I INPUT -d 172.16.0.7 -p tcp -m multiport --dports 22,80,139,445,3306 -m iprange --src-range 172.16.0.61-172.16.0.70 -j REJECT

匹配数据包到达的时间

todo

匹配数据包中的字符

iptables -I OUTPUT -m string --algo bm --string "gay" -j REJECT

用于限制同一IP可建立的连接数目

iptables -I INPUT -d 172.16.0.7 -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT

限制收发数据包的速率(上下行同时限制)

# 指定要隔多长时间才能签发一个新的通行证。由于MTU是1500byte(1.46484375KB),实际限速为:rate * MTU
--limit rate[/second|/minute|/hour|/day]
# 指定刚开始时有多少通行证可用
--limit-burst number

# 查看MTU
cat /sys/class/net/eth0/mtu

iptables -A INPUT -m limit -d 192.168.106.131 --limit 100/s --limit-burst 10 -j ACCEPT
iptables -A INPUT -d 192.168.106.131 -j DROP

iptables -A OUTPUT -m limit -d 192.168.106.131 --limit 100/s --limit-burst 10 -j ACCEPT
iptables -A OUTPUT -d 192.168.106.131 -j DROP

限制收发包的状态

todo

posted @ 2019-11-14 14:11  飞_2016  阅读(20)  评论(0)    收藏  举报