Ssh
如何使用 iptables 將 HTTP 和 SSH 埠轉發到我的內部伺服器?
我沒有路由器,所以我把我的 CentOS 6.4 Linux 系統變成了路由器,將公共網路流量轉發到我的本地 LAN。它有兩張網卡,一張用於公共 IP 地址 (eth1),另一張用於專用 IP 地址 (eth2)。
我有一台連接到本地 LAN 的伺服器,比如說在
192.168.1.2
.路由器
- eth1:
x.x.x.x
, 公網 IP 地址- eth2:
192.168.1.1
,內部路由器地址當來自外部網路的某人在公共 IP 上執行 ssh 時,它應該被重定向到伺服器:
ssh x.x.x.x
或使用PuTTY我禁用了伺服器上的 SELinux 和 iptables 防火牆。我在 Linux 系統路由器上嘗試了一些 iptables 修改,但是 SSH 請求仍然沒有重定向:
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.1 --dport 22 -j DNAT --to-destination 192.168.1.2:22
我還想使用來自同一 Linux 系統路由器的 iptables 將所有 HTTP (80) 流量轉發到我的內部伺服器。
首先確保在核心中啟用了數據包轉發
# echo 1 > /proc/sys/net/ipv4/ip_forward
您也可以通過添加以下行使其永久化
/etc/sysctl.conf
net.ipv4.ip_forward = 1
您必須在充當路由器的 Linux 機器上執行此操作。您可以在路由器機器上嘗試以下規則。
iptables -t nat -A PREROUTING -i eth1 -d x.x.x.x -p tcp --dport 22 -j DNAT --to-destination 192.168.1.2:22
還要讓我們知道您的 NAT 規則從路由器框中的輸出。
iptables -t nat -L -n -v