Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Linux 的防火牆設計
與應用
Netman ( netman@study-area.org )
講師簡介
姓名
陳思永 (Kenny Chen)
學歷
澳洲國立新南威爾斯州理工技術學院 ( 雪梨理工 ---SIT, NSW TAFE)
專長
– 系統管理: Linux Administration
– 各種 Internet/Intran...
陳思永 (Kenny Chen)
Linux 授課經驗
• 曾授課地點 : 
巨匠電腦高雄認證中心、巨匠電腦台南認證中心 
聯成電腦教育學苑 ( 台南 ) 
聚碩科技教育訓練中心 ( 高雄啟迪 ) 
奇科電腦 ( 台北 ) 
網虎國際集團 ( ...
主題大綱
1. 防火牆的工作原理
2. Linux 的防火牆版本
3. Iptables 程式介紹
4. Iptables 應用例析
5. 常見問題及解決方案
  防火牆的工作原理
Part I
所謂網路連線其實就是兩個端點的連線
 1. 防火牆的工作原理
連線兩端透過封包 (packet) 傳遞資料
 1. 防火牆的工作原理
●
封包基本由 header 與 payload 組成
●
Packet 透過封裝傳遞
 1. 防火牆的工作原理
不同協定之封包封裝
 1. 防火牆的工作原理
TCP 封包之 header 內容



 1. 防火牆的工作原理
IP 封包之 header 內容 

 1. 防火牆的工作原理
●
Socket 是連線兩端的封包起止站
●
Socket 由 Address 與 Port 組成
 1. 防火牆的工作原理
每一個封包都含有一對 socket pair
●
Source Socket:
- Source Port (TCP Header bit 0-15)
- Source Address (IP Header bit 96-127)
●
Dest...
TCP 連線的建立方式 (three-way-handshake)
●
TCP header 之
bit 106-111
 1. 防火牆的工作原理
NAT 的工作原理
●
透過 socket 替換達成 routing
 1. 防火牆的工作原理
防火牆原理
透過檢查封包 header(or payload) 的內容來
決定封包是否能夠通過
 1. 防火牆的工作原理
防火牆常被部署在對內 ( 信任 ) 與對外
( 不信任 ) 網路之間的必經通道之上
 1. 防火牆的工作原理
DMZ 是防火牆部署中常見的設計
●
主要用來區隔堡壘主機,以降低入侵風險。
 1. 防火牆的工作原理
DMZ 之設計是多樣的
●
安全與成本及難度成正比、與便利成反比。
 1. 防火牆的工作原理
Internet 的連線常經過多重的防火牆過濾
 1. 防火牆的工作原理
Linux 的防火牆版本
Part II
Linux 的防火牆版本以 kernel 版本為別
- Kernel 2.0.x:
ipfwadm ( 搭配模組 ip_fw_*.o)
- Kernel 2.2.x:
ipchains ( 搭配模組 ip_masq_*.o)
- Kernel ...
* kernel 2.4/6.x 之 ipchains
●
ipchains 仍可編譯以模組方式載入
●
ipchains 不能與 iptables 同時載入
●
但沒提供 ipchains 可用的模組
結論:
盡量不要在 kernel 2.4...
Iptables 程式介紹
Part III
防火牆程式根據規則 (rule) 來處理封包
●
rule by rule
●
first match
●
policy
3. Iptables 程式介紹
防火牆規則收集於不同的鏈 (chain) 中
●
chain by chain
●
all through
3. Iptables 程式介紹
鏈存在於不同的表 (table) 中
●
different table for different job
●
table by table
3. Iptables 程式介紹
Iptables 內建三個 tables ( 及常用鏈 ) :
●
filter
INPUT
FORWARD
OUTPUT
●
nat
PREROUTING
POSTROUTING
OUTPUT
●
mangle
PREROUTING
OUTP...
Linux 系統對封包的 routing 處理
●
To local
●
To outside
3. Iptables 程式介紹
封包於 iptables 之穿行
●
When?
●
Where?
3. Iptables 程式介紹
封包於 iptables 之處理
●
Which table?
●
Which chain?
3. Iptables 程式介紹
一個非本機封包於 iptables 之處理
3. Iptables 程式介紹
iptables 命令格式:
iptables [-t table] -CMD CHAIN rule -j TARGET
常見 command :
●
列視規則: -L [CHAIN] [-n]
●
增加規則: -A CHAIN rule
●
...
常用 iptables 規則內容:
-i interface (only in PREROUTING, INPUT, FORWARD)
-o interface (only in POSTROUING, OUTPUT, FORWARD)
-s ...
關於 -m (match) 之應用:
-m state --state <STATE>
NEW ( 新建連線 )
ESTABLISHED ( 已成功建立之連線 )
RELATED ( 新建連線,但由已建立連線所引發 )
INVALID ( 非法...
常用 iptables 之 TARGET :
●
filter TARGET
ACCEPT: 允許封包通過當前的鏈
DROP: 拒絕封包通過當前的鏈
REJECT: 同 DROP ,但會送回 icmp 通知
●
nat TARGET
SNAT:...
iptables 命令行範例
●
拒絕新建連線進入本機:
iptables -t filter -A INPUT -m state --state NEW -j
DROP
●
允許從外部界面 (eth0) 連至本機之 web 連線:
iptab...
Iptables 應用例析
Part IV
常見 Linux Firewall 應用:
單一 client
允許單向連外,集中在 filter INPUT 。
單一 server
允許本機連外及特定服務,集中在 filter INPUT 。
4. Iptables 應用例析
常見 Linux Firewall 應用 ( 續 ) :
Gateway
●
允許本機連外及遠端操控,集中在 filter INPUT 。
●
允許由內連外,集中在 filter FORWARD 。
●
允許由外連內之服務,集中在 filter...
常見 Linux Firewall 應用 ( 續 ) :
NAT
●
允許本機連外及遠端操控,集中在 filter INPUT 。
●
允許由內連外,集中在 nat POSTROUTING 。
●
允許由外連內之服務,集中在 nat PRERO...
4.1 單一 client 主機規則範例:
# 清空規則
iptables -F
# 接受確認連線
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 接受 lo...
4.2 單一 server 主機 (web) 規則範例:
iptables -F
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPU...
4.3 單一 gateway 主機 ( 可路由 ) 應用:
4. Iptables 應用例析
4.3 單一 gateway 主機 ( 可路由 ) 規則範例:
iptables -F
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A I...
4.3 單一 gateway 主機 ( 可路由 ) 規則範例
( 續 ) :
# 允許 DNS 服務連線
iptables -A FORWARD -p udp --dport 53 -d 211.47.56.114 -j ACCEPT
# 允許...
4.4 單一 nat 主機 ( 不可路由 ) 應用:
4. Iptables 應用例析
4.4 單一 nat 主機 ( 不可路由 ) 規則範例:
iptables -F
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPU...
4.4 單一 nat 主機 ( 不可路由 ) 規則範例 ( 續 ) :
# 為 DNS 作 port-mapping
iptables -t nat -A PREROUTING -i eth0 -d 211.47.56.113 
-p udp ...
4.5 Transparent Proxy 應用:
●
免除 client 端設定
●
增加可控性
4. Iptables 應用例析
4.5 Transparent Proxy 規則範例:
●
iptables 設定:
iptables -t nat -A PRETROUTING -i eth1 -p tcp --dport 80 
-j REDIRECT --to-port...
常見問題及解決方案
Part V
5.1 auth 協定所導至的服務延
●
視服務程式需求而定
●
由 server 端發起
●
連至 client 端 tcp/113
* 解決方案
●
允許 auth 連線
-p tcp --dport 113 -j ACCEPT
●
拒絕 ...
5.2 ftp 服務連線無法建立資料通道
●
ftp 連線分兩個通道進行:
5. 常見問題及解決方案
5.2 ftp 服務連線無法建立資料通道
●
防火牆會擋掉由外之內的建立連線:
5. 常見問題及解決方案
5.2 ftp 服務連線無法建立資料通道
●
使用 passive mode 可穿越:
5. 常見問題及解決方案
5.2 ftp 服務連線無法建立資料通道
●
或搭配 ip_conntrack_ftp 模組亦可以解決:
5. 常見問題及解決方案
5.3 NAT 之下的 ftp 連線
●
NAT 只修改了 tcp/ip header ,並沒修改 ftp packet :
5. 常見問題及解決方案
5.3 NAT 之下的 ftp 連線
●
使用 ip_conntrack_ftp, ip_nat_ftp 及 --state RELATED
來解決:
5. 常見問題及解決方案
5.4 在同一 subnet 裡的 DNAT
●
Source Socket 沒被修改,及發生 ICMP host-redirect :
5. 常見問題及解決方案
5.4 在同一 subnet 裡的 DNAT
●
同時對 Source Socket 作修改即可解決:
iptables -t nat -A POSTROUTING -d 10.1.2.4 -s 10.1.2.0/24 -j SNAT
--to...
5.5 Subnet 太小不便切割
●
使用 proxy arp 降低浪費 :
echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
5. 常見問題及解決方案
5.6 Transparent Firewall 的應用
●
減少 IP 浪費 & 簡化部署難度
●
提高防禦安全 ( 本身無 IP 可連接 )
5. 常見問題及解決方案
5.6 Transparent Firewall 的設定
●
編譯核心修補,設為 bridge ( 以 kernel 2.4.25 為例 ) :
cd /usr/src/linux-2.4.25
wget http://heanet.dl.so...
5.6 Transparent Firewall 的設定 ( 續 ):
●
安裝 bridge-utils ( 以 rh9 為例 ) :
wget http://bridge.sourceforge.net/bridge-utils/bridg...
5.6 Transparent Firewall 的設定 ( 續 ):
brctl addbr mybridge
brctl addif mybridge eth0
brctl addif mybridge eth1
ifconfig eth0...
謝謝﹗
Q & A
Upcoming SlideShare
Loading in …5
×

Linux firewall

1,469 views

Published on

Linux 防火牆原理及 iptables 操作介紹。

Published in: Internet
  • Be the first to comment

Linux firewall

  1. 1. Linux 的防火牆設計 與應用 Netman ( netman@study-area.org )
  2. 2. 講師簡介 姓名 陳思永 (Kenny Chen) 學歷 澳洲國立新南威爾斯州理工技術學院 ( 雪梨理工 ---SIT, NSW TAFE) 專長 – 系統管理: Linux Administration – 各種 Internet/Intranet servers 的建置 , Network Security, 專長 Open Source solution 。 – 網路系統設計佈署及維護 – MIS 系統規劃整合與管理 專業認證 LPIC, RHCE, NCLP
  3. 3. 陳思永 (Kenny Chen) Linux 授課經驗 • 曾授課地點 :  巨匠電腦高雄認證中心、巨匠電腦台南認證中心  聯成電腦教育學苑 ( 台南 )  聚碩科技教育訓練中心 ( 高雄啟迪 )  奇科電腦 ( 台北 )  網虎國際集團 ( 高雄 ) • 曾授課內容 :  LPIC / NCLP / RHCE 國際認證課程 IBM Linux Linux Enterprise Security  Xlinux 1.0 System & Network Administrator
  4. 4. 主題大綱 1. 防火牆的工作原理 2. Linux 的防火牆版本 3. Iptables 程式介紹 4. Iptables 應用例析 5. 常見問題及解決方案
  5. 5.   防火牆的工作原理 Part I
  6. 6. 所謂網路連線其實就是兩個端點的連線  1. 防火牆的工作原理
  7. 7. 連線兩端透過封包 (packet) 傳遞資料  1. 防火牆的工作原理
  8. 8. ● 封包基本由 header 與 payload 組成 ● Packet 透過封裝傳遞  1. 防火牆的工作原理
  9. 9. 不同協定之封包封裝  1. 防火牆的工作原理
  10. 10. TCP 封包之 header 內容     1. 防火牆的工作原理
  11. 11. IP 封包之 header 內容    1. 防火牆的工作原理
  12. 12. ● Socket 是連線兩端的封包起止站 ● Socket 由 Address 與 Port 組成  1. 防火牆的工作原理
  13. 13. 每一個封包都含有一對 socket pair ● Source Socket: - Source Port (TCP Header bit 0-15) - Source Address (IP Header bit 96-127) ● Destination Socket: - Destination Port (TCP Header bit 16-31) - Destination Address (IP Header bit 128-159)  1. 防火牆的工作原理
  14. 14. TCP 連線的建立方式 (three-way-handshake) ● TCP header 之 bit 106-111  1. 防火牆的工作原理
  15. 15. NAT 的工作原理 ● 透過 socket 替換達成 routing  1. 防火牆的工作原理
  16. 16. 防火牆原理 透過檢查封包 header(or payload) 的內容來 決定封包是否能夠通過  1. 防火牆的工作原理
  17. 17. 防火牆常被部署在對內 ( 信任 ) 與對外 ( 不信任 ) 網路之間的必經通道之上  1. 防火牆的工作原理
  18. 18. DMZ 是防火牆部署中常見的設計 ● 主要用來區隔堡壘主機,以降低入侵風險。  1. 防火牆的工作原理
  19. 19. DMZ 之設計是多樣的 ● 安全與成本及難度成正比、與便利成反比。  1. 防火牆的工作原理
  20. 20. Internet 的連線常經過多重的防火牆過濾  1. 防火牆的工作原理
  21. 21. Linux 的防火牆版本 Part II
  22. 22. Linux 的防火牆版本以 kernel 版本為別 - Kernel 2.0.x: ipfwadm ( 搭配模組 ip_fw_*.o) - Kernel 2.2.x: ipchains ( 搭配模組 ip_masq_*.o) - Kernel 2.4.x (2.6.x): iptables ( 搭配模組 ip*.o, ip_nat_*.o, ip_conntrack_*.o) 2. Linux 的防火牆版本
  23. 23. * kernel 2.4/6.x 之 ipchains ● ipchains 仍可編譯以模組方式載入 ● ipchains 不能與 iptables 同時載入 ● 但沒提供 ipchains 可用的模組 結論: 盡量不要在 kernel 2.4/6.x 及以後版本使用 ipchains 2. Linux 的防火牆版本
  24. 24. Iptables 程式介紹 Part III
  25. 25. 防火牆程式根據規則 (rule) 來處理封包 ● rule by rule ● first match ● policy 3. Iptables 程式介紹
  26. 26. 防火牆規則收集於不同的鏈 (chain) 中 ● chain by chain ● all through 3. Iptables 程式介紹
  27. 27. 鏈存在於不同的表 (table) 中 ● different table for different job ● table by table 3. Iptables 程式介紹
  28. 28. Iptables 內建三個 tables ( 及常用鏈 ) : ● filter INPUT FORWARD OUTPUT ● nat PREROUTING POSTROUTING OUTPUT ● mangle PREROUTING OUTPUT … 3. Iptables 程式介紹
  29. 29. Linux 系統對封包的 routing 處理 ● To local ● To outside 3. Iptables 程式介紹
  30. 30. 封包於 iptables 之穿行 ● When? ● Where? 3. Iptables 程式介紹
  31. 31. 封包於 iptables 之處理 ● Which table? ● Which chain? 3. Iptables 程式介紹
  32. 32. 一個非本機封包於 iptables 之處理 3. Iptables 程式介紹
  33. 33. iptables 命令格式: iptables [-t table] -CMD CHAIN rule -j TARGET 常見 command : ● 列視規則: -L [CHAIN] [-n] ● 增加規則: -A CHAIN rule ● 插入規則: -I CHAIN [ln] rule ● 替換規則: -R CHAIN ln rule ● 刪除規則: -D CHAIN <ln | rule> ● 清空整鏈: -F [CHAIN] ● 設定原則: -P CHAIN <DROP | ACCEPT> --------------------- ● 建立自定鏈: -N C_CHAIN ● 刪除自定鏈: -X C_CHAIN 3. Iptables 程式介紹
  34. 34. 常用 iptables 規則內容: -i interface (only in PREROUTING, INPUT, FORWARD) -o interface (only in POSTROUING, OUTPUT, FORWARD) -s src.addr (can be ip, net/mask, hostname) -d dest.addr (can be ip, net/mask, hostname) -p proto (can be TCP, UDP, ICMP, ALL) --sport src:port (only with -p TCP & -p UDP, can be port, port:range) --dport dest:port (only with -p TCP & -p UDP, can be port, port:range) --icmp-type (only with -p ICMP, can be type, type/error_code) -j TARGET (depends on table & CHAIN, can be ACCEPT, DROP, SNAT, DNAT, MASQUERADE, REDIRECT, RETURN… etc. ) * tips: 規則內容越多,符合之封包越少。反之,則越多 3. Iptables 程式介紹
  35. 35. 關於 -m (match) 之應用: -m state --state <STATE> NEW ( 新建連線 ) ESTABLISHED ( 已成功建立之連線 ) RELATED ( 新建連線,但由已建立連線所引發 ) INVALID ( 非法連線 ) UNKOWN ( 不明連線 ) -m mac --mac-source <MAC> ( 比對封包的來源 MAC 位址,僅限 local subnet 。 ) -m limit --limit <nu/unit> [--limit-burst <burst>] ( 比對每一時間單位最大封包數,及觸發限制的數量。 ) -m owner --uid-owner <uid> ( 比對本機使用者 id 。 ) … 3. Iptables 程式介紹
  36. 36. 常用 iptables 之 TARGET : ● filter TARGET ACCEPT: 允許封包通過當前的鏈 DROP: 拒絕封包通過當前的鏈 REJECT: 同 DROP ,但會送回 icmp 通知 ● nat TARGET SNAT: 修改 source socket DNAT: 修改 destination socket MASQUERADE: 動態修改 source socket ● others REDIRECT: 將連線導至本機行程 RETURN: 結束自定鏈返回原鏈之下一規則 3. Iptables 程式介紹
  37. 37. iptables 命令行範例 ● 拒絕新建連線進入本機: iptables -t filter -A INPUT -m state --state NEW -j DROP ● 允許從外部界面 (eth0) 連至本機之 web 連線: iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT ● 允許穿過本機之確認連線 ( 為內部發起之連線 ) : iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT ● 將內部 (192.168.1.x) 送至 Internet 的封包作偽裝: iptables -t nat -A POSRTOUTING -o eth0 -s 192.168.1.0/24 --sport 1024:65535 -j MASQUERADE 3. Iptables 程式介紹
  38. 38. Iptables 應用例析 Part IV
  39. 39. 常見 Linux Firewall 應用: 單一 client 允許單向連外,集中在 filter INPUT 。 單一 server 允許本機連外及特定服務,集中在 filter INPUT 。 4. Iptables 應用例析
  40. 40. 常見 Linux Firewall 應用 ( 續 ) : Gateway ● 允許本機連外及遠端操控,集中在 filter INPUT 。 ● 允許由內連外,集中在 filter FORWARD 。 ● 允許由外連內之服務,集中在 filter FORWARD 。 ● 需啟用 ip_forward 。 4. Iptables 應用例析
  41. 41. 常見 Linux Firewall 應用 ( 續 ) : NAT ● 允許本機連外及遠端操控,集中在 filter INPUT 。 ● 允許由內連外,集中在 nat POSTROUTING 。 ● 允許由外連內之服務,集中在 nat PREROUTING 。 ● 需啟用 ip_forward 。 ● 可省略 filter FORWARD ( 路由不通 ) 。 4. Iptables 應用例析
  42. 42. 4.1 單一 client 主機規則範例: # 清空規則 iptables -F # 接受確認連線 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 接受 loopback 連線 iptables -A INPUT -i lo -j ACCEPT # 除 ping 外,接受 ICMP 封包 iptables -A INPUT -p icmp --icmp-type 8 -j DROP iptables -A INPUT -p icmp -j ACCEPT # 其餘全部封殺 iptables -A INPUT -j DROP 4. Iptables 應用例析
  43. 43. 4.2 單一 server 主機 (web) 規則範例: iptables -F iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT # 接受 www 之連線 iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -j DROP 4. Iptables 應用例析
  44. 44. 4.3 單一 gateway 主機 ( 可路由 ) 應用: 4. Iptables 應用例析
  45. 45. 4.3 單一 gateway 主機 ( 可路由 ) 規則範例: iptables -F iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT # 允許信任操作主機連線 iptables -A INPUT -i eth1 -s 211.47.56.117 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -j DROP # 允許確認連線 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # 允許內部連線 iptables -A FORWARD -m state --state NEW -i eth1 -o eth0 -s 211.47.56.112/29 -j ACCEPT 4. Iptables 應用例析
  46. 46. 4.3 單一 gateway 主機 ( 可路由 ) 規則範例 ( 續 ) : # 允許 DNS 服務連線 iptables -A FORWARD -p udp --dport 53 -d 211.47.56.114 -j ACCEPT # 允許 WEB 服務連線 iptables -A FORWARD -p tcp --dport 80 -d 211.47.56.115 -j ACCEPT # 允許 SMTP 服務連線 iptables -A FORWARD -p tcp --dport 25 -d 211.47.56.116 -j ACCEPT # 允許 SSH 服務連線 iptables -A FORWARD -p tcp --dport 22 -d 211.47.56.117 -j ACCEPT # 其餘拒絕 iptables -A FORWARD -j DROP # 開放封包轉發 echo 1 > /proc/sys/net/ipv4/ip_forward 4. Iptables 應用例析
  47. 47. 4.4 單一 nat 主機 ( 不可路由 ) 應用: 4. Iptables 應用例析
  48. 48. 4.4 單一 nat 主機 ( 不可路由 ) 規則範例: iptables -F iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p icmp -j ACCEPT iptables -A INPUT -i eth1 -s 10.0.1.117 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -j DROP # 為內部連線作封包偽裝 iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward 4. Iptables 應用例析
  49. 49. 4.4 單一 nat 主機 ( 不可路由 ) 規則範例 ( 續 ) : # 為 DNS 作 port-mapping iptables -t nat -A PREROUTING -i eth0 -d 211.47.56.113 -p udp --dport 53 -j DNAT --to 10.0.1.114 # 為 WEB 作 port-mapping iptables -t nat -A PREROUTING -i eth0 -d 211.47.56.113 -p tcp --dport 80 -j DNAT --to 10.0.1.115 # 為 SMTP 作 port-mapping iptables -t nat -A PREROUTING -i eth0 -d 211.47.56.113 -p tcp --dport 25 -j DNAT --to 10.0.1.116 # 為 SSH 作 port-mapping iptables -t nat -A PREROUTING -i eth0 -d 211.47.56.113 -p tcp --dport 22 -j DNAT --to 10.0.1.117 4. Iptables 應用例析
  50. 50. 4.5 Transparent Proxy 應用: ● 免除 client 端設定 ● 增加可控性 4. Iptables 應用例析
  51. 51. 4.5 Transparent Proxy 規則範例: ● iptables 設定: iptables -t nat -A PRETROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128 ● squid 設定 (squid.conf) : httpd_accel_host virtual httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on NEW: … 3128 transparent 4. Iptables 應用例析
  52. 52. 常見問題及解決方案 Part V
  53. 53. 5.1 auth 協定所導至的服務延 ● 視服務程式需求而定 ● 由 server 端發起 ● 連至 client 端 tcp/113 * 解決方案 ● 允許 auth 連線 -p tcp --dport 113 -j ACCEPT ● 拒絕 auth 連線 -p tcp --dport 113 -j REJECT 5. 常見問題及解決方案
  54. 54. 5.2 ftp 服務連線無法建立資料通道 ● ftp 連線分兩個通道進行: 5. 常見問題及解決方案
  55. 55. 5.2 ftp 服務連線無法建立資料通道 ● 防火牆會擋掉由外之內的建立連線: 5. 常見問題及解決方案
  56. 56. 5.2 ftp 服務連線無法建立資料通道 ● 使用 passive mode 可穿越: 5. 常見問題及解決方案
  57. 57. 5.2 ftp 服務連線無法建立資料通道 ● 或搭配 ip_conntrack_ftp 模組亦可以解決: 5. 常見問題及解決方案
  58. 58. 5.3 NAT 之下的 ftp 連線 ● NAT 只修改了 tcp/ip header ,並沒修改 ftp packet : 5. 常見問題及解決方案
  59. 59. 5.3 NAT 之下的 ftp 連線 ● 使用 ip_conntrack_ftp, ip_nat_ftp 及 --state RELATED 來解決: 5. 常見問題及解決方案
  60. 60. 5.4 在同一 subnet 裡的 DNAT ● Source Socket 沒被修改,及發生 ICMP host-redirect : 5. 常見問題及解決方案
  61. 61. 5.4 在同一 subnet 裡的 DNAT ● 同時對 Source Socket 作修改即可解決: iptables -t nat -A POSTROUTING -d 10.1.2.4 -s 10.1.2.0/24 -j SNAT --to 10.1.2.254 * 其他方法: DNS 5. 常見問題及解決方案
  62. 62. 5.5 Subnet 太小不便切割 ● 使用 proxy arp 降低浪費 : echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp 5. 常見問題及解決方案
  63. 63. 5.6 Transparent Firewall 的應用 ● 減少 IP 浪費 & 簡化部署難度 ● 提高防禦安全 ( 本身無 IP 可連接 ) 5. 常見問題及解決方案
  64. 64. 5.6 Transparent Firewall 的設定 ● 編譯核心修補,設為 bridge ( 以 kernel 2.4.25 為例 ) : cd /usr/src/linux-2.4.25 wget http://heanet.dl.sourceforge.net/sourceforge/ebtables/ebtables-brnf-5_vs_2.4.25.diff.gz zcat ebtables-brnf-5_vs_2.4.25.diff.gz | patch -p1 ● 將 802.1d Ethernet Bridging 與 Bridge: ebtables (NEW) 及其 子項目全選 ● 重編 kernel ,並以之開機。 ● 載入模組: modprobe bridge 5. 常見問題及解決方案
  65. 65. 5.6 Transparent Firewall 的設定 ( 續 ): ● 安裝 bridge-utils ( 以 rh9 為例 ) : wget http://bridge.sourceforge.net/bridge-utils/bridge- utils-0.9.6.tar.gz tar zxvf bridge-utils-0.9.6.tar.gz cp bridge-utils/bridge-utils.spec /usr/src/redhat/SPECS/ cp bridge-utils-0.9.6.tar.gz /usr/src/redhat/SOURCES/ rpmbuild -bb /usr/src/redhat/SPECS/bridge-utils.spec rpm -ivh /usr/src/redhat/RPMS/i386/bridge-utils-* *NEW: yum install bridge-utils 5. 常見問題及解決方案
  66. 66. 5.6 Transparent Firewall 的設定 ( 續 ): brctl addbr mybridge brctl addif mybridge eth0 brctl addif mybridge eth1 ifconfig eth0 0.0.0.0 promisc ifconfig eth1 0.0.0.0 promisc echo “1” > /proc/sys/net/ipv4/ip_forward 5. 常見問題及解決方案
  67. 67. 謝謝﹗ Q & A

×