iptables

173 阅读3分钟

一、iptables应用:

1.规则添加:

类别条件类型用法示例
通用匹配协议匹配-p 协议名 可以是tcp、udp或者icmp。iptables -I INPUT -p icmp -j DROP
地址匹配-s 源地址、-d 目的地址iptables -A FORWARD -s 192.168.1.11 -j REJECT
接口匹配-i 入站网卡、-o 出站网卡ipables -t nat -I PROROUTING -i ens33 条件 iptables -t nat -I POSTROUTING -I OUPUT -o ens33 条件
隐含匹配端口匹配—sport 源端口、—dport 目的端口iptables -R INPUT 1 -p tcp —dport 80 -j ACCEPT
TCP标记匹配—tcp-flags 检查范围 被设置的标记
ICMP类型匹配—icmp-type [ICMP类型 两个参数]习惯使用 -p tcp —syn
连续端口—dport 端口:端口iptables -I INPUT -p tcp —dport 8000:9000 -j ACCEPT
显式匹配多端口匹配(离散)-m multiport {—sports \—dports } 端口列表iptables -I INPUT 2 -p tcp -m multiport —dport 80,8080,3306 -j ACCEPT
IP范围匹配-m iprange —src-range IP范围192.168.12.2-192.168.12.200
MAC地址匹配-m mac —mac-source MAC地址04:42:1A:87:B2:7C
状态匹配-m state —state 连接状态 (NEW新连接、ESTABLISHED双向传输、RELATED已连接的数据包,后续的操作、INVAILD未知链接,一般DROP)iptables -I INPUT -m -state —state RELATED,ESTABLISHED

2.规则保存:

iptables中设置的规则会因为重启iptables而消失。

systemctl restart iptables 验证是否重启后丢失

如何保存规则:

(1)iptables-save > /etc/sysconfig/iptables

(2)service iptables save

image.png

3.NAT表操作:

完成各种转发配置:通过prerouting和postrouting 实现NAT操作

完成nat配置之前必须设置系统转发:

(1)配置/etc/sysctl .conf 文件

1.添加内容

vi sysctl.conf

net.ipv4.ip_forward=1

2.加载文件

sysctl -p

(2)直接修改/proc/sys/net/ipv4/ip_forward的值

echo 1 > /proc/sys/net/ipv4/ip_forward

(3)查看:

cat /proc/sys/net/ipv4/ip_forward 如果值为1,则开启转发

(4)配置nat表实现本机端口转发:

将8080端口映射到本机88端口:

iptables -t nat -I PREROUTING -p tcp --dport 88 -j REDIRECT --to-port 8080

将指定ip的8080端口请求映射到88端口:

iptables -t nat -I PREROUTING -p tcp -s 192.168.102.50 --dport 88 -j REDIRECT --to-port 8080

(5)windows通过linux指定端口转发woniunote.com请求:

image.png

windows->linux

​ iptables -t nat -I PREROUTING -p tcp -d 192.168.32.136 —dport 88 -j DNAT —to 117.78.49.99:80

​ Linux—> woniunote.com

​ iptables -t nat -I POSTROUTING -p tcp -d 117.78.49.99 —dport 80 -j SNAT —to 192.168.32.136:88

4.SNAT

snat : 源地址转换:

场景:实现一个内网中主机通过iptables设置snat成功访问外网。

image.png

准备工作:

(1)在iptables所在centos上添加网卡:

image.png

(2)重启linux,进入/etc/sysconfig/network-scripts/目录

1.复制ifcfg-ens33 改名为ifcfg-ens37 2.修改ens37配置文件

image.png

(3)配置仅主机模式centos

image.png

(4)配置iptables:

1.检查系统转发:
cat /proc/sys/net/ipv4/ip_forward 是否为1

2.开filter中的转发:
iptables -I FORWARD -j ACCEPT

3.配置nat表的POSTROUTIING链
iptables -t nat -I POSTROUTING -o ens33 -s 192.168.21.100 -j SNAT —to 192.168.32.136

5.DNAT:

dnat: 目的地址转换:

场景:windows通过输入防火墙ip:port 成功访问内网中web服务

image.png

iptables配置:

iptables -t nat -I PREROUTING -p tcp -i ens33 -d 192.168.32.136 —dport 88 -j DNAT —to 192.168.21.100:80