すでに、ゲートウェイコンピュータにLinuxがインストールされているはずです。さらに、 ネットワークカードの1枚をすでに設定し、インターネットとの接続を完了しているかも しれません。しかし、我々はゼロから始めます。設定が一つもおこなわれていない状況を 想定します。
まず、root
でログインしてください。この文書では、あなたがrootでログイン
しているものとして操作方法を述べていきます。
Linuxのカーネルは、あなたの2枚のEthernetカードをeth0
とeth1
として認識します。ですからこの文書でもこれから同じように記述します。問題は、
どちらのカードがどちらであるか、です。ここでは、少なくとも50%の確率で
大丈夫であると保証できる、"簡単な"方法を示します。カバーを外して作業を
するときの要領で、マザーボードが水平になるようにあなたのコンピュータを机の上に
おき、コンピュータの背面を見たときに、左端になるカードがeth0
です。
マスキングテープなどでラベルを作り貼っておくと良いかもしれません。そして紙に、
eth0
とeth1
カード両方の製造元とモデルをメモしてください。
それでは、eth0
カードとeth1
カードをカーネルが自動的に
認識しているか、見てみましょう。ifconfig eth0
やifconfig 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.
両方のネットワークカードがカーネルに認識されていたら、この節はとばしてください。 そうでない方は、この節を読んでください。
というわけで、カーネルがネットワークカードを1枚または両方とも認識しません でしたが、本当のところ、これは問題ではありません。カードを認識させる方法を もっとはっきりとカーネルへ伝えればよいだけのことです。キリがありませんので すべての場合をカバーすることはしません。面倒なことが起こったら、 Ethernet HOWTO を思い出してください(訳注: 和訳も あります)。ここでは、いくつかアドバイスを要約して紹介します。
/proc/pci
ファイルに記されています。製造元とモデルをメモしてください。eth0
とeth1
の製造元とモデルがわかりましたから、
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
の内容を解説すると、
alias eth0 ne
)はカーネルへ、eth0
デバイスにneドライバを
使うよう指示しています。options ne io=0x300 irq=10
はneドライバーへ、ISAカードの
IOアドレスとIRQ割込みを通知します。もしISAカードをお持ちならおそらくこのように、
カードに合った正しいドライバーとIO、IRQへ書き換える必要があるでしょう。alias eth1 via-rhine
)はeth1
にvia-rhineドライバーを
使うようカーネルへ指示しています。私のeth1
カードはPCIカードですから、
IOやIRQについての情報を通知する必要はありません。PCIサブシステムが自動的に
カードの設定をおこないます。あなたの2枚のネットワークカードのエイリアスと、すべてのISAカードの正しい
オプション行が/etc/conf.modules
ファイルに記述されているか確認しましょう。
なお、インストールのときに設定したすべてのイーサーネットカードについては、
そのときの設定がすでに/etc/conf.modules
ファイルへ書き込まれている
かもしれません。
conf.modules
ファイルの編集を終えたら、ifconfig eth0
と
ifconfig eth1
をもう一度 試してみてください。製造元からのマニュアルが
なくIOアドレスとIRQがわからなければ、何度か試行錯誤を繰り返さないとダメかも
しれません。
本当に賢明なことに、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
のものです。
"内部ネットワーク"とは、家庭や社内にあるすべてのコンピュータが情報を やりとりするネットワークのことです。"外部ネットワーク"はLinux コンピュータのもう一つの端につながっている、大きくて恐ろしいインターネットのこと です。一般的にLinuxボックスが内部と外部との間でそれなりに強力な ファイアーウォールとなるため、内部ネットワークは外部ネットワークから完全に 切り離されます。
ドライバーが正常に動作しifconfig
でeth0
とeth1
の両方を
確認できるようになりましたので、内部のホームネットワークを立ち上げましょう。
ここでは、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サーバは自動的に、内部のホームネットワークのデバイスに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サーバのアドレスを指定してください。
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
デーモンにセキュリティの問題がいくつか見つかっています。
ですから、必ず最新バージョンを使ってください。そしてセキュリティを上げるため、
デフォルトの設定からいくつかの点を変更してください。
bind
のバージョンをチェックし、8.2.2以降であることを確認してください。
そして、
Red Hat Updatesや
Mandrake Updates
を参照し、最新のバージョンをチェックしてください。/etc/named.conf
ファイルのforwarders
行の後ろへ
allow-query { 192.168.1/24; 127.0.0.1/32; };
という行を
追加してください。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コンピュータはこれに
反応してパケットを送り返します。もし正常ならば、パケットの往復時間が表示される
はずです。
これで、外部ネットワークを設定する準備が整いました。あなたのインターネット プロバイダの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アドレスをあなたに付与してくれたならば、
ラッキーです。まず、新規に以下の内容のインタフェース設定ファイル
/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による設定を採用しているときは、以下の
内容のインターフェース設定ファイル/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に感謝します。
ベル・アトランティックなどいくつかのADSLプロバイダは新規の顧客に、"Ethernet でのPPP(PPP over Ethernet、PPPoE)"プロトコルによる接続を求めています。 そのためWindows上のクライアントプログラムを提供していますが、Linuxユーザーには 不便です。幸いPPPoEは単純なプロトコルで、Linuxでサポートするためいくつかの プロジェクトが進行中です。
ネットワークプロバイダは、顧客が使えるホスト名やネットワークインターフェース カードをただ一つに限定することを好みます。おそらく、ハブを使ってあなたが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 ケーブルサービスのログインは特別です。サーバを使えるようになる前に、 ログインプロセスが動いていなければなりません。幸い、詳細な 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ブロードキャストアドレス、デフォルトの経路がインターネット プロバイダのゲートウェイへ向く、などの設定が終りました。完璧です。
外部ネットワークと、そして内部ネットワークができました。あとは両者の間の扉を 開けるだけです。ただし最初に、外部から悪い奴等が侵入できないようにしましょう。
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 から始めてみるのが良いでしょう(訳注: 和訳 もあります)。