PCZONE 討論區

PCZONE 討論區 (https://www.pczone.com.tw/vbb3/)
-   -- 網 路 技 術 版 (https://www.pczone.com.tw/vbb3/forum/29/)
-   -   iptables 的問題 (https://www.pczone.com.tw/vbb3/thread/29/119619/)

threesecond 2005-12-30 06:38 PM

iptables 的問題
 
系統環境:
Fedora Core4
Kernel 2.6.14-1
iptables 1.30

架構大致如下:
Server -> Hub -> NAT -> ATU-R -> Internet

NAT: Fedora Core 4
Server: WWW, MySQL, Mail server.......

對外網卡為 eth0
對內網卡為 eth1

前次系統掛點 (RedHat7),後來系統重灌為 FC4,我將原先的 iptables script 複製到 FC4 裡面,執行後在 iptables -t nat -L 裡面可以看到執行後的 rules,但外面卻無法連線到 LAN 內的 Server,script 如下:[code]
#!/bin/bash

#-----先清除舊有的iptables-----
iptables -t filter -F
iptables -t nat -F
iptables -t mangle -F

#-----初始化iptables-----------
echo "1" > /proc/sys/net/ipv4/ip_forward
modprobe ip_nat_ftp # 同上,處理 ftp 等連結問題
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/16 -j MASQUERADE


#---------- httpd port80 重導 ---------------
iptables -A PREROUTING -t nat -p tcp -d 202.145.***.137 --dport 80 -j DNAT --to 192.168.0.99:80
iptables -A OUTPUT -t nat -p tcp -d 202.145.***.137 --dport 80 -j DNAT --to 192.168.0.99:80

iptables -A PREROUTING -t nat -p tcp -d 202.145.***.138 --dport 80 -j DNAT --to 192.168.0.101:80
iptables -A OUTPUT -t nat -p tcp -d 202.145.***.138 --dport 80 -j DNAT --to 192.168.0.101:80
(以下省略)[/code]

現在內部網路都已經可以連外了,但是外面的 Client 無法連上 Server 的 WWW 服務,請問上面的 script 出了什麼問題嗎?
或者還需要哪些資料?我再補上。

dou0228 2005-12-30 06:46 PM

output chain 是不須要 DNAT 的

threesecond 2005-12-30 08:58 PM

[QUOTE=dou0228]output chain 是不須要 DNAT 的[/QUOTE]
不需要 DNAT?請問該怎麼輸入指令呢?
iptables -A PREROUTING -t nat -p tcp -d 202.145.***.137 --dport 80 --to 192.168.0.99:80
iptables -A OUTPUT -t nat -p tcp -d 202.145.***.137 --dport 80 --to 192.168.0.99:80
這樣執行後會跳出錯誤訊息耶。

麻煩請指教,謝謝。

dou0228 2005-12-30 09:43 PM

[QUOTE=threesecond]不需要 DNAT?請問該怎麼輸入指令呢?
iptables -A PREROUTING -t nat -p tcp -d 202.145.***.137 --dport 80 --to 192.168.0.99:80
iptables -A OUTPUT -t nat -p tcp -d 202.145.***.137 --dport 80 --to 192.168.0.99:80
這樣執行後會跳出錯誤訊息耶。

麻煩請指教,謝謝。[/QUOTE]
我的意思是..
Destination NAT 是必須在 PREROUTING 就做掉的
你在 OUTPUT 做實在是非常的奇怪

你只須要 iptables -A PREROUTING -t nat -p tcp -d 202.145.***.137 --dport 80 -j DNAT --to 192.168.0.99:80

linux_xp 2005-12-30 10:50 PM

2 個附加檔案
這兒有現成的 shell script,還不錯用,拿去用吧 ;)

根據書籍的範例檔,小幅度修改
於 FC4 測試 OK

把檔頭部份的變數填一填就可以用了
script 內附有完整中文說明註解


附件:閘道防火牆 shell script
格式:UTF-8 (無BOM),unix 斷行


若 windows 下文書編輯器無法顯示 utf-8
請下載 Notepad++ 免費編輯軟體,用它開啟:
[url]http://notepad-plus.sourceforge.net/tw/site.htm[/url]

若 Linux 下 vi 開啟,註解說明部份出現亂碼
請確定 i18n 已設定為 utf-8,或者將該檔編碼轉成 Big5

:)

threesecond 2005-12-31 08:55 AM

[QUOTE=dou0228]我的意思是..
Destination NAT 是必須在 PREROUTING 就做掉的
你在 OUTPUT 做實在是非常的奇怪

你只須要 iptables -A PREROUTING -t nat -p tcp -d 202.145.***.137 --dport 80 -j DNAT --to 192.168.0.99:80[/QUOTE]

果然拿掉 OUTPUT 那行就一切正常了,感謝您!

To linux_xp:
您給的設定檔是從旗標那本書改的嗎?這本書我也有買,正在研讀中,
但現在當務之急是先讓公司的網站正常運作,日後再照書慢慢調整,
同樣感謝您的熱心!

threesecond 2006-01-04 06:47 PM

2 個附加檔案
這是修改自 linux_xp 提供的 gw-firewall-utf8.zip,加入了多重對外IP的功能,
主要修改的區段為 LAN_TCP_DNAT 和 LAN_UDP_DNAT,使用方法請見檔案註解,記得先做 ip alias 將多重 IP 綁在 eth0 上面。

這是因為我本身的網路有多個對外固定 IP,有這個需求,因此修改檔案並提供給各位參考使用。


所有時間均為 +8。現在的時間是 01:42 PM



 XML   RSS 2.0   RSS 
本站使用 vBulletin 合法版權程式
站務信箱 : [email protected]

本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。