端口转发设置
本地端口转发
//localhost:8080 转发到 localhost:80
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
跨机端口转发
//启用ip转发功能
sudo vi /etc/sysctl.conf net.ipv4.ip_forward=1
sudo sysctl –p
//172.16.1.8:80 转发到 localhost:1234
sudo iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 172.16.1.8:80 sudo iptables -t nat -A POSTROUTING -d 172.16.1.8 -p tcp --dport 80 -j MASQUERADE
sudo iptables -I FORWARD -d 172.16.1.8 -p tcp –dport 80 -j ACCEPT sudo iptables -I FORWARD -s 172.16.1.8 -p tcp –sport 80 -j ACCEPT
iptables基础知识
Filter表:过滤数据包
- INPUT 链:过滤所有目标地址是本机的数据包(对进入本机数据包的过滤)
- OUTPUT 链:过滤所有本机产生的数据包(对源地址得数据包的过滤)
- FORWARD 链:过滤所有路过本机的数据包(源地址和目标地址都不是本机的数据包。
NAT表:网络地址转换
- PREROUTING 链:数据包到达防火墙时改变包的目的地址。
- OUTPUT 链:改变本地产生数据包的目标地址。
- POSTROUTING 链:在数据包离开防火墙时改变数据包的源地址。
iptables常用命令
//查看iptables链表规则(不指定 –t 默认为Filter表)
sudo iptables -L –n//清除Filter表某条规则链中所有规则
sudo iptables –F INPUT//清除Filter表所有规则链的规则
sudo iptables –F//清除Filter表用户自定链中的规则
sudo iptables –X//在某个规则链末尾新增一条规则
sudo iptables -A INPUT …//从某个规则链中删除一条规则
sudo iptables -D INPUT …//从某个表链插入一条规则,原本该位置上的规则往后顺移
sudo iptables -I INPUT 1 --dport 80 -j ACCEPT//查看NAT表规则信息
sudo iptables -t nat –L//清除NAT表所有规则链的规则
sudo iptables -F -t nat
sudo iptables -X -t nat//在NAT表某个规则链末尾新增一条规则
sudo iptables -t nat -A PREROUTING …//从NAT表某个规则链中删除一条规则
sudo iptables -t nat -D PREROUTING …
常用匹配参数
- 参数 -p, –protocol
指定通讯协议类型,如tcp、udp、icmp 等,使用 all 关键词指定所有类型 - 参数 -s, --src, --source
来源 IP地址,可以是单个IP或网络(-s 192.168.1.0/24) - 参数 -d, --dst, –destination
目的 IP地址,同上 - 参数 --sport, --source-port
数据包的来源端口号,可以是单个端口或端口范围(--sport 8010:8080) - 参数 --dport, --destination-port
数据包的目的端口号,同上 - 参数 -i, --in-interface
指定数据包从哪个网口进入,支持通配字符 + (-i eth+ 表示所有的 ethernet 网卡) - 参数 -o, --out-interface
指定数据包从哪个网口发出,同上
常用处理参数
参数 –j :用来指定要进行的处理动作
- ACCEPT 将封包放行,进行完此处理动作后,将不再比对其它规则
- REJECT 拦阻该封包,并传送封包通知对方
- DROP 丢弃封包不予处理,进行完此处理动作后,将不再比对其它规则
- REDIRECT 将封包重新导向到另一个端口(PNAT),进行完此处理动作后,将 会继续比对其它规则
- MASQUERADE 改写封包来源 IP 为防火墙 NIC IP,可以指定 port 对应的范围,进行完此处理动作后,直接跳往下一个规则炼(mangle:postrouting)
- SNAT 改写封包来源 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处理动作后,将直接跳往下一个规则炼(mangle:postrouting)
- DNAT 改写封包目的地 IP 为某特定 IP 或 IP 范围,可以指定 port 对应的范围,进行完此处理动作后,将会直接跳往下一个规则炼(filter:input 或 filter:forward)
- MIRROR 镜射封包,也就是将来源 IP 与目的地 IP 对调后,将封包送回,进行完此处理动作后,将会中断过滤程序
- QUEUE 中断过滤程序,将封包放入队列,交给其它程序处理
Comments
Post a Comment