金子邦彦研究室インストールFreeBSDNAT

NAT

 

設定手順

/etc/rc.confを編集

rc.confに以下のような行を追加

ipfilter_enable="YES"
ipfilter_rules="/etc/ipf.rules"
ipfilter_flags=""
ipnat_enable="YES"
ipnat_rules="/etc/ipnat.conf"
gateway_enable="YES"
portmap_enable="NO"
natd_enable="YES"
natd_interface="vr0"  #vr0:外側デバイス名
tcp_restrict_rst="YES"
tcp_drop_synfin="YES"


/etc/ipf.rulesの作成

新規にipf.rulesをとりあえず以下のように作成する

pass in all
pass out all

/etc/ipnat.confの作成

新規にipnat.confを以下のように作成する
4Fの場合

map vr0 192.168.33.0/24 -> gatewayの外側のIP/32 portmap tcp/udp 20000:30000
map vr0 192.168.33.0/24 -> gatewayの外側のIP/32
#vr0:外側デバイス名
3Fの場合
map vr0 192.168.33.0/24 -> 133.xxx.yyy.166/32 portmap tcp/udp 20000:30000
map vr0 192.168.33.0/24 -> 133.xxx.yyy.166/32

説明
   内部ネットのIPアドレスをgatewayの外側のIPアドレスに変換する。
    このときtcpまたはudpパケットであるなら,gatewayの外側の20000から30000のどれかのポートから外部へ送られる。
    (これによって,特権ポート(1024以下のポート)から送られてきたら無条件に許可をするR系のコマンド(rsh等)を,
    外部に送信することを制限している)

NATの設定

次のコマンドを実行する.

# ipnat -f /etc/ipnat.conf

このとき "Device not configured" というエラーが出た場合は、カーネルを再構築する必要があるようです.
FreeBSD4.3-RELEASEでは次のように変更するとエラーがなくなりました。

追加:
option IPFILTER
変更:
#option INET6
#option NFS
#option NFS_ROOT

クライアントの設定

クライアントのdefaultrouterを192.168.33.75(3Fの場合は192.168.33.1)に設定

その他

ipnat -l: 現在アドレス変換をしているものを表示する