從 Kernel 2.4 開始,iptables 一直是 Linux 系統中內建的防火牆,不但可以寫入各式各樣的規則,也可以讓我們建立 NAT(Network Address Translation) 網路,實現多台電腦共用一個實體IP上網的模式。在 IPv6 網路中,同樣有一套 ip6tables 可以作為我們電腦的防火牆。ip6tables 與 iptables 最大的不同是在於 ip6tables 可以支援 IPv6 的  Address/Prefix 設定,而其他大多數的用法都與iptables 相同,所以對於熟悉 iptables 的用戶,ip6tables 一定可以輕鬆上手。


以下示範如何在 CentOS 5.3 使用 ip6tables 建立一個簡易的防火牆。


網路架構:

在一台 IPv6 SSH Server 建立 ip6tables 防火牆進而控管該 Server 的連線


7-1.png 


位址設定:

IPv6 Host:  fe80::21b:fcff:fec0:8e97

IPv6 SSH Server (firewall): fe80::a00:27ff:fe84:a767


先啟動 iptables service 

7-2.png 

 

查看一下 iptables 的 rule,我們可以看到現在的三條chain預設都是ACCEPT

#ip6tables -L

7-4.png 

 

我們將 INPUT 這條 chain 的預設政策設定為 DROP

此時所有的外部連線都會被過濾掉

#ip6tables -P INPUT DROP

#ip6tables -L

7-5.png 

 

這時候我們先用 telnet 從 host 端連到 Server 端的 SSH port

發現會被擋住

7-6.png 

 

之後再加入允許 Host 端連入的規則,再查詢一下,下面會出現我們剛剛輸入的規則

#ip6tables -A INPUT -i eth0 -s fe80::21b:fcff:fec0:8e97 -j ACCEPT

#ip6tables -L

7-7.png 

 

接著我們再一次從 Host 端嘗試用 telnet 連到 Server

7-8.png

7-9.png 

 

已經順利的連接上 SSH Server了!


其他關於iptables / ip6tables 的詳細範例可以參考這裡


zzzaaa12 發表在 痞客邦 PIXNET 留言(0) 人氣()