iptables命令使用详解

/ Linux / 没有评论 / 1843浏览

iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者经该设备转发、路由时,都可以使用iptables进行控制。

环境

操作系统:CentOS7.3

ip地址:172.16.55.7

一. iptables中的“四表五链”及“堵通策略”

  1. **“四表”**是指,iptables的功能——filter,nat, mangle,raw.
  1. **“五链”**是指内核中控制网络的NetFilter定义的五个规则链,分别为:
  1. 堵通策略是指对数据包所做的操作,一般有两种操作——“通(ACCEPT)”、“堵(DROP)”,还有一种操作很常见REJECT. 谈谈REJECT和DROP之间的区别,Ming写了一封信,向Rose示爱。Rose如果不愿意接受,她可以不回应Ming,这个时候Ming不确定Rose是否接到了信;Rose也可以同样写一封信,在信中明确地拒绝Ming。前一种操作就如同执行了DROP操作,而后一种操作就如同REJECT操作。

二. iptables命令的语法规则

iptables [-t table] COMMAND [chain] CRETIRIA -j ACTION
iptables -A INPUT -s 10.8.0.0/16 -d 172.16.55.7 -p tcp --dport 80 -j DROP
  1. 查看iptables列表
iptables -nL

三. 链管理

四. 规则管理

五. 查看规则 

查看规则的一般内容: img

六.匹配条件

匹配条件包括通用匹配条件和扩展匹配条件。

通用匹配条件是指针对源地址、目标地址的匹配,包括单一源IP、单一源端口、单一目标IP、单一目标端口、数据包流经的网卡以及协议。

扩展匹配条件指通用匹配之外的匹配条件。

通用匹配条件

扩展匹配条件

隐含扩展匹配条件

  1. -p tcp:可直接使用tcp扩展模块的专用选项;
  1. -p udp:可直接使用udp协议扩展模块的专用选项:
  1. -p icmp
0/0:echo reply
8/0:echo request

显式扩展匹配条件

必须用**-m option**选项指定扩展匹配的类型,常见的有以下几种:

  1. multiport: 以离散或连续的 方式定义多端口匹配条件,最多15个;
iptables -I INPUT -d 172.16.0.7 -p tcp -m multiport --dports 22,80,139,445,3306 -j ACCEPT
  1. iprange: 以连续地址块的方式来指明多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
  1. time : 匹配数据包到达的时间
  1. string: 匹配数据包中的字符  
~]# iptables -I OUTPUT -m string --algo bm --string "gay" -j REJECT
  1. connlimit用于限制同一IP可建立的连接数目
~]# iptables -I INPUT -d 172.16.0.7 -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT
  1. limit限制收发数据包的速率
~]# iptables -I OUTPUT -s 172.16.0.7 -p icmp --icmp-type 0 -j ACCEPT
  1. state限制收发包的状态  

state扩展