次のページ 前のページ 目次へ

3. ネットワークの設定

すでに、ゲートウェイコンピュータにLinuxがインストールされているはずです。さらに、 ネットワークカードの1枚をすでに設定し、インターネットとの接続を完了しているかも しれません。しかし、我々はゼロから始めます。設定が一つもおこなわれていない状況を 想定します。

まず、rootでログインしてください。この文書では、あなたがrootでログイン しているものとして操作方法を述べていきます。

Linuxのカーネルは、あなたの2枚のEthernetカードをeth0eth1 として認識します。ですからこの文書でもこれから同じように記述します。問題は、 どちらのカードがどちらであるか、です。ここでは、少なくとも50%の確率で 大丈夫であると保証できる、"簡単な"方法を示します。カバーを外して作業を するときの要領で、マザーボードが水平になるようにあなたのコンピュータを机の上に おき、コンピュータの背面を見たときに、左端になるカードがeth0です。 マスキングテープなどでラベルを作り貼っておくと良いかもしれません。そして紙に、 eth0eth1カード両方の製造元とモデルをメモしてください。

それでは、eth0カードとeth1カードをカーネルが自動的に 認識しているか、見てみましょう。ifconfig eth0ifconfig eth1 とタイプしてください。ともに、カーネルがネットワークカードを認識しているならば、 以下のように表示されます(数字などが異なるかもしれません)。

eth0   Link encap: Ethernet   HWaddr 00:60:67:4A:02:0A 
       inet addr:0.0.0.0  Bcast:0.0.0.0  Mask:255.255.255.255
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:466 errors:0 dropped:0 overruns:0 frame:0
       TX packets:448 errors:0 dropped:0 overruns:0 carrier:0
       collisions:85 txqueuelen:100 
       Interrupt:10 Base address:0xe400
 

カーネルがネットワークカードを認識していないと、このような表示になるでしょう。

eth0: error fetching interface information: Device not found.
 

3.1 ネットワークドライバーの設定

両方のネットワークカードがカーネルに認識されていたら、この節はとばしてください。 そうでない方は、この節を読んでください。

というわけで、カーネルがネットワークカードを1枚または両方とも認識しません でしたが、本当のところ、これは問題ではありません。カードを認識させる方法を もっとはっきりとカーネルへ伝えればよいだけのことです。キリがありませんので すべての場合をカバーすることはしません。面倒なことが起こったら、 Ethernet HOWTO を思い出してください(訳注: 和訳も あります)。ここでは、いくつかアドバイスを要約して紹介します。

eth0eth1の製造元とモデルがわかりましたから、 Ethernet HOWTO ( 和訳)の compatibility page( ベンダー/メーカー/モデル固有の情報)を見てください。あなたのカードを この中から探し、推奨されているドライバーと、必要かもしれない特別なオプションに 関する情報をすべて、メモしてください。

それでは、設定ファイルを編集しましょう。編集するのは/etc/conf.modules です。このファイルを、使い慣れたテキストエディタで開いてください。このファイル にはいろいろなことが書き込めますから、私が使っているゲートウェイのファイルを 例示しておきます。私が使っているのは、VIA Rhineのチップが載っているPCIバスの 10/100Mbカードと、なんの変哲もないISAバスの10Mb NE2000互換カードです。100Mbの カードを内部ネットワークへの接続に使い、10Mbのカードで外部へ接続しています。 私の/etc/conf.modulesファイルは、このようになっています。

alias parport_lowlevel parport_pc 
alias eth0 ne 
options ne io=0x300 irq=10 
alias eth1 via-rhine 
 

私のconf.modulesの内容を解説すると、

あなたの2枚のネットワークカードのエイリアスと、すべてのISAカードの正しい オプション行が/etc/conf.modulesファイルに記述されているか確認しましょう。 なお、インストールのときに設定したすべてのイーサーネットカードについては、 そのときの設定がすでに/etc/conf.modulesファイルへ書き込まれている かもしれません。

conf.modulesファイルの編集を終えたら、ifconfig eth0ifconfig eth1をもう一度 試してみてください。製造元からのマニュアルが なくIOアドレスとIRQがわからなければ、何度か試行錯誤を繰り返さないとダメかも しれません。

同型のネットワークカードが2枚あるとき

本当に賢明なことに、Linuxゲートウェイ用に同じ型のネットワークカードを2枚も購入し、 うまく動作してくれない、そんなことがあるかもしれません。でも、心配は不要。2枚の カードを共存させるには、単に/etc/conf.modulesファイルを正しい文法に したがって記述すればよいだけのことです。ここでは例としてNE2000互換カード (よくある選択です)を一組 購入した場合について、アドレスとIRQ番号を適当に決めて 説明します。あなたの/etc/conf.modulesファイルはこのようになります。

alias eth0 ne
alias eth1 ne
options ne io=0x330,0x360 irq=7,9 
 

関連するオプションは1行にまとめます。各オプションの、最初の数字がeth0、 2番目の数字がeth1のものです。

3.2 内部ネットワークの設定

"内部ネットワーク"とは、家庭や社内にあるすべてのコンピュータが情報を やりとりするネットワークのことです。"外部ネットワーク"はLinux コンピュータのもう一つの端につながっている、大きくて恐ろしいインターネットのこと です。一般的にLinuxボックスが内部と外部との間でそれなりに強力な ファイアーウォールとなるため、内部ネットワークは外部ネットワークから完全に 切り離されます。

ネットワークデバイス

ドライバーが正常に動作しifconfigeth0eth1の両方を 確認できるようになりましたので、内部のホームネットワークを立ち上げましょう。 ここでは、eth1に内部ネットワーク、eth0に外部ネットワークを 接続していると仮定します。

あなたの内部ネットワークは、公開されることはないでしょうから、内部ネットワークの ために予約されている特別なネットワーク、192.168.1.0、となるでしょう。 これは、"非公開のクラスCネットワーク"です。覚えておけば、友達に感心 してもらえるかも。

まず最初にネットワークを起動しておかなければなりません。 /etc/sysconfig/networkファイルを確認して、以下の行がなければ記入 してください。

NETWORKING=yes 
FORWARD_IPV4=yes
 

第1行目はLinuxに、ブート時にネットワークデバイスが起動してほしいことを伝えます。 第2行目はIPフォワーディングを可能にするようLinuxへ伝えます。第4節でマスカレード の設定を始めるときに必要となります。

Red Hat 6.2 の注意事項: IPフォワードとマスカレードをRed Hat 6.2で きちんと動作させるには、/etc/sysctl.confファイルを修正しなければ なりません。以下の行を追加し、正しい値に設定してください。

net.ipv4.ip_forward = 1 
net.ipv4.ip_always_defrag = 1 
 

Red HatとRed Hatから派生したディストリビューションでは、すべてのネットワーク インターフェースの設定は/etc/sysconfig/network-scriptsディレクトリ中の ファイルに含まれています。このディレクトリに移って、新しくifcfg-eth1 ファイルを作成し、以下の内容を記述してください。

DEVICE=eth1 
IPADDR=192.168.1.1 
ONBOOT=yes
 

これはネットワークスクリプトへ、eth1をブート時に設定し指定されたIPアドレスを 与えるよう指示しています。次のコマンドで、この新しい設定を用いてあなたの ネットワークを動かしましょう。/etc/rc.d/init.d/network restartと コマンドを打ち込んでください。

DHCPサーバ

DHCPサーバは自動的に、内部のホームネットワークのデバイスにIPアドレスを設定します。 ラップトップを使っている人達にはとても便利です。コンピュータをネットワークに つなげるだけですぐに適切な設定がなされます。内部ネットワークにDHCPサーバが不要 ならば次の節へ飛んでください。

まずDHCPサーバがインストールされている必要があります。Linux CD-ROMをマウントして、 dhcp RPMをインストールしてください。そして/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;
}
 

もしLinuxコンピュータをキャッシュ用のDNSサーバとしたいのならば、以下のオプション も入れてください。

option domain-name-servers 192.168.1.1;
 

もし外部のDNSアドレスを知っていて、LinuxコンピュータをDNSとするつもりが ないならば、次のオプションを記入してください。x.x.x.xとy.y.y.yは、外部 DNSサーバのIPアドレスです。

option domain-name-servers x.x.x.x, y.y.y.y;
 

もしWindowsコンピュータとファイルを共有するため、SambaをLinuxボックスで 動かすならば、LinuxコンピュータをデフォルトのWINSとブラウザサーバとして 使うため以下のオプションを追加してください。

option netbios-name-servers 192.168.1.1; 
option netbios-dd-server 192.168.1.1; 
option netbios-node-type 8; 
option netbios-scope "";
 

SambaとWINSの設定はこの文書の範囲を越えています。もし必要ならば、 SMB HOWTO を参照してください(訳注: 和訳もあります。 日本Sambaユーザ会のサイトも 参考になります)。

まだいくつか作業が必要です。次に、/etc/rc.d/init.d/dhcpdファイルの 最後に以下の行を追加してください。

/sbin/route add -host 255.255.255.255 dev eth1
 

WindowsのDHCPクライアントは、DHCPの応答に特定のブロードキャストアドレスを 必要とします。このコマンドはLinuxのTCP/IPスタックにそれを生成させます。 もしこの行がない場合はファイルに記述してください。同じような行があっても、 デバイスがeth1になっているか確認してください。

次に、/etc/rc.d/init.d/dhcpdファイルを変更し、eth1をデフォルト デバイスとします。次の行を、

daemon /usr/sbin/dhcpd
 

以下の行で置き換えます。

daemon /usr/sbin/dhcpd eth1
 

これでDHCP起動の準備ができました。まず、コマンド/etc/rc.d/init.d/dhcpd startでDHCPサーバを起動してください。

最後に、コンピュータを再起動してDHCPサーバが立ち上がるか確認します。DHCPサーバの 一部のRPMバッケージは、起動時にDHCPサーバが立ち上がらない設定になっています。 ですから、chkconfig dhcpd onコマンドを実行して確実に起動するように します。

このコマンドはRed Hatに、dhcp起動スクリプトを、/etc/rc.dディレクトリ 以下のさまざまなランレベルのディレクトリへ追加させます。ランレベル3と5 (マルチユーザーのコンソール画面とXウィンドウ画面)でDHCPサーバは起動します。 ランレベル0と1・6(シャットダウンとシングルユーザーモード・再起動)でDHCPサーバ は終了します。

クライアントコンピュータ

DHCPを立ち上げてしまえば、クライアントコンピュータの設定はとても簡単です。DHCPの 設定を有効にすれば良いだけです。Windowsコンピュータならば、"コントロール パネル"を開き、"ネットワーク"を選択し、"TCP/IP" プロトコルの"設定"を選択します。"TCP/IPアドレスの自動設定" ボックスをチェックし、変更を反映させて、再起動してください(訳注:Windows 95の 場合は、"コントロールパネル"から"ネットワーク"を選択し、 "ネットワークの選択"でTCP/IPアダプタのプロパティを選びます。そして "IPアドレス"タブで、"IPアドレスを自動的に取得"をチェック してください)。

クライアントコンピュータの再起動の前に、Linuxボックスでtail -f /var/log/messagesコマンドを実行すると良いかもしれません。Linuxのシステム ログを見続けることができます。万事 調子が良ければ、Windowsコンピュータが再起動の ときにIPアドレスを要求しDHCPサーバが応答していることがわかるでしょう。コマンド tail -fから抜け出すには、Control-Cを使ってください。

もしDHCPサーバを立ち上げなくても、クライアントコンピュータの設定はかなり簡単です。 IPアドレスを設定するにはもう一度、"コントロールパネル"から" ネットワーク"を開き、TCP/IPプロトコルの設定を選んでください(訳注:Windows 95 の場合は、"コントロールパネル"から"ネットワーク"を選択し、 "ネットワークの選択"でTCP/IPアダプタのプロパティを選び、"IP アドレス"タブを開いてください)。ネットワークアドレスの192.168.1.0と ブロードキャストアドレスの192.168.1.255、Linuxサーバの192.168.1.1以外の、 ネットワーク192.168.1.0内の任意のアドレスをクライアントコンピュータに割り当てる ことができます。決して、2台のコンピュータに同じIPアドレスを与えないでください。 "ゲートウェイ"アドレスには192.168.1.1を指定します。こうすれば、外部への トラフィックはLinuxゲートウェイへ向かいます。

クライアントの設定については、 IP Masquerading HOWTO(訳注: 和訳あります) の Configuration Section(訳注: その他のIPマスカレードの問題とソフトウェアサポート)にとても詳細な 情報があります。

DHCPを使う場合も、そうでなくゲートウェイが192.168.1.1のネットワーク192.168.1.Xの アドレスを使う場合も、クライアントコンピュータでDNSの設定をする場合 一般的に、 ネットワークDNSキャッシュサーバを動かすならば192.168.1.1、そうでなければ プロバイダーが指定するDNSサーバのアドレスを指定してください。

DNSサーバ

Linuxボックスをキャッシュ用のDNSサーバとすれば、あなたのネットサーフィンの スピードが若干 速くなります。よく使われるドメイン名があなたのネットワーク内部に キャッシュされ外部から引き出す必要がなくなるからです。

本格的なDNSに興味があるならば、複雑な事柄をたくさん学ばねばなりません。 DNS HOWTO があります(訳注: 和訳もあります)し、書籍ならば DNS and BINDが良い (そしてとても網羅的な)紙の参考書になることでしょう。

クライアントマシンがキャッシュ用DNSサーバの恩恵を受けるためには、プライマリーDNS サーバとしてLinuxゲートウェイを使うようクライアントコンピュータで設定する必要が あります。一つの方法を、DHCPについて説明した3.2.2節で示しました。御自分で クライアントコンピュータを設定するのであれば、IPアドレスの設定と同じ コントロールタブでDNSの設定を変更することができます。

DNSサーバをインストールする際は、まず最初にbind RPMをインストールし、 次にcaching-nameserver RPMをインストールしてください。これで、準備は ほとんど完了です。

インストールすればキャッシュ用DNSサーバは正常に動作します。しかしインターネット プロバイダのDNSサーバのIPアドレスをご存知でしたら、/etc/named.conf ファイルを編集し以下の行をdirectory行の次に追加すると、性能が少しだけ 向上します。ここでx.x.x.xとy.y.y.yはDNSサーバのプライマリーアドレスと セカンダリーアドレスです。

forwarders { x.x.x.x; y.y.y.y; }; 
 

こうするとあなたのDNSサーバは、指示されたアドレスを探してインターネットを さ迷う前に、まずプロバイダのDNSサーバへ問い合わせます。プロバイダのDNSサーバは 豊富なDNS情報をキャッシュに保持していますから、多くの場合、あなたのサーバよりも ずっと速く答えを出すことができます。

ここ1年でnamedデーモンにセキュリティの問題がいくつか見つかっています。 ですから、必ず最新バージョンを使ってください。そしてセキュリティを上げるため、 デフォルトの設定からいくつかの点を変更してください。

  1. まずbindのバージョンをチェックし、8.2.2以降であることを確認してください。 そして、 Red Hat UpdatesMandrake Updates を参照し、最新のバージョンをチェックしてください。
  2. ネームサーバーへの接続をローカルネットワークからに限定するため、 /etc/named.confファイルのforwarders行の後ろへ allow-query { 192.168.1/24; 127.0.0.1/32; };という行を 追加してください。
  3. ネームサーバーをrootで動かさないでください。もしrootで動いていると、 ネームサーバの利用者がroot権限を得てしまいます。権限の低いユーザー、たとえば nobodyならば、ネームサーバの実行で引き起こされ得る危険性が下がります。 サーバをnobodyで動かすためには、/etc/rc.d/init.d/namedファイル を編集し、daemon named行をdaemon named -u nobody -g nobodyと 変更してください。

ブート時にDNSサーバが確実に起動するよう、chkconfig named onコマンドを 実行してください。こうすれば、普通のランレベル(3と5)の起動時にネームサーバが 動き始めます。

これらをきちんと終えれば、次のコマンドでDNSサーバを起動できます: /etc/rc.d/init.d/named start

内部ネットワークの試験

外部ネットワークを設定しないとDNSサービスは動きません。なぜなら、 インターネット上の他のDNSサーバと情報を交換する必要がありますから。しかし、 pingプログラムで、内部ネットワークがきちんとつながっているかは テストできます。

クライアントコンピュータで、ターミナルウィンドウ(MS-DOS)を開いて、 ping 192.168.1.1と打ち込んでください。このコマンドは、あなたの Linuxコンピュータへ規則的な間隔でパケットを送出します。Linuxコンピュータはこれに 反応してパケットを送り返します。もし正常ならば、パケットの往復時間が表示される はずです。

3.3 外部ネットワークの設定

これで、外部ネットワークを設定する準備が整いました。あなたのインターネット プロバイダのLinuxサポート体制によりますが、接続の設定が難しい場合もあります。 困難に直面したら、かなり詳細にADSLを解説している ADSL HOWTOがあります (訳注: 和訳も あります)。なお、もしCable Modem HOWTOがあったら、そちらへもリンクしたいと 思います(訳注: Cable Modem Provider HOWTOがあります。 和訳も 存在します)。

外部への接続でおもに問題になるのは、IPアドレスの取得です。ケーブルや ADSLで接続している顧客へ固定IPアドレスを配布するプロバイダならば、設定は簡単です。 しかし多くのプロバイダは動的設定、そうですDHCPです、を採用するようになって 来ています。つまりあなたのLinuxコンピュータは、eth1側ではDHCP サーバとなり、eth0側ではDHCPクライアントとなります。

さらに、顧客がWindowsコンピュータを使っていると仮定して、標準に準拠しない特別な 方法でサービスを提供しているプロバイダが多いのです。このような場合のいくつかに ついて、3.3.2節の最後で述べます。

固定IPアドレスの場合

インターネットプロバイダが固定IPアドレスをあなたに付与してくれたならば、 ラッキーです。まず、新規に以下の内容のインタフェース設定ファイル /etc/sysconfig/network-scripts/ifcfg-eth0を作成してください。

DEVICE=eth0
IPADDR=x.x.x.x
NETMASK=y.y.y.y
ONBOOT=yes
 

ここで、x.x.x.xとy.y.y.yはそれぞれ、インターネットプロバイダが指示した値で 置き換えてください。そして/etc/resolv.confファイルを編集し、以下の 情報を入力します。

search provider_domain_here
nameserver n.n.n.n
nameserver m.m.m.m
 

ここで、provider_domain_hereの値はインターネットプロバイダから指示を受けている はずです。そしてプライマリーとセカンダリーのDNSサーバのIPアドレスを、n.n.n.nと m.m.m.mのところへ記述してください。もしLinuxコンピュータでDNSサーバを 走らせるのならば、他のネームサーバの行の前に、nameserver 127.0.0.1 という行を追加できます 。こうするとあなたのLinuxサーバは、DNS情報を外部の サーバへ尋ねる前にキャッシュサーバを使うようになります。

DHCPの場合

もしあなたのインターネットプロバイダがDHCPによる設定を採用しているときは、以下の 内容のインターフェース設定ファイル/etc/sysconfig/network-scripts/ifcfg-eth0を新規に作成する必要があります。

DEVICE=eth0 
BOOTPROTO=dhcp 
ONBOOT=yes
 

そして、DHCPクライアントのデーモンdhcpcdを確実にインストールしてください。 Linux CD-ROMを準備し、dhcpcd RPMパッケージをインストールします。

それでは、新しいネットワークの設定をテストします。コマンド /etc/rc.d/init.d/network restartを打ち込んでください。そして外部への 接続をpingでテストします。インターネット上のコンピュータ、たとえば www.yahoo.comをpingしてみて、応答があるか確かめます(訳注: 一部の サイトはpingに反応しないような設定になっている場合もあるそうです)。

特殊な場合

あなたの状況は、今まで述べて来たようなとても単純な状況とは異なるかもしれません。 ここでは、さまざまな困難について短い注釈をいくつか示します。また、より信頼の できる情報源へリンクし、そのアドレスを示します。リンクを提供してくれて、この節を 追加するきっかけとなったJohn Mellorに感謝します。

EthernetでのPPP(PPPoE)

ベル・アトランティックなどいくつかのADSLプロバイダは新規の顧客に、"Ethernet でのPPP(PPP over Ethernet、PPPoE)"プロトコルによる接続を求めています。 そのためWindows上のクライアントプログラムを提供していますが、Linuxユーザーには 不便です。幸いPPPoEは単純なプロトコルで、Linuxでサポートするためいくつかの プロジェクトが進行中です。

特異なDHCPへの対応

ネットワークプロバイダは、顧客が使えるホスト名やネットワークインターフェース カードをただ一つに限定することを好みます。おそらく、ハブを使ってあなたがEhternet ポートへ複数のコンピュータを接続することを防ぐためでしょう。もちろんハブではなく LinuxとIPマスカレードを使えば同じような効果が得られます。安全性もそのほうが高く なりますし、ケーブル会社にもバレません(訳注: このような接続を禁止している プロバイダーも中にはあるそうです。契約内容を確認してください)。

プロバイダがあなたにホスト名を指示し、接続するときはあなたのWindowsコンピュータ にそのホスト名をつけるよう要求する場合、あなたのLinuxコンピュータがプロバイダの DHCPサーバへアドレスを要求するときはそのホスト名を名乗るようにしなければ なりません。

インターフェース設定ファイルでBOOTPROTOにdhcpとセットすれば、Red Hat DHCP クライアントが呼ばれます。しかしホスト名は参照しません。Red Hat6.1で、ホスト名を 指定してクライアントを呼ぶには、/etc/sysconfig/networkファイルを編集し、 以下の行を変更してください。

HOSTNAME=

以下のように修正します。

HOSTNAME=プロバイダが指定したホスト名

Red Hatから派生したディストリビューションのなかには、これではうまく動かない ものがあるかもしれません。その際は/sbin/ifupスクリプトでdhcpcdとpumpを 呼び出すときに、-h $HOSTNAMEスイッチが指定されているかチェックして ください。もしこのスイッチがなければ追加します。つまり、 /sbin/dhcpcd -i $DEVICE -h $HOSTNAME/sbin/pump -i $DEVICE -h $HOSTNAMEとなります。

Road Runner

Road Runner ケーブルサービスのログインは特別です。サーバを使えるようになる前に、 ログインプロセスが動いていなければなりません。幸い、詳細な Linux Road Runner HOWTOが あります。

ネットワーク設定の確認

これまでのあなたの努力の成果を見てみましょう。ifconfigとタイプし、 設定したデバイスをすべて見ましょう。私のゲートウェイコンピュータではこのように なりました。

eth0  Link encap:Ethernet  HWaddr 00:60:67:4A:02:0A 
      inet addr:24.65.182.43  Bcast:24.65.182.255  Mask:255.255.255.0 
      UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1 
      RX packets:487167 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:467064 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:89 txqueuelen:100 
      Interrupt:10 Base address:0xe400
eth1  Link encap:Ethernet  HWaddr 00:80:C8:D3:30:2C 
      inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0 
      UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1 
      RX packets:284112 errors:0 dropped:0 overruns:0 frame:1 
      TX packets:311533 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:37938 txqueuelen:100 
      Interrupt:5 Base address:0xe800
lo    Link encap:Local Loopback 
      inet addr:127.0.0.1  Mask:255.0.0.0 
      UP LOOPBACK RUNNING  MTU:3924  Metric:1 
      RX packets:12598 errors:0 dropped:0 overruns:0 frame:0 
      TX packets:12598 errors:0 dropped:0 overruns:0 carrier:0 
      collisions:0 txqueuelen:0
 

注意してください。外部IPアドレスを持っているのがeth0で、内部の プライベートIPアドレスを持っているのがeth1です。

ネットワークの経路を見るには、routeコマンドを使います。私のゲートウェイ コンピュータでは以下のようになりました。

  Kernel IP routing table 
  Destination     Gateway      Genmask         Flags Metric Ref Use Iface 
  255.255.255.255 *            255.255.255.255 UH    0      0     0 eth1 
  192.168.1.0     *            255.255.255.0   U     0      0     0 eth1 
  24.65.182.0     *            255.255.255.0   U     0      0     0 eth0 
  127.0.0.0       *            255.0.0.0       U     0      0     0 lo 
  default         24.65.182.1  0.0.0.0         UG    0      0     0 eth0
 

これで、外部ネットワークと内部ネットワーク、ローカルデバイス、特別な 255.255.255.255ブロードキャストアドレス、デフォルトの経路がインターネット プロバイダのゲートウェイへ向く、などの設定が終りました。完璧です。

外部ネットワークと、そして内部ネットワークができました。あとは両者の間の扉を 開けるだけです。ただし最初に、外部から悪い奴等が侵入できないようにしましょう。

3.4 安全確保

ADSLやケーブルでインターネットへ常時接続すると、あなたのコンピュータの機密が 毎日24時間、週に7日間、潜在的な脅威にさらされるという欠点があります。Linuxを ゲートウェイに採用すると、他のコンピュータを隠すことができますから、危険は 減ります。すくなくとも外部のインターネットから接続できるのは、あなたのLinux ボックスだけです。つまりあなたのネットワークの安全性は、Linuxボックスの安全性 より高くなることはありません。ここでは、あなたのLinuxコンピュータの安全性を さらに高めるための基本的なヒントを2・3紹介します。

まず、悪い奴等を締め出さねばなりません。ファイル/etc/hosts.denyを編集し、 以下のようにします。

# 
# hosts.deny  This file describes the names of the hosts which are 
#             *not* allowed to use the local INET services, as decided 
#             by the '/usr/sbin/tcpd' server. 
# 
#            The portmap line is redundant, but it is left to remind you that 
#        the new secure portmap uses hosts.deny and hosts.allow. In particular 
#             you should know that NFS uses portmap! 
ALL: ALL 
 

これで、"TCP wrapper"は、すべてのホストからのすべての接続を拒否します (ちなみに"TCP wrapper"は外部からの接続の95%を制御しています)。 すばらしいルールです。しかしこれでは、あなたのホームネットワーク内部からも、 Linuxコンピュータへ接続できません。これでは困ります。そこで一つの例外を設けます。 /etc/hosts.allowを編集し、以下のようにしてください。

# 
# hosts.allow  This file describes the names of the hosts which are 
#              allowed to use the local INET services, as decided 
#              by the '/usr/sbin/tcpd' server. 
# 
ALL: 127.0.0.1 
ALL: 192.168.1.
 

"TCPラッパー"はすべてのサービスについて、ローカルデバイス(127.0.0.1)と あなたのホームネットワーク内のすべてのコンピュータ(192.168.1.)からだけ接続を 許可します。

これで、頑丈な南京錠をかけて、悪い奴等を締め出しました。もっと守りを固めるために 鉄格子と警報システムが欲しければ、さらに凝らなければなりません。あなたのLinux コンピュータの安全についてもっと学びたいのであれば、 Security HOWTO から始めてみるのが良いでしょう(訳注: 和訳 もあります)。


次のページ 前のページ 目次へ