作者 主題: 只有一張實體網卡可以做 iptables NAT?  (閱讀 4611 次)

0 會員 與 1 訪客 正在閱讀本文。

sclin2k

  • 懷疑的國中生
  • **
  • 文章數: 73
    • 檢視個人資料
大家好,

目前遇到一個情況;
系統環境: Ubuntu 16.04 ,配置一個 PUBLIC IP

當使用者輸入帳密驗證後,利用 iptables 寫一筆 NAT policy 將來源 IP、封包轉到 Internat 上另一台主機(有限制連線主機)。

一張網卡可以做嗎?

這樣下 nat policy OK嗎?
/sbin/iptables -t nat -A PREROUTING -s 111.111.111.111 -p tcp --dport 3389 -j DNAT --to-destination 222.222.222.222:389

« 上次編輯: 2017-12-14 21:40 由 sclin2k »

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 只有一張實體網卡可以做 iptables NAT?
« 回覆 #1 於: 2017-12-15 10:28 »
記得之前玩過是OK的, 但效能不好...
但問題往往是在routing上, 而不是再 NAT。
也就是當您 DNAT 過去的 server 在回應的時候, 封包要回到 NAT 身上, 而不是直接回給 client ...
所以, 你最好再多加一行規則:
/sbin/iptables -t nat -A POSTROUTING -d 222.222.222.222--dport 389 -j SNAT --to-source YOUR.NAT.IP.ADDRESS
(請將YOUR.NAT.IP.ADDRESS改成您 NAT 的 IP)

sclin2k

  • 懷疑的國中生
  • **
  • 文章數: 73
    • 檢視個人資料
Re: 只有一張實體網卡可以做 iptables NAT?
« 回覆 #2 於: 2017-12-15 12:22 »
感謝您的回覆,
我在把那條routing加上。
謝謝你!

darkranger

  • 榮譽學長
  • 俺是博士!
  • *****
  • 文章數: 1382
    • 檢視個人資料
    • https://darkranger.no-ip.org
Re: 只有一張實體網卡可以做 iptables NAT?
« 回覆 #3 於: 2017-12-15 13:28 »
當使用者輸入帳密驗證後,利用 iptables 寫一筆 NAT policy 將來源 IP、封包轉到 Internat 上另一台主機(有限制連線主機)。
認真讀了這段話
看起來像你想要讓使用者以某個 IP 身份去連某部主機
有想過用 VPN 解決嗎?

sclin2k

  • 懷疑的國中生
  • **
  • 文章數: 73
    • 檢視個人資料
Re: 只有一張實體網卡可以做 iptables NAT?
« 回覆 #4 於: 2017-12-15 13:43 »
會這樣做只是要臨時讓外部 Client 輸入帳密後暫時打開通往另一台軟體驗證主機做驗證的權限。

完成後就會關閉該 Client IP 的 Policy。

sclin2k

  • 懷疑的國中生
  • **
  • 文章數: 73
    • 檢視個人資料
Re: 只有一張實體網卡可以做 iptables NAT?
« 回覆 #5 於: 2017-12-15 14:31 »
唉啊!!! 我之前沒說清楚!

我 NAT 過去的伺服器(222.222.222.222)是 Windows 系統,下列那條指令不能下了。


DNAT 過去的 server 在回應的時候, 封包要回到 NAT 身上, 而不是直接回給 client ...
所以, 你最好再多加一行規則:
/sbin/iptables -t nat -A POSTROUTING -d 222.222.222.222--dport 389 -j SNAT --to-source YOUR.NAT.IP.ADDRESS
(請將YOUR.NAT.IP.ADDRESS改成您 NAT 的 IP)

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 只有一張實體網卡可以做 iptables NAT?
« 回覆 #6 於: 2017-12-15 23:26 »
那個跟 windows 無關啊,純 IP protocol 的事情...

sclin2k

  • 懷疑的國中生
  • **
  • 文章數: 73
    • 檢視個人資料
Re: 只有一張實體網卡可以做 iptables NAT?
« 回覆 #7 於: 2017-12-16 05:49 »
所以那行指令也是下在NAT(Ubuntu)那台嗎 ???

iptables 及路由我有點弱,不好意思 ;D


另外,我下那行指令會出現。—dport multi ......的錯誤

所以把 —dport 拿掉了,變成:
/sbin/iptables -t nat -A POSTROUTING -d 222.222.222.222 -j SNAT --to-source NAT_Server_IP(這裡是換成我伺服器的IP ??? 再詳細的回覆又好像是要填外部Client ip ???)

那我再試試,可能是我把 —dport 拿掉的問題,所以 routing 還是有問題。

我再多試幾次!

非常感謝 netman 的回覆,幫助了廣大的 Linux 使用者。


那個跟 windows 無關啊,純 IP protocol 的事情...
« 上次編輯: 2017-12-16 06:31 由 sclin2k »

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17484
    • 檢視個人資料
    • http://www.study-area.org
Re: 只有一張實體網卡可以做 iptables NAT?
« 回覆 #8 於: 2017-12-17 00:28 »
啊,漏了空白鍵:
/sbin/iptables -t nat -A POSTROUTING -d 222.222.222.222 --dport 389 -j SNAT --to-source YOUR.NAT.IP.ADDRESS

是的,也是在 NAT 上面打
IP 是 NAT 上面的 IP