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 拒绝
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)