この演習の目的は通りです。
次のようなNetworkを構築する。
TCP/Dump [Global] Internet | 192.168.3.0/26 | >------+----------------------------+-------< | | NAT-1 NAT-2 [192.168.1.1] [192.168.1.1] | | >------+------< >------+------< | 192.168.1.0/24 | 192.168.1.0/24 [192.168.1.2] [192.168.1.2] PC PC [Private]
Private側は、同じAddres空間( 192.168.1.0/24 )を利用することに注意。
Global側は、普段、教室からInternetを利用するために利用するNetworkにし、IP AddressはDHCPで、自動的に設定するとよいでしょう。
NAT-1/NAT-2はRouter として Configurationします。Configurationの内容は、次のようになります。
ただし、
とします。
次のようにipchainsを実行することにより、Net 192.168.1.0/24から他のNetworkへのパケットをIP Masquaradeします。
[root@Linux-X /root]# ipchains -I forward -s 192.168.1.0/24 -d \ 0.0.0.0/0 -j MASQ [root@Linux-X /root]#
各ipchainsのオプション引数の意味
同じくipchainsで、現在の設定を確認することができます。
[root@Linux-X /root]# ipchains -L Chain input (policy ACCEPT): Chain forward (policy ACCEPT): target prot opt source destination ports MASQ all ------ 192.168.1.0/24 anywhere n/a Chain output (policy ACCEPT): [root@Linux-X /root]#
逆に、Ruleを削除するには、-Iの代わりに、-Dを使います。
[root@Linux-X /root]# ipchains -D forward -s 192.168.1.0/24 -d \ 0.0.0.0/0 -j MASQ [root@Linux-X /root]#
次の点を確認してください。
次のようなNetworkを構築する。
TCP/Dump [Global] Internet | 192.168.3.0/26 | >------+----------------------------+-------< | NAT-1 [192.168.1.1] | >------+------< [Private 1 192.168.1.0/24] | [192.168.1.2] NAT-2 [192.168.2.1] | >------+------< [Private 2 192.168.2.0/24] | [192.168.2.2] NAT-3 [192.168.1.1] | >------+------< [Private 3 192.168.1.0/24] | [192.168.1.2] PC [Private]
Private-1とPrivate-3は、同じAddres空間( 192.168.1.0/24 )を利用することに注意。
Nat-1/Nat-3は、実験1と同じです。Nat-2では次のように指定します。
[root@Linux-X /root]# ipchains -I forward -s 192.168.2.0/24 -d \ 0.0.0.0/0 -j MASQ [root@Linux-X /root]#
実験1と、同様なチェックをしてみましょう。
ipchainsを利用することによってfirewall rule ( access control list )を書くことも可能(3)です。
次のようなruleを追加することによって、特定のip addressを持つHostへの通信を停止することができます。
[root@Linux-X /root]# ipchains -I input -s 192.168.1.0/24 -d \ 133.43.100.131/32 -j DENY [root@Linux-X /root]#
これによって、Private側からGlobal側への通信の内、133.43.100.133 ( www.math.cst.nihon-u.ac.jp )への通信が禁止されます。
禁止Ruleは、今回のHost単位( /32 )だけでなく、Network単位でも可能です。
数学科全体を禁止するのであれば、133.43.100.0/24と指定すると良いでしょう。
これらのRuleは、複数指定することも可能で、-I ( Insert :前に入れる)の代わりに、-A ( Append :後に加える)を利用することによって、複数のRuleを次々と順番に入れることができます。
これらのruleは、上から順番に適用され、どれか一つでも成立すれば、その時点でruleに指定された処理( DENY, etc ... )が実施され、それ以後のruleは、原則として適用されません。
ACCEPTとDENYを組合せることにより、細かく許諾して、残りを大雑把に禁止するといった利用が可能になっています。
FireWall Ruleとしては、ip address ( Network層のaddress )以外にも、Port Number (トランスポート層の情報)を利用して、Filteringが可能です。
例えば、次のようにしてhttp ( Port 80 )のfilteringを行い(4)、Webの参照を禁止することができます。
[root@Linux-X /root]# ipchains -I input -s 192.168.1.0/24 -d \ 0.0.0.0/0 --destination-port 80 -j DENY [root@Linux-X /root]#
これにより、通常の通信は可能ですが、80 portを使う通信(すなわちhttp / Web Access )だけは禁止するといったことができます。
実験1のNetworkで、Nat-1に色々なFiltering Ruleを追加し、実際に、Filteringがうまく行くことを確認しなさい。