さくらの VPS を使ってみる・続
前回の記事では、さくらの VPS の公式マニュアルに従って最低限のセキュリティ設定を行った。
今回は、もう一歩進んだ設定を行う。内容としては、以下のパッケージを導入する。
- etckeeper
- yum-cron
- fail2ban
- rkhunter
ついでに
- logrotate の周期の変更
も行った。手順は以下に書かれている内容をフォローした。
etckeeper の導入
その名の通り、設定ファイル(/etc
以下のファイル)をバージョン管理するためのパッケージ。
できるだけ早い段階で導入するのが良いと思われる。私の場合は、前の記事で紹介した最低限の
設定が完了した段階で導入することにした。
etckeeper は yum でインストールできる。
# yum -y install etckeeper
CentOS ならば、etckeeper はバージョン管理のために git を使うようになっていて、
管理対象外のファイルの設定は git の流儀で行うことができる。
デフォルトでは /etc/passwd
や /etc/shadow
も管理対象下に置かれてしまうそうなので、これらを外しておく。そのために .gitignore
を /etc
以下に置く。内容は以下のとおり。
shadow* gshadow* passwd* gpasswd*
以下のコマンドで現在の状態を記録する。
# etckeeper init # etckeeper commit
git log
で initial commit が見えるようになっているはず。
etckeeper は毎日自動的にコミットしてくれるのだが、/etc/crontab
を覗いてみてもその記述は見当たらない。
これはどういうことかというと、CentOS 6 の場合、cron ではなく anacron によってスケジューリングされているからだ。ちなみに、anacron のスケジューリング設定は /etc/anacrontab
に書かれていて、そこから /etc/cron.daily/etckeeper
が間接的に呼びだされる仕組みになっている(らしい)。
yum-cron
最新のパッケージを自動的に拾ってきてくれる。 インストールは yum で行う。自動的に起動するように設定しておく。
# yum -y install yum-cron # service yum-cron start # chkconfig yum-cron on
こちらも anacron によって毎日 /etc/cron.daily/0yum.cron
が呼び出されている。
fail2ban の導入
ブルートフォースアタック対策のために導入する。事前に jail.conf
の port=ssh
を port=50022
に書き換えておくことが必要。
# yum -y install fail2ban # vim /etc/fail2ban/jail.conf
自動的に起動するように設定する。
# service fail2ban start # chkconfig fail2ban on
rkhunter の導入
ルートキット対策のために入れる。インストール後は定義ファイルの更新をしておく。
# yum -y install rkhunte # rkhunter --update # rkhunter --propupd
早速スキャンをかけてみる。
# rkhunter --check --skip-keypress --report-warnings-only Warning: The SSH and rkhunter configuration options should be the same: SSH configuration option 'PermitRootLogin': no Rkhunter configuration option 'ALLOW_SSH_ROOT_USER': unset Warning: Suspicious file types found in /dev: /dev/.udev/tmp-rules--70-persistent-net.rules: ASCII English text /dev/.udev/tmp-rules--70-persistent-cd.rules: ASCII English text
警告がいくつか出た。これらの解消法はまた後で調べることとする。
logrotate の設定を変更
ログをもっと長い期間保存するように変更した。 etckeeper のおかげで、差分を見るのも簡単になり、変更点がすぐ分かる。
diff --git a/logrotate.conf b/logrotate.conf index 7da6bb7..753baf5 100644 --- a/logrotate.conf +++ b/logrotate.conf @@ -1,9 +1,9 @@ # see "man logrotate" for details -# rotate log files weekly -weekly +# rotate log files monthly +monthly -# keep 4 weeks worth of backlogs -rotate 4 +# keep 12 months worth of backlogs +rotate 12