Contents
オープンソースの統合監視ソフトウェア「Nagios Server」インストール
Nagiosは、Linux 上で実行するオープンソースの監視ソリューションです。
Nagiosは、 Ethan Galstadによって開発され、 1999 年に最初にリリースされました。その後、このプロジェクトは、いくつかの貢献者によってオープンソース プロジェクトとして改良されました。
Nagiosは、ネットワーク、アプリケーション、またはサーバーの重要なパラメーターを定期的にチェックするように設計されています。これらのパラメータには、マイクロプロセッサの負荷、実行中のプロセス数、ログ ファイル、ディスクおよびメモリの使用量の他、SMTP (Simple Mail Transfer Protocol)、HTTP (Hypertext Transfer Protocol)、POP3 ( Post Office Protocol 3)の他の多くのサービスもチェックできます。
Nagoisを実行するにはPHP、MySQLなどのデータベース、ApacheやNginxなどのWebサーバーが必要です。今回はこれらすべてが構成済みという前提で進めます。
1. 必要なパッケージをインストール
1 2 |
# apt update # apt install autoconf gcc libc6 make wget unzip libgd-dev |
2. Nagios Coreのインストール
①ダウンロード
1 |
# wget http://deb.debian.org/debian/pool/main/n/nagios4/nagios4_4.4.6.orig.tar.gz |
②インストール
1 2 3 |
# tar zxvf nagios4_4.4.6.orig.tar.gz # cd nagios-4.4.6 # ./configure |
以下のように表示される
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for gcc... gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes ------omission----- *** Configuration summary for nagios 4.4.6 2020-04-28 ***: General Options: ------------------------- Nagios executable: nagios Nagios user/group: nagios,nagios Command user/group: nagios,nagios Event Broker: yes Install ${prefix}: /usr/local/nagios Install ${includedir}: /usr/local/nagios/include/nagios Lock file: /run/nagios.lock Check result directory: /usr/local/nagios/var/spool/checkresults Init directory: /lib/systemd/system Apache conf.d directory: /etc/apache2/sites-available Mail program: /usr/bin/mail Host OS: linux-gnu IOBroker Method: epoll Web Interface Options: ------------------------ HTML URL: http://localhost/nagios/ CGI URL: http://localhost/nagios/cgi-bin/ Traceroute (used by WAP): /usr/sbin/traceroute Review the options above for accuracy. If they look okay, type 'make all' to compile the main program and CGIs. |
コンパイル
1 |
# make all |
以下のように表示される
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
*** Compile finished *** If the main program and CGIs compiled without any errors, you can continue with testing or installing Nagios as follows (type 'make' without any arguments for a list of all possible options): make test - This runs the test suite make install - This installs the main program, CGIs, and HTML files make install-init - This installs the init script in /lib/systemd/system make install-daemoninit - This will initialize the init script in /lib/systemd/system make install-groups-users - This adds the users and groups if they do not exist make install-commandmode - This installs and configures permissions on the directory for holding the external command file make install-config - This installs *SAMPLE* config files in /usr/local/nagios/etc You'll have to modify these sample files before you can use Nagios. Read the HTML documentation for more info on doing this. Pay particular attention to the docs on object configuration files, as they determine what/how things get monitored! make install-webconf - This installs the Apache config file for the Nagios web interface make install-exfoliation - This installs the Exfoliation theme for the Nagios web interface make install-classicui - This installs the classic theme for the Nagios web interface *** Support Notes ******************************************* If you have questions about configuring or running Nagios, please make sure that you: - Look at the sample config files - Read the documentation on the Nagios Library at: https://library.nagios.com before you post a question to one of the mailing lists. Also make sure to include pertinent information that could help others help you. This might include: - What version of Nagios you are using - What version of the plugins you are using - Relevant snippets from your config files - Relevant error messages from the Nagios log file For more information on obtaining support for Nagios, visit: https://support.nagios.com ************************************************************* Enjoy. |
Nagios ユーザーとグループを作成
1 2 3 |
# make install-groups-users groupadd -r nagios useradd -g nagios nagios |
Nagios グループに Apache ユーザーを追加
1 |
# usermod -aG nagios www-data |
Nagios Core をインストール
1 |
# make install |
Nagios の init スクリプトをインストール
1 2 3 |
# make install-init /usr/bin/install -c -m 755 -d -o root -g root /lib/systemd/system /usr/bin/install -c -m 755 -o root -g root startup/default-service /lib/systemd/system/nagios.service |
外部コマンド ファイルと権限をインストール
1 2 3 4 5 6 |
# make install-commandmode /usr/bin/install -c -m 775 -o nagios -g nagios -d /usr/local/nagios/var/rw chmod g+s /usr/local/nagios/var/rw *** External command directory configured *** |
Nagios 構成ファイルをインストール
1 2 3 4 5 6 |
# make install-config *** Config files installed *** Remember, these are *SAMPLE* config files. You'll need to read the documentation for more information on how to actually define services, hosts, etc. to fit your particular needs. |
Nagios 用の Apache 構成ファイルをインストール
1 2 3 4 5 6 7 |
# make install-webconf /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf if [ 1 -eq 1 ]; then \ ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/nagios.conf; \ fi *** Nagios/Apache conf file installed *** |
3. Nagios プラグインをインストール
①Nagios Pluginsページから最新の codeをダウンロード
1 |
# wget https://nagios-plugins.org/download/nagios-plugins-2.4.4.tar.gz |
②インストール
1 2 3 4 5 |
# tar -xvf nagios-plugins-2.4.4.tar.gz # cd nagios-plugins-2.4.4 # ./configure --with-nagios-user=nagios --with-nagios-group=nagios # make # make install |
③必要なディレクトリを作成
1 2 |
# mkdir -p /usr/local/nagios/var/spool/checkresults # chown -R nagios:nagios /usr/local/nagios/var/spool/checkresults |
4. Nagios Web ユーザーの作成
Nagios Web ダッシュボードにアクセスするためのユーザー アカウントを作成する。このユーザーアカウントは、認証に使用される。
ユーザーのデフォルト名はnagiosadminで、/usr/local/nagios/etc/cgi.cfgファイル内に優先ユーザー名として定義されています。
1 2 3 4 |
# htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin New password: [password] Re-type new password: [again password] Adding password for user nagiosadmin |
所有権と権限を設定
1 2 |
# chown www-data:www-data /usr/local/nagios/etc/htpasswd.users # chmod 640 /usr/local/nagios/etc/htpasswd.users |
Apache を再起動
1 |
# systemctl restart apache2 |
ファイアウォールで HTTP サービスポートを解放します
1 2 |
# ufw allow http # ufw reload |
Nagios サービスを開始と有効
1 2 |
# systemctl enable nagios --now Created symlink /etc/systemd/system/multi-user.target.wants/nagios.service → /lib/systemd/system/nagios.service. |
システムを再起動
1 |
# shutdown -r now |
サービスが実行しているか確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# systemctl status nagios ● nagios.service - Nagios Core 4.4.6 Loaded: loaded (/lib/systemd/system/nagios.service; enabled; preset: enabl> Active: active (running) since Mon 2023-07-10 10:05:50 JST; 4min 1s ago Docs: https://www.nagios.org/documentation Process: 793 ExecStartPre=/usr/local/nagios/bin/nagios -v /usr/local/nagios> Process: 809 ExecStart=/usr/local/nagios/bin/nagios -d /usr/local/nagios/et> Main PID: 815 (nagios) Tasks: 10 (limit: 9434) Memory: 23.0M CPU: 193ms CGroup: /system.slice/nagios.service tq 815 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagio> tq 820 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var> tq 821 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var> tq 822 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var> tq 823 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var> tq 824 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var> tq 825 /usr/local/nagios/bin/nagios --worker /usr/local/nagios/var> tq 832 /usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagio> tq1244 /usr/local/nagios/libexec/check_ping -H 127.0.0.1 -w 3000.0> mq1245 /usr/bin/ping -n -U -w 30 -c 5 127.0.0.1 Jul 10 10:05:50 Lepard nagios[815]: qh: echo service query handler registered |
5. Nagios Web インターフェイスにアクセス
任意のブラウザで http://[IP_Address]/nagios/にアクセスし[Username]にnagoisadmin、[Password]には上記でユーザーを作成したとき指定したパスワードを入力し、[Sign in]
ログインに成功すると、以下のダッシュボードが表示されます。
ホストの可用性を表示
左メニューの[Hosts]をクリック
左メニューの [Tactical Overview] をクリックすると監視データを閲覧できる
6. Nagios エージェントの構成
エージェントを監視するため。以下をインストールする
• データ収集用のNagios plugins
• プラグインを実行するNRPE Agent
6.1 Nagios pluginsのダウンロードとインストール
1 2 3 4 5 6 7 8 |
# wget https://github.com/nagios-plugins/nagios-plugins/archive/refs/heads/master.zip # unzip master.zip # cd nagios-plugins-master # ./tools/setup # ./configure # make # make install |
Nagios プラグインは、/usr/local/nagios/libexec/ ディレクトリにあります。システム内で使用可能なすべてのプラグインを表示するには、このディレクトリをリストします。
1 |
# ls /usr/local/nagios/libexec/ |
下記のとおりnagios-pluginsが利用可能である
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
check_apt check_ide_smart check_ntp_peer check_ssmtp check_breeze check_ifoperstatus check_ntp_time check_swap check_by_ssh check_ifstatus check_nwstat check_tcp check_clamd check_imap check_oracle check_time check_cluster check_ircd check_overcr check_udp check_dhcp check_jabber check_ping check_ups check_dig check_load check_pop check_uptime check_disk check_log check_procs check_users check_disk_smb check_mailq check_real check_wave check_dns check_mrtg check_rpc negate check_dummy check_mrtgtraf check_sensors remove_perfdata check_file_age check_nagios check_simap urlize check_flexlm check_nntp check_smtp utils.pm check_ftp check_nntps check_spop utils.sh check_http check_nt check_ssh check_icmp check_ntp check_ssl_validity |
インストールされたプラグインを適用するために Nagios デーモンを再起動
1 |
# systemctl restart nagios.service |
6.2 Nagios NRPE Agentのインストール
NRPE エージェントは、デフォルトの Debian リポジトリで利用可能
1 2 3 4 5 6 7 |
# apt-cache policy nagios-nrpe-server nagios-nrpe-server: Installed: (none) Candidate: 4.1.0-1+b1 Version table: 4.1.0-1+b1 500 500 http://deb.debian.org/debian bookworm/main amd64 Packages |
1 |
# apt install nagios-nrpe-server |
バージョン確認
1 2 3 |
# nrpe -V NRPE - Nagios Remote Plugin Executor Version: 4.1.0 |
サービスを開始して有効にする
1 2 3 4 |
# systemctl enable --now nagios-nrpe-server Synchronizing state of nagios-nrpe-server.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable nagios-nrpe-server |
NRPEエージェントのステータスを確認
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# systemctl status nagios-nrpe-server ● nagios-nrpe-server.service - Nagios Remote Plugin Executor Loaded: loaded (/lib/systemd/system/nagios-nrpe-server.service; enabled; p> Active: active (running) since Mon 2023-07-10 11:11:45 JST; 1h 33min ago Docs: http://www.nagios.org/documentation Main PID: 15922 (nrpe) Tasks: 1 (limit: 9434) Memory: 1.1M CPU: 9ms CGroup: /system.slice/nagios-nrpe-server.service mq15922 /usr/sbin/nrpe -c /etc/nagios/nrpe.cfg -f Jul 10 11:11:45 Lepard systemd[1]: Started nagios-nrpe-server.service - Nagios > Jul 10 11:11:45 Lepard nrpe[15922]: Starting up daemon Jul 10 11:11:45 Lepard nrpe[15922]: Server listening on 0.0.0.0 port 5666. Jul 10 11:11:45 Lepard nrpe[15922]: Server listening on :: port 5666. Jul 10 11:11:45 Lepard nrpe[15922]: Listening for connections on port 5666 Jul 10 11:11:45 Lepard nrpe[15922]: Allowing connections from: 127.0.0.1,::1 |
ファイアウォールでNRPEのポートを開く
NRPEはデフォルトでTCP 5666ポートを使用します。ファイアウォールが動作している場合は、Nagiosモニタリングサーバーからの外部チェックを許可するために、このポートを開きます。
1 2 |
# ufw allow 5666/tcp # ufw reload |
ポート5666/tcpがリッスンされているか確認
1 2 3 4 |
# ss -altnp | grep 5666 LISTEN 0 5 0.0.0.0:5666 0.0.0.0:* users:(("nrpe",pid=18199,fd=4)) LISTEN 0 5 [::]:5666 [::]:* users:(("nrpe",pid=18199,fd=5)) |
7. 監視ホストの追加
下記サーバーをホストに追加し、 単純なPing による死活監視対象として設定
OS : AlmaLinux8.8
IPアドレス : 192.168.11.100
7.1 設定ファイル編集
1 2 3 |
# vi /usr/local/nagios/etc/nagios.cfg 51行目 cfg_dir=/usr/local/nagios/etc/servers コメント解除 |
7.2 ディレクトリー作成
1 2 3 |
# mkdir /usr/local/nagios/etc/servers # chgrp nagios /usr/local/nagios/etc/servers # chmod 750 /usr/local/nagios/etc/servers |
7.3 定義ファイル新規作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# vi /usr/local/nagios/etc/servers/korodes.cfg define host { use linux-server host_name korodes alias korodes address 192.168.11.100 } define service { use generic-service host_name korodes service_description PING check_command check_ping!100.0,20%!500.0,60% } |
7.4 Nagiosサーバー再起動
1 |
# systemctl restart nagios.service |
Nagios サーバーにログイン(http://[サーバーIPアドレス]/nagios)しHostsを見るとホストが追加されている
8. 監視サービスの追加
上記で追加したホストに監視サービスを追加する
OS : AlmaLinux8.8
IPアドレス : 192.168.11.100
追加するサービス
[check_users]
[check_load]
[check_disk]
[check_procs]
8.1 監視対象サーバー側の設定
8.1.1 監視対象ホストにエージェントをインストール
EPEL から nrpe 及び代表的なサービスプラグインをインストール
1 |
# dnf --enablerepo=epel -y install nrpe nagios-plugins-{ping,disk,users,procs,load,swap,ssh} |
8.1.2 設定ファイル編集
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# vi /etc/nagios/nrpe.cfg # 106行目 : 接続を許可するホストを追記 (Nagios サーバーを指定) allowed_hosts=127.0.0.1,::1,192.168.11.83 # 122行目 : コマンドの引数を許可 dont_blame_nrpe=1 # 300行目 : 全てコメントにする #command[check_users]=/usr/lib64/nagios/plugins/check_users -w 5 -c 10 #command[check_load]=/usr/lib64/nagios/plugins/check_load -r -w .15,.10,.05 -c .30,.25,.20 #command[check_hda1]=/usr/lib64/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1 #command[check_zombie_procs]=/usr/lib64/nagios/plugins/check_procs -w 5 -c 10 -sZ #command[check_total_procs]=/usr/lib64/nagios/plugins/check_procs -w 150 -c 200 # 305行目 : 追記 command[check_users]=/usr/lib64/nagios/plugins/check_users -w $ARG1$ -c $ARG2$ command[check_load]=/usr/lib64/nagios/plugins/check_load -w $ARG1$ -c $ARG2$ command[check_disk]=/usr/lib64/nagios/plugins/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$ command[check_procs]=/usr/lib64/nagios/plugins/check_procs -w $ARG1$ -c $ARG2$ -s $ARG3$ |
8.1.3 nrpeサーバー有効化、起動
1 2 |
# systemctl enable --now nrpe # systemctl start nrpe |
8.2 Nagios サーバー側の設定
8.2.1 nrpeプラグインのインストール
1 |
# apt install nagios-nrpe-plugin |
8.2.2 nagiosプラグインディレクトリーにコピー
1 |
# cp /usr/lib/nagios/plugins/check_nrpe /usr/local/nagios/libexec/ |
8.2.3 commands.cfg編集
1 2 3 4 5 6 7 |
# vi /usr/local/nagios/etc/objects/commands.cfg # 最終行に追記 define command { command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ } |
8.2.4 先ほどホスト追加したときに作成した korodes.cfg を編集追加する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# vi /usr/local/nagios/etc/servers/korodes.cfg # 以下を追加する define service { use generic-service host_name korodes service_description Root Partition check_command check_nrpe!check_disk\!20%\!10%\!/ } define service { use generic-service host_name korodes service_description Current Users check_command check_nrpe!check_users\!20\!50 } define service { use generic-service host_name korodes service_description Total Processes check_command check_nrpe!check_procs\!250\!400\!RSZDT } define service { use generic-service host_name korodes service_description Current Load check_command check_nrpe!check_load\!5.0,4.0,3.0\!10.0,6.0,4.0 } |
8.2.5 Nagios 再起動
1 |
# systemctl restart nagios.service |
8.2.6 http://[Nagios Server IP Address]/nagios にアクセスする
下図のように新しく追加した監視サービスが追加されている
Tripwireインストール
クラッカーによるLinuxサーバーのファイルの改竄を検知するシステムを導入する。
今回は、ファイル改竄検知システムにホスト型IDS(IDS=Intrusion Detection System)のTripwireを導入する。
Tripwireは、導入時のファイル状態をデータベース化し、そのデータベースとファイルの現状を比較することにより、ファイルの追加/変更/削除を検知する。
1 インストールと構成
1 |
# apt install tripwire |
①サイト キーの作成
Tripwire は、「tw.cfg」tripwire構成ファイルと 「tw.pol」tripwireポリシーファイルをセキュリティで保護するためにサイトパスフレーズを必要とします。指定されたパスフレーズを使用して両方のファイルを暗号化します。 サイトパスフレーズは、単一インスタンスのtripwireに対しても必要です。
②ローカルキーパスフレーズ
tripwireデータベースとレポートファイルの保護にはローカルパスフレーズが必要です。tripwireベースラインデータベースの不正な変更を避けるためにtripwireが使用するローカルキー。
③tripwire構成パス
tripwireの設定は /etc/tripwire/twcfg.txt ファイルに保存されています。暗号化された構成ファイル tw.cfg を生成するために使用されます。
④tripwire ポリシー パス
tripwireは/etc/tripwire/twpol.txtファイルにポリシーを保存します。これは、tripwire で使用される暗号化されたポリシー ファイル tw.pol の生成に使用されます。
⑤サイトキーパスフレーズの入力
⑥再度サイトキーパスフレーズの入力を求められる
⑦ローカールキーパスフレーズの入力
⑧再度ローカールキーパスフレーズの入力を求められる
⑨インストールが進み完了します
2 構成ファイルの設定
①トリップワイヤ構成ファイル (twcfg.txt)
トリップワイヤ構成ファイル (twcfg.txt) の詳細を以下の通りです。暗号化されたポリシー ファイル (tw.pol)、サイトキー (site.key)、およびローカルキー (ホスト名ローカル.key) などのパスは以下の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
ROOT =/usr/sbin 実行ファイル POLFILE =/etc/tripwire/tw.pol DBFILE =/var/lib/tripwire/$(HOSTNAME).twd データベースファイル REPORTFILE =/var/lib/tripwire/report/$(HOSTNAME)-$(DATE).twr SITEKEYFILE =/etc/tripwire/site.key LOCALKEYFILE =/etc/tripwire/$(HOSTNAME)-local.key EDITOR =/usr/bin/editor LATEPROMPTING =false LOOSEDIRECTORYCHECKING =false MAILNOVIOLATIONS =true EMAILREPORTLEVEL =3 REPORTLEVEL =3 SYSLOGREPORTING =true MAILMETHOD =SMTP SMTPHOST =localhost SMTPPORT =25 TEMPDIRECTORY =/tmp |
3 キーの作成やデータベース作成等の初期設定
①twcfg.txt編集
1 2 3 4 5 6 7 8 |
# cd /etc/tripwire # vi twcfg.txt 9 行目あたり 行頭に「#」を追加し、その下の行に「LOOSEDIRECTORYCHECKING =true」を追加 #LOOSEDIRECTORYCHECKING =false LOOSEDIRECTORYCHECKING =true 12行目:必要に応じて変更 (レポートレベル : 4 が最大) REPORTLEVEL =4 |
② 設定ファイル生成
1 2 3 |
# twadmin -m F -c tw.cfg -S site.key twcfg.txt Please enter your site passphrase: <サイトキーパスフレーズ> Wrote configuration file: /etc/tripwire/tw.cfg |
③ ポリシーを最適化
次のポリシー最適化スクリプトを利用し、ポリシーを最適化する
1 |
# vi twpolmake.pl |
ポリシー最適化スクリプト内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
#!/usr/bin/perl $POLFILE=$ARGV[0]; open(POL,"$POLFILE") or die "open error: $POLFILE" ; my($myhost,$thost) ; my($sharp,$tpath,$cond) ; my($INRULE) = 0 ; while (<POL>) { chomp; if (($thost) = /^HOSTNAME\s*=\s*(.*)\s*;/) { $myhost = `hostname` ; chomp($myhost) ; if ($thost ne $myhost) { $_="HOSTNAME=\"$myhost\";" ; } } elsif ( /^{/ ) { $INRULE=1 ; } elsif ( /^}/ ) { $INRULE=0 ; } elsif ($INRULE == 1 and ($sharp,$tpath,$cond) = /^(\s*\#?\s*)(\/\S+)\b(\s+->\s+.+)$/) { $ret = ($sharp =~ s/\#//g) ; if ($tpath eq '/sbin/e2fsadm' ) { $cond =~ s/;\s+(tune2fs.*)$/; \#$1/ ; } if (! -s $tpath) { $_ = "$sharp#$tpath$cond" if ($ret == 0) ; } else { $_ = "$sharp$tpath$cond" ; } } print "$_\n" ; } close(POL) ; |
1 |
# perl twpolmake.pl twpol.txt > twpol.txt.new |
1 2 3 |
# twadmin -m P -c tw.cfg -p tw.pol -S site.key twpol.txt.new Please enter your site passphrase: <サイトキーパスフレーズ> Wrote policy file: /etc/tripwire/tw.pol |
1 |
# echo ! "/var/lib/tripwire/`hostname`.twd ;" >> /etc/tripwire/twpol.txt.new ← Tripwireデータベース自体をチェック対象外にする |
④データベース作成
1 2 |
# tripwire -m i -s -c tw.cfg Please enter your local passphrase: <ローカールキーパスフレーズ> |
途中でエラーで止まるときは「--verbose」オプションをつけて再実行
1 2 |
# tripwire -m i -c tw.cfg --verbose Please enter your local passphrase: <ローカールキーパスフレーズ> |
進行状況を表示し、エラーで止まるファイル、ディレクトリを確認し、所有者とアクセス権を設定し、再度下記を実行する
1 2 |
# tripwire -m i -s -c tw.cfg Please enter your local passphrase: <ローカールキーパスフレーズ> |
4 チェックを実行
①テスト用ファイルを作成
1 |
# echo test > /root/test.txt |
②Tripwire の動作確認
1 |
# tripwire -m c -s -c /etc/tripwire/tw.cfg |
成功すると次ような表示が出る
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
Open Source Tripwire(R) 2.4.3.7 Integrity Check Report Report generated by: root Report created on: Fri 14 Jul 2023 04:59:45 PM JST Database last updated on: Never =============================================================================== Report Summary: =============================================================================== Host name: Lepard Host IP address: Unknown IP Host ID: None Policy file used: /etc/tripwire/tw.pol Configuration file used: /etc/tripwire/tw.cfg Database file used: /var/lib/tripwire/Lepard.twd Command line used: tripwire -m c -s -c /etc/tripwire/tw.cfg =============================================================================== Rule Summary: =============================================================================== ------------------------------------------------------------------------------- Section: Unix File System ------------------------------------------------------------------------------- Rule Name Severity Level Added Removed Modified --------- -------------- ----- ------- -------- Other binaries 66 0 0 0 Tripwire Binaries 100 0 0 0 Other libraries 66 0 0 0 Root file-system executables 100 0 0 0 * Tripwire Data Files 100 1 0 0 System boot changes 100 0 0 0 Root file-system libraries 100 0 0 0 (/lib) Critical system boot files 100 0 0 0 Other configuration files 66 0 0 0 (/etc) Boot Scripts 100 0 0 0 Security Control 66 0 0 0 * Root config files 100 1 0 0 Devices & Kernel information 100 0 0 0 (/dev) Invariant Directories 66 0 0 0 Total objects scanned: 38358 Total violations found: 2 =============================================================================== Object Summary: =============================================================================== ------------------------------------------------------------------------------- # Section: Unix File System ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Rule Name: Tripwire Data Files (/var/lib/tripwire/Lepard.twd) Severity Level: 100 ------------------------------------------------------------------------------- Added: "/var/lib/tripwire/Lepard.twd" ------------------------------------------------------------------------------- Rule Name: Root config files (/root) Severity Level: 100 ------------------------------------------------------------------------------- Added: "/root/test.txt" =============================================================================== Error Report: =============================================================================== No Errors ------------------------------------------------------------------------------- *** End of report *** Open Source Tripwire 2.4 Portions copyright 2000-2018 Tripwire, Inc. Tripwire is a registered trademark of Tripwire, Inc. This software comes with ABSOLUTELY NO WARRANTY; for details use --version. This is free software which may be redistributed or modified only under certain conditions; see COPYING for details. All rights reserved. |
テストファイルを削除しておく
1 |
# rm -f /root/test.txt |
5 Tripwire 自動実行
①自動実行スクリプト(tripwire.sh)を作成し、自動実行させる
1 2 |
# cd /opt/script # vi tripwire.sh |
自動実行スクリプト(tripwire.sh)の内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/bin/bash PATH=/usr/sbin:/usr/bin:/bin:/usr/local/tripwire/sbin # パスフレーズ設定 LOCALPASS=xxxxxxxx # ローカルキーパスフレーズ SITEPASS=xxxxxxxx # サイトキーパスフレーズ cd /etc/tripwire # Tripwireチェック実行 tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" root # ポリシーファイル最新化 twadmin -m p -c tw.cfg -p tw.pol -S site.key > twpol.txt perl twpolmake.pl twpol.txt > twpol.txt.new twadmin -m P -c tw.cfg -p tw.pol -S site.key -Q $SITEPASS twpol.txt.new > /dev/null rm -f twpol.txt* *.bak # データベース最新化 rm -f /usr/local/tripwire/lib/tripwire/*.twd* tripwire -m i -s -c tw.cfg -P $LOCALPASS |
②実行権限を与え、Cronで定期実行する
1 2 3 |
# chmod 700 tripwire.sh # crontab -e 0 5 * * * /opt/script/tripwire.sh |
参考: メールで結果報告用スクリプト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#!/bin/bash PATH=/usr/sbin:/usr/bin:/bin:/usr/local/tripwire/sbin # パスフレーズ設定 LOCALPASS=xxxxx # ローカルキーパスフレーズ SITEPASS=xxxxx # サイトキーパスフレーズ #通知先メールアドレス指定 MAIL="<your mailaddress> " cd /etc/tripwire # Tripwireチェック実行 tripwire -m c -s -c tw.cfg|mail -s "Tripwire(R) Integrity Check Report in `hostname`" $MAIL # ポリシーファイル最新化 twadmin -m p -c tw.cfg -p tw.pol -S site.key > twpol.txt perl twpolmake.pl twpol.txt > twpol.txt.new twadmin -m P -c tw.cfg -p tw.pol -S site.key -Q $SITEPASS twpol.txt.new > /dev/null rm -f twpol.txt* *.bak # データベース最新化 rm -f /usr/local/tripwire/lib/tripwire/*.twd* tripwire -m i -s -c tw.cfg -P $LOCALPASS |
下記を実行し、指定メールアドレスに結果が届くか確認する
1 |
# /opt/script/tripwire.sh |