作者 主題: NAT [內部機器出不去]  (閱讀 5803 次)

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

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
NAT [內部機器出不去]
« 於: 2001-12-24 19:20 »
OS: RedHat 7.2 (已把iptable 拿掉, 改用 modporbe ipchains)

1. eth0 為實體IP 網路卡
2. eth1 為虛擬IP 網路卡(10.0.0.240)

Q: 不知道為什麼原因,  內部機器出不去(連當gateway 的機器也出不去) ,
    是不是哪裡設錯了?!

   


# !/bin/bash
# ---------  Define the IP Variable ---------
   any="0.0.0.0/0"
   vnet="10.0.0.0/24"
   dns7="61.200.200.200"
   

# ---------  Initial the Firewall-IPChains  ---------
/etc/init.d/ipchains stop
/etc/init.d/ipchains start
ipchains -F
ipchains -X
ipchains -P input DENY
ipchains -P forward DENY
ipchains -P output DENY

# ---------  Enable the LANhost & Localhost connection ---------

ipchains -A input -i lo -j ACCEPT
ipchains -A output -i lo -j ACCEPT
ipchains -A input -i eth1 -j ACCEPT
ipchains -A output -i eth1 -j ACCEPT

echo '1' > /proc/sys/net/ipv4/ip_forward
ipchains -A forward -p all -s $vnet -j MASQ

# ---------  Enable DNS (use -b bidirect) ---------
ipchains -A input  -i eth0 -b -p tcp -d $dns7 53 -j ACCEPT
ipchains -A output  -i eth0 -p tcp -s $dns7 53 -j ACCEPT
ipchains -A input  -i eth0 -b -p udp -d $dns7 53 -j ACCEPT
ipchains -A output -i eth0 -p udp -s $dns7 53 -j ACCEPT

# ---------  Enable SSH ---------
ipchains -A input -i eth0 -b -p tcp -d $dns7 22 -j ACCEPT
ipchains -A output -i eth0 -p tcp -s $dns7 22 -j ACCEPT
ipchains -A input -i eth0 -b -p udp -d $dns7 22 -j ACCEPT
ipchains -A output -i eth0 -p udp -s $dns7 22 -j ACCEPT

# ---------  Enable www ---------
ipchains -A input -i eth0 -p tcp -d $dns7 80 -j ACCEPT
ipchains -A output -i eth0 -p tcp -s $dns7 80 -j ACCEPT
ipchains -A input -i eth0 -p udp -d $dns7 80 -j ACCEPT
ipchains -A output -i eth0 -p udp -s $dns7 80 -j ACCEPT

# ---------  Optimize the Output Rule ---------
# --------- 0x10-Min Delay  
# --------- 0x08-Max Troughput  
# --------- 0x04-Max Reliability
# --------- 0x02-Min Spend bit

ipchains -A output -p udp -d $any nameserver -j ACCEPT -t 0x01 0x10
ipchains -A output -p tcp -d $any nameserver -j ACCEPT -t 0x01 0x08
ipchains -A output -p tcp -d $any www -j ACCEPT -t 0x01 0x10
ipchains -A output -p tcp -d $any telnet -j ACCEPT -t 0x01 0x10
ipchains -A output  -p tcp -d $any ftp -j ACCEPT -t 0x01 0x10
ipchains -A output -p tcp -d $any ftp-data -j ACCEPT -t 0x01 0x08
ipchains -A output -p tcp -d $any smtp -j ACCEPT -t 0x01 0x08
ipchains -A output -p tcp -d $any pop-3 -j ACCEPT -t 0x01 0x02

Anonymous

  • 訪客
NAT [內部機器出不去]
« 回覆 #1 於: 2001-12-24 20:54 »
先這樣試試吧﹕

ipchains -P input ACCEPT
ipchains -P output ACCEPT
ipchains -F
ipchains -X
ipchains -P forward MASQ

如果這樣還不行的話﹐先確定 nat 本身能上網﹐
同時 ip_forward 有打開﹐
再來 client 能連上 nat﹐並且 default gateway 指向 NAT。

如果可以的話﹐那就是上面的規則有問題。
至於那行的問題﹐嗯﹐抱歉﹐我暫時沒時間幫您 debug ﹐或陬尼琣釭臟A回來吧。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
NAT [內部機器出不去]
« 回覆 #2 於: 2001-12-25 11:17 »
netman 您的ipchains 指令, 是可以行的通.

不過, 這段命令, 已經把"門"全都打開了.

奇怪的是,
ipchains -F
ipchains -X
ipchains -P input DENY
ipchains -P forward DENY
ipchains -P output DENY

這些命令一執行, 不管下面再怎麼定義ipchains, 門全都被鎖死.

使用portscan 也找不到"門"

Anonymous

  • 訪客
NAT [內部機器出不去]
« 回覆 #3 於: 2001-12-25 14:09 »
這證明了您的規則設定有問題。
我這裡不一一幫您做檢查了﹐因為我以前做過﹐這非常花時間﹐如果機器不在身邊﹐同時網路環境不了解的話﹐所花時間恐怕更多。請您體諒我﹐因為我每天下來﹐除了要回答您的問題外﹐光是 email 就有十來封了﹐不太可能一一詳細回答了。非常抱歉。

不過﹐我給您的建議如下﹕
1) 了解每個服務的特性
2) 注意連線是雙向的
3) 注意規則的 first match 原則
4) 可以先開放﹐然後逐一針對懷疑的規則做 DENY 來測試
5) 也可以全部關閉﹐然後針對懷疑的規則做 ACCEPT (但比較複雜﹐因為有時候可能需要好幾條規則一起 ACCEPT 或 MASQ)
6) 儘量從大範圍縮小
7) 抓封包來看

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
NAT [內部機器出不去]
« 回覆 #4 於: 2001-12-27 16:57 »
echo '1' > /proc/sys/net/ipv4/ip_forward
這行應該是這樣
echo "1" > /proc/sys/net/ipv4/ip_forward
...^^
是雙引號喔...

Anonymous

  • 訪客
NAT [內部機器出不去]
« 回覆 #5 於: 2001-12-28 01:32 »
雙引號和單引號都一樣的﹐只要 1 與 > 符號之間有空白鍵存在就好。

...

  • 酷學園旁聽生
  • 俺是博士!
  • *****
  • 文章數: 5607
    • 檢視個人資料
NAT [內部機器出不去]
« 回覆 #6 於: 2001-12-28 14:19 »
cc..抱歉獻醜了...^^