IP masquerade または IP masquerading とは Linux をルータのように使ってそこで IP アドレスを変換する機構です。 一種の万能 proxy ともいえます。 ルータで最近よく使われている NAT の強化版です。
Linux に IP Masquerade させる方法は Linux IP Masquerade mini HOWTO に詳しく書かれています。 これを読んでカーネルを再構築すればいいだけです。
再構築されたカーネルに IP Masquerade のルールを教えるには, 古いカーネルなら ipfwadm,今の 2.2 系カーネルなら ipchains を使います。 ipchains については Linux IPCHAINS-HOWTO に詳しく解説されています。
たとえば次のように打ち込みます。 -P は policy の意味です。 -A は append を表し,打ち込む順序に意味があります。
# 基本ポリシーは拒否 /sbin/ipchains -P forward DENY # destination が自アドレスならルーティングする /sbin/ipchains -A forward -d 192.244.75.0/24 -j ACCEPT # そうでなくて source が自ネットワークなら Masquerade /sbin/ipchains -A forward -s 192.244.75.0/24 -j MASQ # 自ネットワークにはプライベートIPアドレスもたくさんある /sbin/ipchains -A forward -s 192.168.0.0/16 -j MASQ /sbin/ipchains -A forward -s 10.0.0.0/8 -j MASQ
ftp は最初調子が悪かったのですが, modprobe ip_masq_ftp したらできるようになりました。
最終的なものです:
# transparent proxy /sbin/ipchains -A input -p tcp -d ! 192.244.75.0/24 80 -j REDIRECT squidの待ち受けポート # default: deny routing /sbin/ipchains -P forward DENY # outbound packets from global addresses are accepted /sbin/ipchains -A forward -s 192.244.75.0/24 -j ACCEPT # cat /proc/sys/net/ipv4/ip_local_port_range /sbin/ipchains -A forward -d 192.244.75.0/24 1024:4999 -p tcp -j ACCEPT # NNTP server /sbin/ipchains -A forward -d 192.244.75.1 119 -p tcp -j ACCEPT /sbin/ipchains -A forward -d 192.244.75.1 -j DENY # NNTP server /sbin/ipchains -A forward -d 192.244.75.10 119 -p tcp -j ACCEPT /sbin/ipchains -A forward -d 192.244.75.10 -j DENY # other inbound packets to global addresses are accepted /sbin/ipchains -A forward -d 192.244.75.0/24 -j ACCEPT # IP masquerade private addresses /sbin/ipchains -A forward -s 10.0.0.0/8 -j MASQ /sbin/ipchains -A forward -s 192.168.0.0/16 -j MASQ
リンクはご自由にどうぞ。
松阪大学 奥村晴彦 okumura@matsusaka-u.ac.jp
Last modified: Tue Mar 13 21:00:57 JST 2001