見様見真似の < Linux で Internet Gateway を >

謝辞: Red Hat Linux 6.Xで構築するホームネットワークのインターネットゲートウェイ を参考にさせていただきました。

 ■ はじめに

私は Linux 初心者で、ケーブルテレビ会社のインターネットサービスを利用しています。
上記の参考資料「 Red Hat Linux 6.Xで構築するホームネットワークのインターネットゲートウェイ」 を目にする機会があり、私でもできるのでは・・・と考えました。

構成図はこのようなものです。
eth0 は、e-one の内蔵 LAN Interface ですが、Linux では機能しないようなので無視します。
e-one でなければ、eth1 -> eth0 , eth2 -> eth1 と読み替えて下さい。

使用機器は、以下のとおりです。

SOTEC e-one 500B には、Linux インストールが終了しています。
 ■ 設定 (NIC)

  1. LAN Card 2枚を、e-one のカードスロットに挿入します。
    上段が eth1 , 下段が eth2 となります。

  2. e-one (Linux) を起動します。

  3. LAN Card の設定。
    GNOME -> Control Panel -> Network Configuration
    (Interfaces) eth1
    Activate interface at boot time
    Allow any user to (de)activate interface
    DHCP
    (Interfaces) eth2
    192.168.1.1
    Activate interface at boot time
    Allow any user to (de)activate interface
    (Routing)
    Network Packet Forwarding (IPV4)

  4. /etc/sysctl.conf を修正。
    net.ipv4.ip_forward = 1 (たぶん修正不要)
    net.ipv4.ip_always_defrag = 1 (1行追加)

 ■ 設定 (DHCP Server)

  1. DHCP Server は、2枚目の CD にあります。
    GNOME -> GnoRPM -> CD 上の dhcp-2.0pl5-4.i386.rpm を選んでインストールします。

  2. /etc/dhcpd.conf を新規に作成します。内容は以下のとおりです。

    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.2 192.168.1.60;
    default-lease-time 86400;
    max-lease-time 86400;
    option routers 192.168.1.1;
    option ip-forwarding off;
    option broadcast-address 192.168.1.255;
    option subnet-mask 255.255.255.0;
    option domain-name-servers x.x.x.x, y.y.y.y;
    }

    x.x.x.x, y.y.y.y は、DNS Server の IP アドレスです。
    このアドレスは、Windows から winipcfg -> 詳細  または、ipconfig /all で調べることができます。
    一つだけなら、option domain-name-servers x.x.x.x; となります。

  3. /etc/rc.d/init.d/dhcpd を修正します。
    #Start daemons の直前に1行追加します。
    /sbin/route add -host 255.255.255.255 dev eth2
    1行修正します。
    daemon /usr/sbin/dhcpd -> daemon /usr/sbin/dhcpd eth2

  4. dhcpd.leases を新規に作成します。
    touch /var/lib/dhcp/dhcpd.leases

  5. この辺で再起動しておきます。

  6. コマンドで DHCP Server を起動してみます。
    /etc/rc.d/init.d/dhcpd start
    dhcpd [OK] と表示されることを確認します。
    さらに Linux 起動時に DHCP Server 立ち上がるように設定します。
    chkconfig dhcpd on
 ■ 設定 (IP Masquerade)

  1. /etc/rc.d/rc.local の最後に以下の行を追加します。

    # 1) Flush the rule tables.
    /sbin/ipchains -F input
    /sbin/ipchains -F forward
    /sbin/ipchains -F output
    # 2) Set the MASQ timings and allow packets in for DHCP configuration.
    /sbin/ipchains -M -S 7200 10 60
    /sbin/ipchains -A input -j ACCEPT -i eth1 -s 0/0 68 -d 0/0 67 -p udp
    # 3) Deny all forwarding packets except those from local network.
    # Masquerade those.
    /sbin/ipchains -P forward DENY
    /sbin/ipchains -A forward -s 192.168.1.0/24 -j MASQ
    # 4) Load forwarding modules for special services.
    # /sbin/modprobe ip_masq_ftp
    # /sbin/modprobe ip_masq_raudio

    最後の2行は、ftp , Real Audio 用のモジュールのようですが、見つからないようなので、 コメントアウトしました。
    RealAudio について言えば、ip_masq_raudio がなくても RealAudio は機能しますが、 UDP ではなく TCP モードで動作するため、音質の劣化をひき起こします。

  2. コマンド /etc/rc.d/rc.local でスクリプトを起動してみます。

    マスカレーディングのタイムアウトに関すると思われる警告メッセージ
    Sorry:masquerading timeouts set 5DAYS/2MINS/60SECS
    が表示されますが、支障ありません。
    一定時間通信がない場合に、IP マスカレードで開いたポートを閉じる設定、
    /sbin/ipchains -M -S 7200 10 60
    (TCP セッション2時間、TCP Fin パケット受信後10秒、UDP 通信60秒)が原因です。

 ■ 動作確認・安全確保

  1. 念のため、Linix を再起動しましょう。さて、いよいよクライアント PC を起動します。

    TCP/IP の設定は、ケーブルモデムに直結していたときと同じです。
    IP アドレスは自動取得、DNS は使用しない、です。

    設定に間違いがなければ、クライアントには、192.168.1.2 のアドレスが付与され、 web ブラウズも問題なくできるはずです。

  2. 安全確保

    /etc/hosts.deny に以下の行を追加します。
    ALL: ALL

    /etc/hosts.allow に以下の行を追加します。
    ALL: 127.0.0.1
    ALL: 192.168.1.

    すべてのサービスについて、ローカルデバイス (127.0.0.1) と自宅のネットワーク (192.168.1.) からだけ接続が許可される、という意味だそうです。

    (追記)これは、TCP_Wrapper が有効な場合の設定です。
    Red Hat 7.0 から inetd + TCP_Wrapper に代わって xinetd が実装されています。
    安全確保(セキュリティ)については、改めてまとめてみようと考えています。
 ■ その他

Netscape Navigator が起動しなくなりました。
デスクトップ上に最初からある RedHat のショートカットをクリックすれば Netscape Navigator は起動しますが・・・。

(追記)いつのまにか復活しました。原因不明です。
 ■ おまけ

ここまでやったら、次は無線 LAN を導入したくなりました。
以下の機器を調達しました。

構成図はこのようなものです。
支障なく動作しています。

Home