iptables 配置

it2023-04-04  73

如果想要永久生效,我们要编辑/etc/sysctl.conf文件,设置net.ipv4.ip_forward = 1,然后用sysctl -p命令使配置文件生效。我们使用-t nat参数指明使用nat表,因为iptables默认使用filter表。 nat表同filter表一样有三条缺省的"链"(chains): POSTROUTING:定义进行源地址转换规则,重写数据包的源IP地址 PREROUTING:定义进行目的地址转换的规则,可以把外部访问重定向到其他主机上 OUTPUT:定义对本地产生的数据包的目的转换规则。 我们要利用iptables进行NAT转换时,使用的动作主要为SNAT、DNAT和REDIRECT: SNAT:源地址转换 DNAT:目的地址转换 REDIRECT:端口重定向

(1)规则操作

-A:在链的尾部添加一条规则 -D CHAIN [num]: 删除指定链中的第num条规则 -I CHAIN [num]:在指定链内第num条位置插入一条规则 -R CHAIN [num]: 替换链内指定位置的一条规则

(2)源/目的IP地址

-s:指定源地址 --dst:指定目的地址

(3)网络接口

-i:入站接口。对于`PREROUTING`链,只能用-i指定进来的网络接口 -o:出站接口。对于POSTROUTING和OUTPUT,只能用-o指定出去的网络接口

(4)动作

ACCEPT:放行 DROP:丢弃 REJECT:拒绝 MASQUERADE:地址伪装 LOG:日志 MARK:标记

源/目的转发实例

1.源NAT(SNAT) 更改所有来自192.168.1.0/24的数据包的源IP地址为123.4.5.100

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 123.4.5.100

2.目的NAT(DNAT) 更改所有来自192.168.1.0/24的数据包的目的ip地址为123.4.5.100

iptables -t nat -A PREROUTING -s 192.168.1.0/24 -i eth1 -j DNAT --to 123.4.5.100

端口转发实例

1.本机端口转发 把发往本机80端口的数据重定向到8080端口

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

2.远程端口转发 把访问123.4.5.100:8080的数据包转发到123.4.5.200:80

iptables -t nat -A PREROUTING -d 123.4.5.100 -p tcp --dport 8080 -j DNAT --to-destination 123.4.5.200:80

filter表

#先放行ssh,INPUT链及OUTPUT链都要放行。

iptables -A INPUT -d 176.16.128.1 -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -s 176.16.128.1 -p tcp --sport 22 -j ACCEPT

#添加新规则的时候要插入在默认拒绝规则前,除这些规则外的都将拒绝。

iptables -A INPUT -d 176.16.128.1 -j REJECT iptables -A OUTPUT -s 176.16.128.1 -j REJECT

#设置链上的默认策略为允许。

iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT

保存规则:

service iptables save

重载规则:

service iptables restart

默认重载:/etc/sysconfig/iptables 配置文件:/etc/sysconfig/iptables-config

https://www.cnblogs.com/qiangyuzhou/p/10657494.html

最新回复(0)