natdのインストール(FreeBSD-2.2.8)


natdがあるとこんな事ができます。

早速インストールです。

natdを持ってきます。

ftp://ftp.suutari.iki.fi/pub/natd/OLD 以下に有ります。
一番新しい物は natd_2.0b1.tar.gz でしたが、今回はnatd_1.9.tar.gzを使います。

まずは持ってきたソースを展開します。
tar zxvf natd_1.9.tar.gz で
natd_1.9というディレクトリができるので
そのディレクトリ以下に移動し

make
make install

おきまりの手順でインストールします。

インストールが終わったらカーネルのリコンパイル(再構築)

/usr/src/sys/i386/conf に移動し

cp GENELIC natproxy と元のカーネルをnat用にコピーしコピーしたカーネルをエディタ等で開き、最後の行に

options IPFIREWALL
options IPDIVERT

を加えます。

保存しカーネルのリコンパイルをします。 カーネル再構築方法はこちらです。

# config natproxy

したあと

# cd /usr/src/sys/compile/natproxy に移動し

# make depend
# make
# make install

で、カーネルのリコンパイルが終了します。

設定

その後 /etc/services の最後に

natd 6668/divert
を書き加えます。

次に、/etc/rc.confの以下の部分を

firewall_enable="YES"
firewall_type="open"
gateway_enable="YES"

のように修正し、/etc以下にnatd.cfを作ります。
先ほど展開した natd_1.9 以下にサンプルがあるのでそれを使います。
元のファイルは以下の部分が間違っていますので書き換えます。

same_port yes

same_ports yes
に。

さらに、
port 6668
に書き換え、

interface ed0
も書き換えます。(ed0は外向けのネットワークインタフェースになります。)

起動ファイル natd.shを作ります。

サンプルnatd.sh

#! /bin/sh
/sbin/ipfw -f flush
/sbin/ipfw add divert 6668 ip from any to any via ed0
/sbin/ipfw add pass all from any to any
/usr/local/sbin/natd -f /etc/natd.cf;
echo 'Network Address Translation Daemon (natd)';

を/usr/local/etc/rc.d 以下におくことで起動時自動的にnatdが走ります。
natd.shのパーミッションを755にしてやり、再起動してみてください。
起動ログにエラーが出なければ立ち上がっているでしょう。

サーバが立ち上がったら、ローカルのクライアントのdefault gatewayをnatdが走っている計算機に指定してやり、グローバルアドレスのサーバにpingをとばしてみると接続できるのが確認できます。 このままの設定ですべてのポートを通すような設定になっています。

多数のクライアントがWebを見に行ったりftpしてきたりするような状況がある場合はキャッシュのできるproxyサーバ(DeleGateとかSquid等)をたてて並行して使うのがよいと思います。

 


高村のホーム  いとうのホーム