linux中iptables防火墙相关命令
https://www.cnblogs.com/seven1979/p/4173927.html
https://blog.csdn.net/shenjianxz/article/details/62877992
iptables配置文件 直接改iptables配置就可以了:
vim /etc/sysconfig/iptables
你首先要明白什么是"PREROUTING" ,什么是"POSTROUTING",我们可以简单的用下面的关系来表示:
源地址发送数据--> {PREROUTING-->路由规则-->POSTROUTING} -->目的地址接收到数据
PREROUTING(SNAT) 源地址转换 将局域网中用户的IP地址NAT转换成172.17.16.126,使他们也可以上网
正确的做法是
iptables -t nat -A PREROUTING -s 100.64.0.0/17 -j SNAT 172.17.16.126
iptables -t nat -A PREROUTING -s 100.64.0.0/17 -j SNAT 172.17.16.126
POSTROUTING 用于别人访问你的内部服务器,例如:
A.你的服务器IP地址为:192.168.1.2;
B.你的防火墙(Linux & iptables)地址为192.168.1.1和202.96.129.5
的用户可以正常的访问202.96.129.5,但他们无法访问192.168.1.2,这时在Linux防火墙里可以做这样的设置:
iptables -t nat -A POSTROUTING -d 202.96.129.5 -j DNAT 192.168.1.2
这样别人就可以访问你的192.168.1.2
A.你的服务器IP地址为:192.168.1.2;
B.你的防火墙(Linux & iptables)地址为192.168.1.1和202.96.129.5
的用户可以正常的访问202.96.129.5,但他们无法访问192.168.1.2,这时在Linux防火墙里可以做这样的设置:
iptables -t nat -A POSTROUTING -d 202.96.129.5 -j DNAT 192.168.1.2
这样别人就可以访问你的192.168.1.2
我们要记住PREROUTING是“路由规则”之前的动作,POSTROUTING是“路由规则”之后的动作!
——————————————————————————————————————————————
例子:
目的地址转换
iptables -t nat -A PREROUTING -i eth0 -s 192.16.0.0/24 -j DROP
来自于 eth0 这个网卡 IP地址段是 192.16.0.0/24 的转换全部 丢弃
iptables -t nat -A PREROUTING -i eth0 -s 192.16.0.0/24 -j DROP
来自于 eth0 这个网卡 IP地址段是 192.16.0.0/24 的转换全部 丢弃
iptables -t nat "-t nat"为选择nat表,iptables有四个表与五个链,
4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。表的处理优先级:raw>mangle>nat>filter。
filter:一般的过滤功能
nat:用于nat功能(端口映射,地址映射等)
mangle:用于对特定数据包的修改
raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能
-A 向PREROUTING末端添加一条规则
5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARDING:通过路由表后,目的地不为本机
OUTPUT:由本机产生,向外转发
POSTROUTIONG:发送到网卡接口之前
-i -进入的(网络)接口
-s 指定源地址
-j 指定规则的目标
DROP 拒绝
4个表:filter,nat,mangle,raw,默认表是filter(没有指定表的时候就是filter表)。表的处理优先级:raw>mangle>nat>filter。
filter:一般的过滤功能
nat:用于nat功能(端口映射,地址映射等)
mangle:用于对特定数据包的修改
raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能
-A 向PREROUTING末端添加一条规则
5个链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARDING:通过路由表后,目的地不为本机
OUTPUT:由本机产生,向外转发
POSTROUTIONG:发送到网卡接口之前
-i -进入的(网络)接口
-s 指定源地址
-j 指定规则的目标
DROP 拒绝