我在办公室有一个 Ubuntu 防火墙盒(Alma),上面有一个 Web 服务器。它看起来像这样:
[Internet] <-> [DSL Router] <-> [Alma]
|
[DMZ:10.1...] <--+--> [Internal LAN:192...]
每当我在 Alma 之外的家里时,我都可以通过 SSH 轻松访问它。当我在里面时,在内部 LAN 上我无法使用公共 IP 地址登录盒子,而必须使用本地子网 192...Alma 有 3 个 NIC 接口。
我希望能够使用单个公共 IP 地址编写一些脚本。假设它是 7.7.7.7。这个问题阻止了轻易地做到这一点。有没有办法发出这个命令:
ssh 7.7.7.7
可以在 192 子网以及互联网上工作吗?奇怪的是,我可以从内部或外部 ping 7.7.7.7。但是当我尝试从内部通过 SSH 连接到 7.7.7.7 时,连接被拒绝。
我做错了什么,或者做得不对?
我的 SSH 守护进程监听 0.0.0.0。当我从内部尝试时,防火墙根本不记录任何尝试。
任何帮助表示赞赏。
答案1
答案2
当从内部LAN访问时,您必须配置Alma对公共IP地址进行目标NAT。
假设 7.7.7.7 是公共地址,192.168.2.1 是本地 IP。然后将这些行放在 iptables 配置中:
-A 预路由 -d 7.7.7.7 -s 192.168.2.0/24 -j DNAT --到目的地 192.168.2.1
来自本地 LAN 的任何 7.7.7.7 数据包都将被重新路由(使用目标 NATing)到 192.168.2.1