Linuxの部屋に戻る月読のトップページへ

IP Masqueradeの設定
IP Masqueradeとは、一台だけインターネットに接続していて、LANの中にある他のPCからもインターネットに接続するときに設定するものらしい。普通、ローカルネットワークには、ローカルネットワークに許可されたIPアドレスを使うけど、このアドレスを外部に出しちゃいけないらしい。
で、ネットワークカード二枚差しの一台だけインターネットに接続して、一枚目(eth0)をインターネット向け、二枚目(eth1)をローカル向けにし、eth0とeth1の間でそれぞれ変換すればいい、てなことをやっているみたい。
で、設定方法。
サーバ側の設定
なんでこんなことを今書くかって言うと、今日、設定し直したから。 kernel2.0.xの頃は、設定するときにをと言うコマンドを使えばよかったんだけど、kernel2.2.xになったら、ipchainsと言うコマンドを使わなければいけないんですよ。でも、面倒だからPlamo1.xの時の設定のまま、ipfwadmを使っていました。どんな悪さをするのか知りませんが、気持ち悪いので変えちゃいましょってこと。

192.168.1.xって言うローカルネットワークを組んでいたとします。Vineを使っていれば、カーネルの設定などは終わっているので省略。

デフォルトのままだと、http向けにはアドレスを変換してくれるのですが、ftpなどは変換してくれません。なので、変換してくれるようにモジュールを組み込みます。

$ modprobe ip_masq_ftp
$ modprobe ip_masq_raudio
$ modprobe ip_masq_irc
$ modprobe ip_masq_quake
$ modprobe ip_masq_cuseeme
コマンドラインで上のコマンドを打ちます。「$」はプロンプトです。そしたら、
$ /sbin/ipchains -A forward -s 192.168.1.0/24 -d 0.0.0.0/0 -l -j MASQ
$ /sbin/ipchains -P forward DENY
と打ちます。細かいことは、man ipchainsを見てください。残念ながら、日本語manは存在しないようです。さらに、kernel2.2.xでは、デフォルトでアドレスを変換しないようになっているらしいので、
$ echo 1 > /proc/sys/net/ipv4/ip_forward
と、打っておいてください。これでアドレスの変換をしてくれるようになるはず。
インターネットに向けて、pingなんか打ってみると、通ったら成功だと思います。このままだと、マシンを再起動するたびに実行しなければならないので、起動時に読み込むようにしておきましょう。
Vineだと、/etc/rc.d/rc.localに書いておけばいいみたいです。
/etc/rc.d/rc.localの設定例
/sbin/ipchains -A forward -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQ
/sbin/ipchains -P forward DENY
/sbin/modprobe ip_masq_ftp
/sbin/modprobe ip_masq_raudio
/sbin/modprobe ip_masq_irc
/sbin/modprobe ip_masq_quake
/sbin/modprobe ip_masq_cuseeme
/sbin/modprobe ip_masq_vdolive
これで、再起動後にも設定が有効になります。アドレスなんかは、うまいこと自分の環境に置き換えてください。


クライアントの設定

Windows等は、ネットワークの設定でgatewayの項目に上で設定したサーバのアドレスを書いておくだけだと思います。
Linuxでもデフォルトgatewayにサーバのアドレスを指定してください。そうすれば、サーバ越しにインターネットへ接続できるはずです。
これを応用すれば、インターネット側(eth0)をモデムに置き換えたりして、モデムを使って同じようなことができます。パソコンが複数あるのにモデムが一台しかない時なんか、便利ですよね。
Linuxの部屋に戻る月読のトップページへ