10月 19

Nagios インストール

By ststyle Nagios, Watch コメントは受け付けていません。

Nagios(なぎおす)とはオープンソースで開発されている

ネットワーク及び、サーバを監視するソフトウェアです。

Webブラウザからサーバやネットワークの状況を監視でき、異常があれば、メールを送信して

サーバ担当者やネットワーク担当者に状況を知らせる事ができます。

Nagiosの取得

公式サイト より本体・プラグインなどをダウンロードします。

今回は以下のファイルを取得しました。

nagios-3.1.0.tar.gz

nagios-plugins-1.4.14.tar.gz

nrpe-2.12.tar.gz (Nagios Remote Plugin Executor::リモートエージェント)

日本語化パッチも取得しておきます。

nagios-3.1.0-ja-utf8.patch.gz

※日本語パッチのバージョンとnagios本体のバージョンは必ずあわせておく!

事前準備

○apache と PHPをインストールしておく

○Nagiosの実行ユーザーの作成

useradd -d /usr/local/nagios -r nagios

展開


cd /usr/local/src
tar xvfz nagios-3.1.0.tar.gz

日本語化パッチ適用

# tar zxvf nagios-3.1.0.tar.gz
# cd nagios-3.1.0
# gzip -dc ../nagios-3.1.0-ja-utf8.patch.gz| patch -p0

展開&コンパイル&インストール


chown -R root.root nagios-3.1.0

cd nagios-3.2.0
./configure --prefix=/usr/local/nagios

*** Configuration summary for nagios 3.1.0 01-25-2009 ***:

General Options:
-------------------------
Nagios executable:  nagios
Nagios user/group:  nagios,nagios
Command user/group:  nagios,nagios
Embedded Perl:  no
Event Broker:  yes
Install ${prefix}:  /usr/local/nagios
Lock file:  ${prefix}/var/nagios.lock
Check result directory:  ${prefix}/var/spool/checkresults
Init directory:  /etc/rc.d/init.d
Apache conf.d directory:  /etc/httpd/conf.d
Mail program:  /bin/mail
Host OS:  linux-gnu

Web Interface Options:
------------------------
HTML URL:  http://localhost/nagios/
CGI URL:  http://localhost/nagios/cgi-bin/
Traceroute (used by WAP):  /bin/traceroute

Review the options above for accuracy.  If they look okay,
type 'make all' to compile the main program and CGIs.

#make all

Enjoy.

と表示された(よさそう)

以下を実施


make install
make install-init
make install-commandmode
make install-config

Web用ベーシック認証の作成 (.htaccess)

○.htaccessの設定

/usr/local/nagios/sbin/.htaccess

/usr/local/nagios/share/.htaccess を viで作成する。

内容は下記のようにし、両方の.htaccessは同じ内容でよい。


AuthName "Nagios Access"
AuthType Basic
AuthUserFile /usr/local/nagios/etc/htpasswd.users
require valid-user

○Nagios閲覧用ユーザーの作成(htpasswd)

※セキュリティを考慮するならばnagiosadminではなく、他の任意の名前を付けること。

(ファイル権限は644)


cd /usr/local/nagios/etc
/usr/local/apache/bin/htpasswd -c htpasswd.users nagios

Nagios Pluginのインストール


# cd /usr/local/src/
# tar zxvf nagios-plugins-1.4.14.tar.gz
# cd nagios-plugins-1.4.14
# ./configure --with-nagios-user=nagios --with-nagios-group=nagios

サマリー表示


--with-apt-get-command:
--with-ping6-command:
--with-ping-command: /bin/ping -n -U -w %d -c %d %s
--with-ipv6: yes
--with-mysql: no
--with-openssl: yes
--with-gnutls: no
--enable-extra-opts: no
--with-perl: /usr/bin/perl
--enable-perl-modules: no
--with-cgiurl: /nagios/cgi-bin
--with-trusted-path: /bin:/sbin:/usr/bin:/usr/sbin

# make
# make install

Nagios設定ファイルの構文チェック

設定ファイルを修正する度に、エラーが無いか確認しましょう


<code>/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg</code>

Total Warnings: 0
Total Errors:   0

Nagios 自動起動設定


# chkconfig --add nagios
# chkconfig nagios on
# chkconfig --list nagios

Nagiosの起動


# service nagios start

Apacheの設定

httpd.confの編集(一番最後にでも追記)


vi /usr/local/apache/conf/httpd.conf

#nagios begin
ScriptAlias /nagios/cgi-bin/ /usr/local/nagios/sbin/
&lt;Directory "/usr/local/nagios/sbin/"&gt;
AllowOverride AuthConfig
Options ExecCGI
Order allow,deny
Allow from all
&lt;/Directory&gt;

Alias /nagios/ /usr/local/nagios/share/
&lt;Directory "/usr/local/nagios/share"&gt;
AllowOverride AuthConfig
Options None
Order allow,deny
Allow from all
&lt;/Directory&gt;
#nagios end

Apacheの再起動

apacheを再起動します。


/usr/local/apache/bin/apachectl restart

Webブラウザへアクセス

http://<Nagiosサーバ>/nagios/ へアクセスします。

ベーシック認証が無事に行われるとNagiosの画面が表示されます。

nagios

あとはNagiosの面倒くさい設定ファイルをいじっていくだけですが、

その面倒を解消してくれるすばらしいツールがあります.

NagiosQLです。

これまでにも何回かNagiosを立てた事はありますが、

その設定ファイルの面倒さに苦労していました。

そこにGUIで設定がNagiosQLの登場です。

素敵です。

使わない手はありません。

CGI関連でエラーが出る場合の対処方法

要求したサービスを閲覧する権限が無いようです。
このメッセージが何らかのエラーである場合はHTTPサーバのこのCGIに対するアクセス権限の設定かNagiosのCGI用設定ファイルの認証に関するオプションを調べてみてください

Nagiosのサブメニューを起動したときに上記メッセージが表示された場合は以下のように対応

use_authenticationを ‘0 ‘ に修正


vi /usr/local/nagios/etc/cgi.cfg

#use_authentication=1
use_authentication=0

でnagiosを再起動


service nagios restart

アイコンのインストール


$ tar zxvf  imagepak-base.tar.gz
$ cd base/
$ chown nagios:nagios *
$ cp -p * /usr/local/nagios/share/images/logos

Tagged with:
10月 19

clamAntiVirus インストール

By ststyle clamAV コメントは受け付けていません。

clamAntiVirus インストール

clamAntiVirus(clamAV) はLinuxで利用できる

オープンソースのアンティウィルスソフトです。

基本的な機能としては

ウィルス定義ファイルを定期的にダウンロードできる

sendmailでメールのウイルスチェックができる

などです。

clamAntiVirusの取得

公式サイトからのリンクで
Sorceforgeにのダウンロードページに行くことができるので
適当なミラーサイトから任意のディレクトリにダウンロードします。

今回は clamav-0.95.2.tar.gz を使用して実装していきます。

事前準備

clamavはインストールする前に
「clamav」という名前のユーザとグループを作成しておく必要があります。


#groupadd clamav
#useradd -g clamav -s /bin/false clamav

展開&コンパイル&インストール

それではインストールです。
特に変わったことはしない素直なインストールで問題ありません。


tar zxvf clamav-0.95.2.tar.gz
cd clamav-0.95.2
./configure --prefix=/usr/local/clamav
make
make install

これでインストール完了です。

設定

【ウイルスDBのアップデート】
皆さんが利用しているアンチウイルスでも
定義ファイル、パターンファイルを日々アップデートしていることと思いますが
clamavも例に漏れずというか当然
パターン(clamavではVirusDBと呼ぶ)をアップデートしておく必要があります。

インストールが正常に完了したら
まず、二つの設定ファイル


vi /usr/local/clamav/etc/freshclam.conf
vi /usr/local/clamav/etc/clamd.conf

をエディタで開き
Exampleと書かれた行をコメントアウトし、保存します。


#Example

「freshclam」を使用してVirusDBをアップデートしましょう。


/usr/local/clamav/bin/freshclam

アップデートが完了したら早速スキャンを行いたいところですが
検出されないファイルをスキャンしても「OK」と出るだけなので
eicarからテストファイルをダウンロードしておきましょう。


cd /usr/local/clamav/bin/

wget http://www.eicar.org/download/eicar.com

テストスキャン

それではいざスキャンです。
eicarからダウンロードしてきたファイルを単体でスキャンします。


/usr/local/clamav/bin/clamscan ./eicar.com
./eicar.com: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Known viruses: 630647
Engine version: 0.95.2
Scanned directories: 0
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 2.354 sec (0 m 2 s)

うまく検出されました。
ファイル単体ではなくディレクトリ単位で指定することも可能です。

/usr/local/clamav/bin/clamscan スキャンしたいディレクトリ

ウィルススキャン

システム全体をスキャンする


# /usr/local/clamav/bin/clamscan -r /

スキャンするディレクトリを指定する場合は以下のコマンドを実行。
例では/home以下のみをスキャンする。


# /usr/local/clamav/bin/clamscan -r /home

設定例 特定のディレクトリやファイルを除外して検索する場合 –exclude (ファイル指定)
–exclude-dir (ディレクトリ指定)上記を踏まえて。。

/etc/ 以下と /var/ 以下を除外する場合。

# clamscan -r / –exclude-dir=”etc|var”
*.core という拡張子と *.snap という拡張子が付くファイルを除外する場合。

■特定のディレクトリをスキャンする


/usr/local/clamav/bin/clamscan -r /usr/local/apache/htdocs

clamscanコマンド
オプション      説明
–infected                         ウィルスに感染したファイルのみ出力する
–disable-summary      サマリーを出力しない
–remove                          ウィルスに感染したファイルを削除する
–move=DIRECTORY          ウィルスに感染したファイルを指定のディレクトリへ移動する
–force                          エラーを無視しして強制的にスキャンを行う
–recursive                  サブディレクトリごと再帰的に検査。圧縮ファイルは再帰的に解凍して検査

ウィルススキャン実行スクリプト

週1ぐらいで動くようCronに登録します

(検知した場合はメール)


#-------------------
### Virus Scan   ###
#-------------------
00 05 * * 0 /root/bin/virus-scan.sh

vi /root/bin/virus-scan.sh

#!/bin/sh
#################################################
# Virus scanning
#
# author 2008.10.31 s.tsukioka
#################################################

### configuration Section ###
DATE=`date +%Y%m%d`
LOG_FILE="/root/bin/virus-scan.log"
LOG_FILE2="/root/bin/virus-scan-result.log"
ADMIN=xxx@xxx.xx.xx
SCANDIR="/usr/local/apache/htdocs_ssl"

echo "/_/_/_/_/_/_/_/_/_/ Virus scanning /_/_/_/_/_/_/_/_/_/" &gt; ${LOG_FILE}
echo "" &gt;&gt; ${LOG_FILE}
### VirusDB-Update Section ###
echo "### `date '+%Y/%m/%d %H:%M:%S'` VirusDB Update Start ###" &gt;&gt; ${LOG_FILE}
/usr/local/clamav/bin/freshclam &gt;&gt; ${LOG_FILE}
echo "### `date '+%Y/%m/%d %H:%M:%S'` VirusDB Update Ended ###" &gt;&gt; ${LOG_FILE}

### Virus Scanning Section ###
echo "-------------------------------------------------------------------------------" &gt;&gt; ${LOG_FILE}
echo "### `date '+%Y/%m/%d %H:%M:%S'` Virus Scan Start ###" &gt;&gt; ${LOG_FILE}
/usr/local/clamav/bin/clamscan -r ${SCANDIR} &gt;&gt; ${LOG_FILE} 2&gt;&amp;1
echo "### `date '+%Y/%m/%d %H:%M:%S'` Virus Scan Ended ###" &gt;&gt; ${LOG_FILE}
grep "FOUND" ${LOG_FILE} &gt; ${LOG_FILE2}

### Report Mail Section ###
if [ -s ${LOG_FILE2} ]
then
mail -s "[ERR]`hostname -s` Virus-Scanning-Report" $ADMIN &lt; ${LOG_FILE2}
else
mail -s "[NOR]`hostname -s` Virus-Scanning-Report" $ADMIN &lt; ${LOG_FILE}
fi

Tagged with:
preload preload preload