書くことはたくさんありますが、時間は限られています! ここは楽しくやりま しょう。他にもたくさんの作業があなたを待ちかまえていますが、この節は ネットワーク中心で行きます。
ネットワークの分野はとても広く、ここで説明し尽くすことはできません。参 考文献として NET-3 HOWTO を挙げておきます。また、ほとんどのディストリ ビューションにはネットワークサービスの設定についての文書が付属していま す。ここではいくつかの点だけを再確認しましょう。
あなたがインストールすると思われるサービスについてすべきことの簡単なリ ストを示します: cron や timed といったカレンダーや備忘録。http, samba, telnet/ssh のアクセス、anonymous FTP, POP/IMAP サーバ、NFS サービス…。
お使いのディストリビューションにおいてネットワークサービスを新しく追加 するための実際の手順はもっとずっと複雑ですが、以下のスクリプトは最初の 手がかりとしては十分なはずです:
#!/bin/sh
# net-up.sh: set up network access
DEVICE=eth0
IPADDR=192.168.1.100
NETMASK=255.255.255.0
NETWORK=192.168.1.0
GATEWAY=192.168.1.1
ifconfig $DEVICE $IPADDR netmask $NETMASK up
route add -net $NETWORK netmask $NETMASK $DEVICE
route add default gw $GATEWAY
このスクリプトを使うと、レスキューディスクの使用時に手軽にネットワーク アクセスを有効にできます。見ての通りですが、このスクリプトでは外部に ping, ftp, telnet しかできません。
これは Linux をサーバとして使うと便利な仕事のひとつです。現在は、ごく 平凡なカーネルでも IP ファイアウォール機能, IP マスカレード機能、 フォワーディング機能がデフォルトで有効になっています。有効になっていな いようであれば、IP-Masquerade mini-HOWTO をご覧になって、これらの機能 を有効にする方法を調べてください。それから ipfwadm (カーネル 2.0.x; http://www.xos.nl/linux/ipfwadm/) または ipchains (カーネル 2.2.x; http://www.adelaide.net.au/~rustcorp/ipfwchains/ipfwchains.html) をインストールしてください。必要なサービスのためのカーネルモジュールを 有効にするのを忘れないでください。例えば、FTP を使うためには以下の行を /etc/rc.d/rc.sysconfig に追加します:
/sbin/modprobe ip_masq_ftp
この他のモジュールは普通、 /lib/modules/KERNEL-VERSION/ipv4 にあります。
あなたの LAN にいる他のマシンに対して IP マスカレード機能を有効にする
のはとても簡単です。まず、ネットワーク初期化スクリプト
(/etc/sysconfig/network が正しい場所のはずです)を調べて、
FORWARD_IPV4=true
という行があるかどうかを確認します。これは、
ネットワークサブシステムが立ち上がる時に
/proc/sys/net/ipv4/ip_forward を 1 に設定するために使われ
ます。
以下の行を /etc/rc.d/rc.sysinit に追加します:
# default: packets cannot go reach the outside
/sbin/ipfwadm -F -p deny
# allow all machines on the local network to reach the Internet
/sbin/ipfwadm -F -a m -S 192.168.1.0/24 -D 0.0.0.0/0
# alternatively, allow only these two machines
# /sbin/ipfwadm -F -a m -S 192.168.1.100/24 -D 0.0.0.0/0
# /sbin/ipfwadm -F -a m -S 192.168.1.101/24 -D 0.0.0.0/0
カーネル 2.2.x 系をお使いであれば、ipfwadm
ではなく
ipfwadm-wrapper
を使うと素早く立ち上がります。
ここまでくると、クライアントマシンから ISP に電話をかけさせる手が欲し くなるでしょう。筆者は Mserver ( http://cpwright.villagenet.com/mserver/) を使っています。etc/mserver.conf を編集してください。 修正する必要がある項目は ``checkhost'', ``shadow'', ``cname'' だけです。 次に接続(複数可)を定義します。もちろん、クライアントマシンには、 利用可能なクライアントのひとつをインストールします。
PPP を使ってインターネットに接続できたものとします。いったん接続すると、 あなたのマシンは攻撃にさらされるかもしれません。そこで、以下の行を /etc/hosts.allow に追加してください:
# only allow access to localhost
ALL: 127.
それから以下の行を /etc/hosts.deny に追加します:
# deny access to everyone
ALL: ALL
インターネットに直接繋がっているネットワークに所属しているなら、
finger, telnet, それから他のサービスもセキュリティのために止めておく方
がよいでしょう。telnet の代わりには ssh
を使いましょう。編集
すべきファイルは /etc/inetd.conf です。サービスを止める代
わりに、以下の行を /etc/hosts.allow に追加してネットワーク
アクセスを制限する方法もあります:
in.telnetd: 192.168.1., .他の.信頼している.ネットワーク
in.ftpd: 192.168.1., .他の.信頼している.ネットワーク
それから以下の行を /etc/hosts.deny に追加します:
in.telnetd: ALL
in.ftpd: ALL
サーバ上に置いているホームディレクトリのエクスポートは一般的に行われて
います。ところが、あるユーザの UID や GID がマシン間で一致していないと
問題が起こります。ユーザ guido の UID/GID が server
で 500 で
あり、client
で 512 の場合には、以下の設定が便利です:
# /etc/exports
/tmp 自分の.クライアント.マシン(rw)
/home/guido 自分の.クライアント.マシン(rw,map_static=/etc/nfs/client.map)
/etc/nfs/client.map は以下のように書きます:
# /etc/nfs/client.map
# NFS mapping for client
# remote local
uid 512 500
gid 512 500
まだ書けていません。