<Homeへもどる>   <前に戻る>

ipchainsでIPマスカレード

 例えば家庭内や社内でLANを組んだ場合。
それらのPCを全てインターネットに接続したいとしたらどうする?

<解答>全てのPCにグローバルIPを割り当てる。

まぁ、間違ってはいないか・・・
しかし、IPv4では既にIPアドレスは足らなくなってきている。
IPv6に移行が完了すれば上のような解答でも構わないが、
コストの面や手間、量からしてすぐには不可能だ。

そこで考え出されたのが「IPマスカレード」

平たく言えば
複数のプライベートIPアドレスを一つのグローバルIPアドレスに変換する仕組みかな。

 これによく似た機能にNAT(Network Address Translation)がある。
IPアドレスの変換のみならNATでも出来るが、グローバル:プライベート=1:1
である必要があるため、ある時点で1つだけしか通信できない。
そのため、現在ではあまり利用されなくなっている。
 一方、IPマスカレードの方はIPアドレスの変換だけでなく、TCP・UDPのポートも変換できるため、
一度に複数のノード(端末)を接続することが出来る。



 さて、実際のIPマスカレードの利用法だが、よほど古いディストリビューションでもない限り
標準で利用可能となっているはずだ。
せいぜい /etc/sysconfig/network が以下のようになってるか確認するくらいだ。

Network
NETWORKING=yes
HOSTNAME=”ホスト名”
DOMAINNAME=”ドメイン名”
FORWARD_IPV4=yes
GATEWAYDEV=eth1
GATEWAY=192.168.10.10

"FORWARD_IPV4=yes" となっていればOKだ。
また、kernel 2.4 以降の場合は下記の部分にも注意。
/etc/sysctl.conf の net.ipv4.ip_forward = 0 を 1 に変更する。

 さて、これで準備が整った。
実際にIPマスカレードを有効にするには・・・

#ipchains -P forward DENY
#ipchains -A forward -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQ

とする。

1行目では標準のポリシーをどうするかを決めている。
DENYとすれば"拒否"する。ACCEPTとすれば"許可"する。
セキュリティ面で言えば「許可されてないものは通さない」にしたほうがよい。
「拒否されてないものを通す」様な設定にしていると、うっかり拒否し忘れたときが大変だからだ。

 IPマスカレードについてはこんなもん。ipchainsはどちらかというとパケットフィルタ。
ま、それは別の項目にて。(せっかちさんはこちらへどうぞ)

<Homeへもどる>   <前に戻る>