サーバーのセキュリティを強化する→その2:各種パッケージの導入

この記事は1年以上前に投稿されたものです。
内容が古い可能性がありますのでご注意ください。

引き続きセキュリティ対策を行います。ここでは幾つかセキュリティ関連のパッケージを導入します。

2010.5.19追記:TripwireおよびClam AntiVirusのcronに関する内容を修正いたしました。

Tripwireの導入

ファイル改鼠検知システムの「Tripwire」を導入します。

Tripwireは、導入時のファイル状態をデータベース化し、そのデータベースとファイルの現状を比較することにより、ファイルの追加/変更/削除を検知するため、Linuxインストール後の初期の段階で導入しておくのが望ましい。

引用元:CentOSで自宅サーバー構築

  1. パッケージをインストールします。
    [html]sudo aptitude update
    sudo aptitude install tripwire[/html]
    途中で「サイトパスフレーズ」「ローカルパスフレーズ」を求められるので任意の文字列を入力します。(Tripwire関連のツールを実行する際に使用します)
  2. 設定ファイルを編集します。
    [html]sudo nano /etc/tripwire/twcfg.txt
    LOOSEDIRECTORYCHECKING =true #←ファイル変更時に所属ディレクトリの変更を通知しないようにします
    REPORTLEVEL=4 #←リポートレベルを最高の4に変更します[/html]
  3. Tripwire設定ファイルの暗号署名版を作成します。
    [html]sudo twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
    Please enter your site passphrase: #←サイトパスフレーズを入力します[/html]
    暗号署名版を作成したらテキスト版を削除します。
    [html]sudo rm -f /etc/tripwire/twcfg.txt[/html]
    ※下記コマンドにて暗号署名版からテキスト版を復元出来ます。
    [html]sudo twadmin -m f -c /etc/tripwire/tw.cfg > /etc/tripwire/twcfg.txt[/html]
  4. ポリシーファイルを設定します。設定として、「CentOSで自宅サーバー構築」様に掲載されているスクリプトを使用します。スクリプト内容の掲載は省略しますのでご了承下さい。
    [html]sudo nano /etc/tripwire/twpolmake.pl
    ~スクリプト内容をペーストして保存します~[/html]
    スクリプトを作成したら、実行して設定を最適化します。
    [html]sudo perl /etc/tripwire/twpolmake.pl /etc/tripwire/twpol.txt > /etc/tripwire/twpol.txt.new[/html]
    最適化したら、暗号署名版を作成します。
    [html]sudo twadmin -m P -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt.new
    Please enter your site passphrase: #←サイトパスフレーズを入力します[/html]
    暗号署名版を作成したらテキスト版を削除します。
    [html]sudo rm -f /etc/tripwire/twpol.txt*[/html]
    ※こちらも下記コマンドにて暗号署名版からテキスト版を復元出来ます。
    [html]sudo twadmin -m p -c /etc/tripwire/tw.cfg -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key > /etc/tripwire/twpol.txt[/html]
  5. Tripwireのデータベースを作成します。
    [html]sudo tripwire -m i -s -c /etc/tripwire/tw.cfg
    Please enter your local passphrase: #←ローカルパスフレーズを入力します[/html]
  6. 実際にTripwireを実行します。
    [html]sudo tripwire -m c -s -c /etc/tripwire/tw.cfg[/html]
  7. Tripwireはインストール時に実行スクリプトが「cron.daily」に登録されます。デフォルトでは管理人(=root)宛てにメールが送信されます。
  8. 【2010.5.19追記】7.の過程にてcronに登録された実行スクリプトでは、実行結果が延々と同じままでしたorz
    「おれ最前線ねっと」様にて公開されているスクリプトおよび手順を基に実行スクリプトを再構成し、crontabコマンドで登録します。

    [html]sudo -s #←一時的にスーパーユーザー権限にてコマンド実行します。
    cd /root
    nano tripwire.sh

    ~おれ最前線ねっと様にて公開されているTripwire Cron設定のスクリプトをペーストして保存します~

    #tripwire.shを保存します
    chmod 700 tripwire.sh
    crontab -e #←cronにカスタマイズ登録
    ※実行権限がrootなので、rootユーザー用のcrontab編集画面になります

    0 6 * * * /root/tripwire.sh > /dev/null 2>&1
    #↑毎日6時0分にスクリプトを実行
    ※スクリプトの実行結果を標準出力および標準エラー出力ともに/dev/nullに捨てないと上手く動作しないことがあるようです

    #crontabを保存します

    #最後に、cron.daily/に登録されているデフォルトのスクリプトを停止します

    chmod -x /etc/cron.daily/tripwire
    #↑実行権限を削除して動作しないようにします

    exit #←sudo -eを終了します[/html]

chkrootkitの導入

rootkit検知ツール「chkrootkit」を導入します。

ルートキット(rootkitあるいはroot kit)はコンピュータシステムへのアクセスを確保したあとで第三者(通常は侵入者)によって使用されるソフトウェアツールのセットである。こうしたツールには作動中のプロセスやファイルやシステムデータを隠蔽する狙いがあり、ユーザに察知させることなく侵入者がシステムへのアクセスを維持することを支援する。Linux、Solaris、複数のバージョンのMicrosoft WindowsといったOSにルートキットが存在することが知られている。

引用元:Wikipedia

  1. パッケージをインストールします。
    [html]sudo aptitude update
    sudo aptitude install chkrootkit[/html]
  2. chkrootkitを実行して、感染していないか確認します。
    [html]sudo chkrootkit | grep INFECTED[/html]
    実行結果として、”INFECTED”という行が表示されなければ問題ありません。
  3. chkrootkitもインストール時に実行スクリプトが「cron.daily」に登録されます。

Clam AntiVirusの導入

最後にLinux用のフリーアンチウィルスソフト「Clam AntiVirus」を導入します。

Clam AntiVirus (クラム・アンチウイルス。略称Clam AV)とは、オープンソース(GPL)で提供されているクロスプラットフォームのアンチウイルスソフトウェアである。

引用元:Wikipedia

  1. パッケージをインストールします。
    [html]sudo aptitude update
    sudo aptitude install clamav[/html]
    ※依存パッケージもまとめてインストールされます。
  2. clamd.confを編集します。
    [html]sudo nano /etc/clamav/clamd.conf
    #User clamav ←コメントアウトしてroot権限で動作[/html]
    編集が終わったらサービスを起動します。
    [html]sudo /etc/init.d/clamav-daemon start
    sudo /etc/init.d/clamav-freshclam start[/html]
  3. 実際に一度実行してみます。
    [html]sudo clamscan –infected –remove –recursive #←ウィルススキャンの実施
    sudo freshclam #←定義ファイルの更新[/html]
  4. Clam AntiVirusはcronには自動的には登録されません。そこで専用のスクリプトを作成し、スキャンとウィルス定義ファイルの自動アップデートをcron.dailyに登録します。スクリプトは「CentOSで自宅サーバー構築」様に掲載されているものを使用します。スクリプト内容の掲載は省略しますのでご了承下さい。
    [html]cd
    nano clamav_scan
    ~スクリプト内容をペーストして保存します~
    chmod +x clamav_scan #←実行権限を付与[/html]

    (2010.5.19修正)初出時に下記の内容が間違っておりました。下記の通りコマンドを実行しても「Operation not permitted」エラーとなります。

    ▼誤り
    [html]chown root:root clamav_scan #←所有者をrootに変更
    mv clamav_scan /etc/cron.daily/ #←ファイルをcron.dailyに移動
    [/html]

    ▼修正(こちらの方法でお願い致します。大変失礼致しました)
    [html]sudo -s #←一時的にスーパーユーザー権限にて作業します
    chown root:root clamav_scan #←所有者をrootに変更
    mv clamav_scan /etc/cron.daily/ #←ファイルをcron.dailyに移動
    [/html]

    これで毎日Clam AntiVirusの実行と定義ファイルの更新が行われ、結果がroot宛にメールされるようになります。(2010.5.19修正)ウィルスが検出された時のみ、root宛にメールされるようになります。

  5. 【2010.5.19追記】上記4の過程において作成したスクリプトはcron.dailyに配置してきちんと動作しますが、念の為Tripwireの時と同じようにcrontabに登録することとします。[html]※既にcron.dailyにスクリプトを配置している場合
    sudo -s #←一時的にスーパーユーザー権限にて実行
    mv /etc/cron.daily/clamav_scan /root

    ※まだcron.dailyに配置していない場合
    4.の過程においてchown root:root clamav_scanの後に以下の作業を行います。
    sudo -s #←一時的にスーパーユーザー権限にて実行
    mv clamav_scan /root

    #これ以降はどちらのケースにおいても共通です。

    ※既にsudo -sにて一時的にスーパーユーザー権限になっているとします。
    chmod 700 /root/clamav_scan

    crontab -e #←cronにカスタマイズ登録
    ※実行権限がrootなので、rootユーザー用のcrontab編集画面になります

    5 6 * * * /root/clamav_scan > /dev/null 2>&1
    #↑毎日6時5分にスクリプトを実行

    #crontabを保存します
    exit #←sudo -eを終了します[/html]

参考サイト様

「サーバーのセキュリティを強化する→その2:各種パッケージの導入」への1件のフィードバック

  1. ピンバック: このブログについて « SkyGarden出張所

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA