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

2. LANとセキュリティ

LANを構成してインターネットに接続している場合や,多くのユーザがいる場合には,LANの構成やセキュリティについて考慮しなければなりません.

2.1 LANの構成

多数のホストを接続してLANを構成する場合のヒントをいくつか示します.LAN一般に関しては, /usr/doc/JF/LAN-mini-HOWTO.txt.gzを参照してください.

■ネットワークユーザの集中管理

単一のホストしかない場合は,useraddコマンドなどによって/etc/passwdにユーザを登録すれば良いですが,多数のホストがある場合には,全てのホストのファイルを書き換えることは大変です.LANを構成した場合,NIS(YP)によってユーザを管理する方法があります. /usr/doc/JF/NIS-HOWTO.txt.gz に設定方法が書かれていますので参照してください.

■ファイルシステムの共有

多数のホストのどれにログインしても同じ環境を得るようにするには,ホームディレクトリ(/home)を全てのホストで共有する必要があります.同様に,/usr/localなどを共有させることもできます.この共有には NFSマウントを用います.ホームディレクトリを管理するファイルサーバを設定します.各ホストはファイルサーバのファイルシステム(ディスク)をマウントすることで,ローカルに持っているファイルシステムと同様に利用することができます.設定については /usr/doc/JF/NFS-HOWTO.txt.gz を参照して下さい.

■ホスト名とIPアドレス

ホスト名とIPアドレスを対応付けるにはいくつかの方法があります.単一ホストの場合,必要なホストを /etc/hostsに記述すれば良いですが,多数のホストを管理する場合,全てのホストのファイルを書き換えるのは大変です.そこで,前述の「ユーザ管理」と同様に NISを用いて解決することができます.

次に,LANにある各ホストをLAN外からアクセスできるようにするには,ネームサーバにホスト名とIPアドレスを登録する必要があります.上流のドメインにネームサーバがある場合は,そこに登録してもらえばアクセスできます.もし独自のネームサーバを設定する場合は,上流のドメインの管理者に相談してから設定してください.設定方法は /usr/doc/JF/DNS-HOWTO.txt.gz に書かれています.

■IPマスカレード

LAN内にあるホストにプライベートネットワークのIPアドレスを付けた場合,そのままではLAN外にアクセスすることはできません.IP マスカレードを利用すると,IPアドレスが登録されていないホストでもルータとして設定されているホストを経由してアクセスすることができます.設定方法は /usr/doc/JF/IP-Masquerade.txt.gzを参照してください.

プライベートネットワークには以下のアドレスが予約されています.

        10.0.0.0        -   10.255.255.255
        172.16.0.0      -   172.31.255.255
        192.168.0.0     -   192.168.255.255

■ルーティング(経路制御)

LAN内のホストが外部にアクセスするには,通信ができるように経路(ルート)を決める必要があります.設定方法は /usr/doc/JF/NET-3-HOWTO.txt.gzを参照してください.

2.2 セキュリティ

LANがインターネットに接続している場合,外部からの不法な侵入に備えておく必要があります.また,LAN内においても,システム管理者以外のユーザがroot権限を取得できることは好ましくありません.ここではセキュリティについてのヒントを示します.セキュリティ一般については /usr/doc/JF/Security-HOWTO.txt.gzを参照してください.

■shadow パスワード

特に,どんな形態であれインターネットに接続する場合,自分の環境を守るだけでなく外のネットワークへ迷惑をかけないためにも,セキュリティーには十分に気をつけておく必要があります. Vine Linux では,インストール時にMD5パスワードとシャドーパスワードの使用を選択できるようになっています.システムのパスワードシステムを shadow パスワードにするには,root ユーザで次のようにします.詳しくは man 5 shadowman pwconv, /usr/doc/JF/Shadow-Password-HOWTO.txt.gz などを参照してください.

# /usr/sbin/pwconv

pwconvを実行すると,/etc/passwdのパスワードフィールドが x になり,暗号化されたパスワードが保護されます.また,暗号化されたパスワードは/etc/shadowに書き込まれますが,一般ユーザからは読めないようになっているので比較的安全です.

# cd /etc
# ls -l *passwd* *shadow*
-rw-r--r--   1 root     root          777 Jan 30 13:05 /etc/passwd
# /usr/sbin/pwconv
# ls -l *passwd* *shadow*
-rw-r--r--   1 root     root          738 Jan 30 13:05 /etc/passwd
-r--------   1 root     root          587 Jan 30 13:05 /etc/shadow

shadow パスワードを使うと認証が必要な一部のアプリケーションがうまく動作しない場合があるようです.しかし,標準でインストールされるアプリケーションの多く(telnet, ftpなど)は shadow パスワードに対応しています.shadow化をやめるには /usr/sbin/pwunconvを実行します.

■ PAMを使ったセキュリティ

Vine LinuxではPAM(Pluggable Authentication Modules)を使ってsuなどの特定のコマンドに対してセキュリティを強化することができます.ここでは,良く使われる方法をいくつか紹介します.PAMの詳細は, file:/usr/doc/pam-0.72/html/pam.htmlを参照して下さい.

○ suの制限

システム管理を行うには,suコマンドを用います.一般ユーザに suコマンドを利用させないようにするには,まず,システム管理者を /etc/groupの wheelに追加します.次に,/etc/pam.d/su に以下を追加します.

auth       required     /lib/security/pam_wheel.so debug group=wheel

こうすると,/etc/groupの wheelに登録されたユーザしか suコマンドを実行することができなくなります.

リモートからアクセスしているユーザにsuコマンドを利用させないようにするには,以下を追加します.

auth       required     /lib/security/pam_securetty.so

■ shutdownの制限

サーバなどは shutdownコマンドを一般ユーザに実行されては困ります.そこで,shutdownコマンドを行えるユーザを制限することができます./etc/shutdown.allow というファイルを作ると,そこに記述されたユーザがログインしているときだけ,shutdownコマンドを実行することができます.

        $ cat /etc/shutdown.allow 
        user1
        user2
        user3

■ファイアウォール(防火壁)とフィルタリング

LANを外部からの侵入から守るためにファイアウォール(防火壁)を構築することができます.設定方法は /usr/doc/JF/Firewall-HOWTO.txt.gz 書かれています.ファイアウォールを構築すると,LANの内側と外側では直接アクセスすることはできなくなります,しかし,IPフィルタリングを行うことで,特定の機能だけを残すことができます.設定方法は /usr/doc/JF/ipchains-mini-HOWTO.txt.gzを参照してください.

■tcp_wrapperによるアクセス制限

簡単なアクセス制限の方法として,tcp_wrapper(tcpd)があります. /etc/inetd.confをみると様々なサービスが,/usr/sbin/tcpdによって実行されていることがわかります.tcpdデーモンは接続要求があるとそのホストをチェックし,アクセスを許可するかしないかを判断します.このアクセス許可と拒否はそれぞれ /etc/hosts.allow/etc/hosts.denyに設定されます.

例えば,原則として外部からの接続は拒否し,自分のドメイン(192.168.0.0)からのアクセスのみ許可するには,/etc/hosts.denyと/etc/hosts.allowに以下のように記述します.

$ cat /etc/hosts.deny
ALL: ALL

$ cat /etc/hosts.allow
ALL: 192.168.0.0/255.255.255.0
もし,一部のホスト(例えばvinelinux.orgドメインのホスト)からはアクセスを許可したい場合は,そのホストを/etc/hosts.allowに記述します.
ALL: LOCAL
sshd: .vinelinux.org
詳細はman hosts.allow, jman hosts_optionsを参照して下さい.


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