[linux安全] iptables的基本语法

1基本语法及参数解释
iptables -t filter -A INPUT -p tcp -s ip/net -d ip/net -j ACCEPT
nat OUTPUT udp DROP
mangle FORWARD icmp REJECT
PREROUTING
POSTROUTING

-I
-D
-F
-L


-s 源IP地址 -s 192.168.1.1 -s 192.168.1.0/24
-d 目的IP地址 -d 192.168.3.1 -d 192.168.3.0/24

-p 传输协议
--sport 源端口 -p tcp --sport 22:80
--dport 目的端口 -p tcp --dport 21

-i 网络接口名称 匹配从哪个网络接口进来的数据包
-o 网络接口名称 匹配从哪个网络接口出去的数据包

--tcp-flages tcp标记的名称

tcp标记的名称
syn 新建立的连接的数据包会有syn
ack 应答包会有ACK标记
fin 结束标记位 断开连接时会有的标记
rst 重置标记位
psh 推标记位 (程序插队是)
urg 紧急标记位



mac 地址匹配
-m mac 源MAC地址 目的MAC地址
-m mac --mac-source 00:ab:22:99:ff:aa 目的MAC地址

多端口匹配
-p tcp -m multiport --sports 21,22,25,80,1025:2000 源端口列表
--dports 目的端口列表

数据包的状态
NEW 建立的连接
ESTABLISHED 以建立的连接
RELATED 与以建立的连接相关的连接
INVALID 无效的连接

-m state --state NEW,ESTABLISHED

NEW
三次握手的第一次握手
echo-request
udp通信时,一方主动跟另一方通信的所有包都是NEW
nmap -sA ip
时,所发的带有ACK标记的探测TCP端口的包,也是NEW状态。也就说明了。TCP的NEW状态除了有正常的合法的SYN,TCP,NEW以外,还有其它的也是NEW状态,但其它的并不合法。

ESTABLISHED
TCP正常的通信过程中除第一次握手外的所有通信包
echo-reply
udp通信时,一方被动跟另一方通信的所有包都是ESTABLISHED
访问某一节点的TCP的端口,而对方并没有开此端口时,双方会返回一个带有RST标记位的TCP的回应。而这种回应是ESTABLISHED状态

RELATED
ftp的数据传输的TCP连接的第一次握手
icmp的不可达消息
当访问某一节点的UDP端口(12345),而对方并没有开此端口时,对方会返回一个ICMP的不达消息
(ICMP 192.168.1.41 udp port 12345 unreachable)

NVALID
nmap -sF IP 总之INVALID表示的是非法的包,往往不能放行。

IP地址范匹配
-m iprange --src-iprange 192.168.1.10-192.168.1.20 -j DROP
--dst-oprange


你可能感兴趣的:(iptables)