セキュアサーバー

Red Hat Linuxのページトップへ

サーバーのセキュリティを向上させる。
rootのホームディレクトリはデフォルトでは『/』であるため
『/』以下の全てのファイルが操作できてしまう。
ホームディレクトリを変更してもrootである以上は全てのファイルを操作できるが
セキュリティを少しでも向上させるためにはrootのホームディレクトリは
変更しておいたほうがいい。
# mkdir /root          #ディレクトリ作成
# chown root:root /root    #オーナー/グループの変更
# chmod 700 /root       #パーミッションの変更

「/etc/passwd」ファイルを編集してrootのホームディレクトリを変更する。
編集する際は、OSをSingle User Modeで起動して編集する。
# vipw /etc/passwd
root:x:0:1:Super-User:/:/sbin/sh 
↓
root:x:0:1:Super-User:/root:/sbin/sh
 

ip filterによるパケットフィルタリング
システムにアクセス制御機能を追加するには、いくつかの方法がある。そのひとつの方法が、パケットフィルタリングである。
パケットフィルタリングとは、送信元ホストや送信先ホストのIPアドレス、ポート番号、パケットの方向などを組み合わせて、
フィルタを設定し、ネットワークを出入りするパケットのアクセス制御(通過または遮断を判断)を行うことである。
本モデルではip filterを使用してパケットフィルタリング機能を実現する。ip filterはカーネルのモジュールとして機能し、
システムそのものが停止しない限りパケットフィルタリングが有効となるため、他のパケットフィルタリングツールに比べ安全性が高い。

ip filterのインストール

ip filterのソースファイルをコンパイルしてインストールする。本モデルでは、ip filterのバージョン3.4.22を用いて解説する。

 ip filter入手先:
   http://coombs.anu.edu.au/~avalon/ip-filter.html


特定のIPからのアクセスしか考えないなら
Tcp Wrappersによるアクセス制御
システムにアクセス制御機能を追加する方法にはいくつかの方法がある。そのうちのひとつにTcp Wrappersというツールがある。このツールは、主にシステム上のネットワークサービスにアクセス制御機能を追加するもので、接続元のIPアドレスや接続するサービスの種類からアクセス制御が可能である(注6)。

  (注6)  先に解説したip filterの機能でも同等のアクセス制御をすることができるが、本モデルでは、ip filterの使用目的はパケットフィルタリングとして、TCP Wrappersの使用目的はサーバーサービスのアクセス制御の実現とする。
   

ア) Tcp Wrappersのインストール
Tcp Wrappersのソースファイルをコンパイルしてインストールする。Tcp Wrappersは、最新版を以下のサイトから入手する。本モデルでは、Tcp Wrappersのバージョン7.6を用いて解説する。

  Tcp Wrappers入手先:
    ftp://sunsite.sut.ac.jp/pub/sun-info/Solaris/SOURCES/

以下の手順で、入手したアーカイブを展開し、コンパイルそしてインストールを行う。なお、インストール作業はroot権限で行う必要がある。

---アーカイブの展開---
% gzip -cd tcp_wrappers_7.6.tar.gz | tar -xvf -
---コンパイル--- 
% cd tcp_wrappers_7.6
% CC=gcc REAL_DAEMON_DIR=/usr/sbin make sunos5 (注7)
---インストール--- 
% su
# cp safe_finger tcpd tcpdchk tcpdmatch try-from /usr/local/sbin (注8) 

  (注7)  cc=gcc:コンパイラとしてGNU CCを指定
REAL_DAEMON_DIR=/usr/sbin:アクセス制御を実施するサービスデーモンの格納場所を指定
make sunos5:インストールするOSを指定してコンパイル
   
  (注8)  Tcp Wrappersにはインストーラがないため、手動でコピーする。
   

イ) Tcp Wrappersの設定
Tcp Wrappersの設定は、以下の2種類の設定ファイルで行う。

/etc/hosts.allow 
/etc/hosts.deny 
Tcp Wrappersの設定内容は、以下の順番で適用される。

hosts.allowでの許可内容と一致すれば接続を許可 
hosts.denyでの拒否内容と一致すれば接続拒否 
hosts.allowとhosts.deny共に一致しなければ接続を許可 
よって、方針としてhosts.denyに必ず"全て拒否"の設定を記述し、hosts.allowで許可する接続を記述する。

ここでは、ローカルホストからの全ての接続を許可し、それ以外は拒否する設定例を示す。

---/etc/hosts.deny---
ALL:ALL

---/etc/hosts.allow---
ALL:127.0.0.1
 

Tcp Wrappersによるアクセス制御の設定
Tcp Wrappersの設定に、SSHへの接続を許可する設定を追加する。
本モデルでは、例として「192.168.0.10」からのSSH接続を許可する設定を行う。
/etc/hosts.allowと/etc/hosts.denyをそれぞれ以下の内容に変更する。なお、Tcp Wrappersの設定についての詳細は
「4.1.2 セキュア化のための設定」の「6) Tcp Wrappersによるアクセス制御」を参照する。

---/etc/hosts.deny---
ALL:ALL

---/etc/hosts.allow---
sshd:192.168.0.10 
ALL:127.0.0.1
 


ぺんたん.info
あかいひ.com
IPくん.com
8枠.com - 競馬情報
galhime.com

PC Q&A||古い記事|雑学|ラーメン