首页 > 代码库 > iptables笔记
iptables笔记
一、内核转发
*永久开启转发
sysctl -w net.ipv4.ip_forward=1
*查看当前
cat /proc/sys/net/ipv4/ip_forward
*
暂时开启
echo 1 > /proc/sys/net/ipv4/ip_forward
二、规则相关
所谓规则是由 “匹配条件” + “执行动作” 组成,匹配条件主要是用于选择需要进行处理的数据包,
当一个数据包满足“匹配条件”时,linux会对该数据包“执行动作”。
常使用的表:nat、filter,顾名思义,nat表主要用于NAT;filter用于过滤数据包。
nat表中又包括了PREROUTING、OUTPUT、POSRTROUTING三个链,而filter表包括了INPUT、OUTPUT、FORWARD三个链。
<style></style>
1,查看规则
iptables -t nat -L [OUTPUT / POSTROUTING / PREROUTING] [—line-number] [-n] #通过-t nat 指定为nat表
iptables -L [INPUT / OUTPUT / FORWARDING] [—line-number] [-n] #默认为filter表
2,删除规则
iptables -t nat -D [OUTPUT / POSTROUTING / PREROUTING] $number
iptables -D [INPUT / OUTPUT / FORWARDING] $number
3,添加规则
iptables -t nat -A [OUTPUT / POSTROUTING / PREROUTING] $规则
iptables -A [INPUT / OUTPUT / FORWARDING] $规则
4,更改默认策略
iptables -P INPUT DROP
<style></style>
-p 协议(protocol)
- 指定规则的协议,如tcp, udp, icmp等,可以使用all来指定所有协议。
- 如果不指定-p参数,则默认是all值。这并不明智,请总是明确指定协议名称。
- 可以使用协议名(如tcp),或者是协议值(比如6代表tcp)来指定协议。映射关系请查看/etc/protocols
- 还可以使用–protocol参数代替-p参数
-s 源地址(source)
- 指定数据包的源地址
- 参数可以使IP地址、网络地址、主机名
- 例如:-s 192.168.1.101指定IP地址
- 例如:-s 192.168.1.10/24指定网络地址
- 如果不指定-s参数,就代表所有地址
- 还可以使用–src或者–source
-d 目的地址(destination)
- 指定目的地址
- 参数和-s相同
- 还可以使用–dst或者–destination
-j 执行目标(jump to target)
- -j代表”jump to target”
- -j指定了当与规则(Rule)匹配时如何处理数据包
- 可能的值是ACCEPT, DROP, QUEUE, RETURN
- 还可以指定其他链(Chain)作为目标
-i 输入接口(input interface)
- -i代表输入接口(input interface)
- -i指定了要处理来自哪个接口的数据包
- 这些数据包即将进入INPUT, FORWARD, PREROUTE链
- 例如:-i eth0指定了要处理经由eth0进入的数据包
- 如果不指定-i参数,那么将处理进入所有接口的数据包
- 如果出现! -i eth0,那么将处理所有经由eth0以外的接口进入的数据包
- 如果出现-i eth+,那么将处理所有经由eth开头的接口进入的数据包
- 还可以使用–in-interface参数
-o 输出(out interface)
- -o代表”output interface”
- -o指定了数据包由哪个接口输出
- 这些数据包即将进入FORWARD, OUTPUT, POSTROUTING链
- 如果不指定-o选项,那么系统上的所有接口都可以作为输出接口
- 如果出现! -o eth0,那么将从eth0以外的接口输出
- 如果出现-i eth+,那么将仅从eth开头的接口输出
- 还可以使用–out-interface参数
+++++++++++++++++++++++++++++++++++++++++++++++++++
–-sport 源端口(source port)针对 -p tcp 或者 -p udp
- 缺省情况下,将匹配所有端口
- 可以指定端口号或者端口名称,例如”–sport 22″与”–sport ssh”。
- /etc/services文件描述了上述映射关系。
- 从性能上讲,使用端口号更好
- 使用冒号可以匹配端口范围,如”–sport 22:100″
- 还可以使用”–source-port”
–-dport 目的端口(destination port)针对-p tcp 或者 -p udp
- 参数和–sport类似
- 还可以使用”–destination-port”
-–tcp-flags TCP标志针对-p tcp
- 可以指定由逗号分隔的多个参数
- 有效值可以是:SYN, ACK, FIN, RST, URG, PSH
- 可以使用ALL或者NONE
-–icmp-type ICMP类型针对-p icmp
- –icmp-type 0 表示Echo Reply
- –icmp-type 8 表示Echo
iptables笔记