Firewall
3 個獨立網路中的 3 個介面之間的路由
序幕
問候網路工程師!我將感謝您在以下情況下的幫助。我做了一些研究,我只找到了兩個解決方案。而且因為其中一個不適合我,我需要你的幫助來處理第二個。
環境
我有 2 台設備,總共有 3 個介面。每個介面在不同的 VLAN 中。這是一個概述:
Name: DevA Type: Red Hat Enterprise Linux (v7) Interface #1: eth0 Interface #1: xxx.xxx.215.222
和
Name: DevB Type: MikroTik RouterOS v6.42 Interface #1: ether1 Interface #1: zzz.zzz.214.128 Interface #2: ether2 Interface #2: yyy.yyy.216.92
在這裡,我們將提供更多詳細資訊:
- 3 個介面中的每一個都有公共靜態 IP 地址。
- 3 個介面中的每一個都可以訪問網際網路。
- DevA 上執行著一些服務(例如,在埠 666 和 999 上執行)。
目標
- DevB 只能在ether1上從 Internet 訪問。
- 設備 DevA 和 DevB 僅通過專用介面(eth0和ether2)相互通信。
- DevA 上的服務只能通過 DevB 訪問,不能直接從 Internet 訪問。
- 如果 DevA 想要訪問 Internet 中的某些內容(例如更新),則必須可以直接訪問。意思是,如果 DevA 發起連接,它會直接連接到 Internet。
- DevA 上的服務必須通過 DevB 的ether1 IP 地址對公眾可見(如果可能)。
- >
不允許在 DevA 和 DevB 之間使用 VPN 。這是我前面提到的解決方案,不適合這種情況。只有在沒有其他選擇的情況下,我才會考慮這一點。
我已經擁有了什麼
DevA - 防火牆配置
- allow all outgoing traffic on eth0 - allow all incoming traffic from ether2 to eth0 - allow all related and established connections - drop everything else
DevA - 路由配置
dst-address pref-src gateway distance 0.0.0.0/0 xxx.xxx.215.1 1 xxx.xxx.215.0/24 xxx.xxx.215.222 eth0 0
DevB - 防火牆配置
- allow all outgoing traffic on ether1 and ether2 - allow incoming traffic on ether1 for ports 666 and 999 - allow all incoming traffic from eth0 to ether2 - allow all related and established connections - drop everything else
DevB - 路由配置
dst-address pref-src gateway distance 0.0.0.0/0 zzz.zzz.214.1 1 zzz.zzz.214.0/24 zzz.zzz.214.128 ether1 0 xxx.xxx.215.0/24 yyy.yyy.216.1 1 yyy.yyy.216.0/24 yyy.yyy.216.92 ether2 0
那麼,你能幫我解決這個難題嗎?
我預計必須在 DevB 上配置更多路由(也許 NAT/偽裝?),也可能在 DevA 上。有任何想法嗎?如果我忘了提什麼,請問..
非常感謝。
您應該編寫一個 DNAT 規則來將流量從 DevB 轉發到 DevA,並且在 DevB 中編寫一個 SNAT/MASQUERADE 以使轉發的流量返回到 DevB 然後返回 Internet 也是一個好主意。像這樣:
脫氧核糖核酸:
ip firewall nat add chain=prerouting protocol=tcp dst-address=zzz.zzz.214.128 dst-port=666,999 action=dst-nat to-addresses=xxx.xxx.215.222
SNAT:
ip firewall nat add chain=srcnat dst-address=xxx.xxx.215.222 action=masquerade
順便說一句,明智的做法是將設備上應該相互連接的 2 個介面放在同一個 Vlan 上,並使用無效的 IP 地址使它們相互通信。(如果可能的話!)