從 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 的連線
位址設定:
IPv6 Host: fe80::21b:fcff:fec0:8e97
IPv6 SSH Server (firewall): fe80::a00:27ff:fe84:a767
先啟動 iptables service
查看一下 iptables 的 rule,我們可以看到現在的三條chain預設都是ACCEPT
#ip6tables -L
我們將 INPUT 這條 chain 的預設政策設定為 DROP
此時所有的外部連線都會被過濾掉
#ip6tables -P INPUT DROP
#ip6tables -L
這時候我們先用 telnet 從 host 端連到 Server 端的 SSH port
發現會被擋住
之後再加入允許 Host 端連入的規則,再查詢一下,下面會出現我們剛剛輸入的規則
#ip6tables -A INPUT -i eth0 -s fe80::21b:fcff:fec0:8e97 -j ACCEPT
#ip6tables -L
接著我們再一次從 Host 端嘗試用 telnet 連到 Server
已經順利的連接上 SSH Server了!
其他關於iptables / ip6tables 的詳細範例可以參考這裡
留言列表