Linux 2.4 NAT (网络地址转换) HOWTO(四)

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介:

7. 特殊协议

有些协定是并不想要做 NAT 的。对于每一个这样的协议而言﹐有两个延伸设定(extension)是必须要写清楚的:一个是关于协议之联机追踪﹐另一个关于实际的 NAT

 netfilter 发行套件里面﹐有一些关于 ftp 的现行模块﹕ip_conntrack_ftp.o  ip_nat_ftp.o 。如果您把这些插入到您的核心里面(或您永久性的编译它们)﹐那么要在 ftp 联机上做任何种类的 NAT 都是可行的。如果您不这样的话﹐那您可以使用被动模式 ftp﹐不过如果您要做一些动作甚于简单 Source NAT 的话﹐这就可能不那么可靠了。

8. NAT 的一些限制 (caveats)

如果在一个联机上做 NAT﹐所有 双向 (传出和传入的封包﹐都必须要通过 NAT 主机才 行﹐否则并不可靠。尤其在联机追踪程序重组碎片 (fragments)的时候﹐也就是说﹐不但联机追踪会不可能﹐而且您的封包根本就不能通过﹐因为碎片会被挡下。

9. Source NAT 与路由

如果您要做 SNAT﹐您会想要确定经过 SNAT 封包所传给的主机会将响应送回给 NAT 主机。例如﹐如果您映对某些传出封包到来源地址 1.2.3.4 之上﹐那么 部的路由器就必须知道要将响应封包(目的地1.2.3.4 )送回给该主机。这可以用如下方法做到﹕

1.     如果您要在主机自己的地址(路由和其它所有运作皆正常)上面做 SNAT﹐您无需做任何动作。

2.     如果您要在一个在本机网络上尚未使用的地址做 SNAT(例如﹐映对到在 1.2.3.0/24 网络上的一个可用 IP 1.2.3.99)﹐您的 NAT 主机就需要响应关于该地址的 ARP 请求﹐一如它自己本身的一样﹕最简单的方法就是建立 IP alias﹐例如﹕

3.  # ip address add 1.2.3.99 dev eth0

4.     如果您要在一个完全不同的地址上做 SNAT﹐您就要确定 SNAT 封包抵达的机器能够路由回该 NAT主机。如果 NAT 主机是它们的默认网关的话﹐是可以做到的﹐否则﹐您就要广告(advertize )一个路由(如果跑路由协议的话)﹐或是手工的在每一台参与机器上增规则

10. 在同一网络上的 Destination NAT

如果您要做 portforwarding 回到同一个网络﹐您要确定前向和响应封包双方都经过该 NAT 主机(这样它们 能被修改)NAT 程序从现在开始(2.4.0-test6以后)﹐会挡掉后面情形所产生的传出 ICMP 重导向﹕那些已经 NAT 的封包以它所进入的相同界面传出﹐而接收端服务器仍尝试直接响应到客户端(不认可该响应)

经典的情形是内部人员尝试连接到您的 `公有(public)' 网站服务器﹐实际上是从公有地址(1.2.3.4) DNAT 到一个内部的机器(192.168.1.1)去﹐就像这样﹕

# iptables -t nat -A PREROUTING -d 1.2.3.4 \

        -p tcp --dport 80 -j DNAT --to 192.168.1.1

一个方法是跑一台内部 DNS 服务器﹐它知道您的公有网站的真正(内部) IP 地址﹐而将其它请求转传给 部的 DNS 服务器。换而言之﹐关于您网站服务器的记录会正确地显示为内部 IP 地址。

而另一个方法是同时让这台 NAT 主机将该等联机之来源 IP 地址映对为它自己的地址﹐我们可以像如下那样做(假设 NAT 主机之内部 IP 地址为 192.168.1.250)

# iptables -t nat -A POSTROUTING -d 192.168.1.1 -s 192.168.1.0/24 \

        -p tcp --dport 80 -j SNAT --to 192.168.1.250

因为 PREROUTING 规则是最先执行的﹐对内部网站服务器而言﹐封包就已经被定向好了﹕我们可以内定好哪个为来源 IP 地址。

11. 感谢

首先感谢在我工作期间相信 netfilter 的构想并支持我的 WatchGuard  David Bonn

以及所有其他帮我指正 NAT 之不足的朋友﹐尤其是那些读过我的日记的。

Rusty.










本文转自 makewong 51CTO博客,原文链接:http://blog.51cto.com/makewong/565362,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
目录
相关文章
|
1月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
81 2
|
3天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
57 7
|
1月前
|
域名解析 网络协议 安全
|
1月前
|
负载均衡 安全 网络安全
|
2月前
|
运维 监控 网络协议
|
1月前
|
存储 Ubuntu Linux
2024全网最全面及最新且最为详细的网络安全技巧 (三) 之 linux提权各类技巧 上集
在本节实验中,我们学习了 Linux 系统登录认证的过程,文件的意义,并通过做实验的方式对 Linux 系统 passwd 文件提权方法有了深入的理解。祝你在接下来的技巧课程中学习愉快,学有所获~和文件是 Linux 系统登录认证的关键文件,如果系统运维人员对shadow或shadow文件的内容或权限配置有误,则可以被利用来进行系统提权。上一章中,我们已经学习了文件的提权方法, 在本章节中,我们将学习如何利用来完成系统提权。在本节实验中,我们学习了。
|
2月前
|
Ubuntu Linux 虚拟化
Linux虚拟机网络配置
【10月更文挑战第25天】在 Linux 虚拟机中,网络配置是实现虚拟机与外部网络通信的关键步骤。本文介绍了四种常见的网络配置方式:桥接模式、NAT 模式、仅主机模式和自定义网络模式,每种模式都详细说明了其原理和配置步骤。通过这些配置,用户可以根据实际需求选择合适的网络模式,确保虚拟机能够顺利地进行网络通信。
120 1
|
2月前
|
网络协议 安全 网络安全
Cisco-网络端口地址转换NAPT配置
Cisco-网络端口地址转换NAPT配置
|
2月前
|
安全 网络安全 数据安全/隐私保护
Cisco-网络地址转换动态NAT
Cisco-网络地址转换动态NAT
|
2月前
|
安全 网络安全 数据安全/隐私保护
Cisco-网络地址转换静态NAT
Cisco-网络地址转换静态NAT