サーバを立ててサービスが起動すると、なんとなくできた気になりますよね。
でもしばらく経って、ログを確認するとすごい事になっています。
インターネットに晒されているサーバは、常にハイエナに狙われています。
脆弱性を持っているサーバは、あっという間に乗っ取られてゾンビサーバに仕立てられてしまいます。
そんなわけで、管理するのは非常に大事な話です。
それでは何を管理したら良いでしょうか?
・パッチ・アップデート管理
・ログ管理
・不正アクセス管理
・リソース管理
CentOS/RedHatはデフォルトでLogWatchが機能しています。
LogWatchはmessagesやsecureのログを解析して、動作状況っぽい物を抽出して情報提供してくれます。
・アクセスエラーの一覧
・SSHのアクセスログ
・messagesに出力されるエラーログ
・FTPの転送状況
等々
これを見ているだけでも、サーバがどんなアクセスを受けているのか分かります。
ちなみに、家ではSSHの不正アクセスが恐ろしい量で出力されていたので、結構長大なメールが来たりしていました。
その対策は後ほど。
[パッチ管理]
まず第一に、パッチ管理が大事です。
CentOSの場合yumでアップデートが可能です。
リブートやサービスがいきなり止まる事も厭わないならば、cronでスケジューリングして自動アップデートかけるのも有りです。
引数設定で、無条件アップデートかけられますからね。
[ログ管理]
ログの管理は前述のlogwatchでとりあえずできるのかなと。
ただし、これをしっかりと見ないといけないこと、何があったら対応しなければいけないのか?これは自動になりません。
私が気にしている所は以下の通りです。
--------------------- httpd Begin ------------------------
Requests with error response codes
404 Not Found
//admin/phpmyadmin/: 1 Time(s)
//dbadmin/: 1 Time(s)
//myadmin/: 1 Time(s)
//mysql-admin/: 1 Time(s)
//mysql/: 1 Time(s)
//mysqladmin/: 2 Time(s)
//mysqlmanager/: 1 Time(s)
//php-myadmin/: 1 Time(s)
//phpMyAdmin-x.x.x.x/: 1 Time(s) ←x.x.x.xにはバージョンが入ります
//pmaxxxx/: 1 Time(s) ←xxxxには西暦年?が入ります
上記の物は、DBを利用している場合に利用されるツールで作られている場合があるフォルダになります。
これらについては、apacheもしくはコンテンツで制限をかけておく必要がありあす。
--------------------- pam_unix Begin ------------------------
sshd:
Authentication Failures:
root (64.31.18.16): 5 Time(s)
root (60-248-217-142.hinet-ip.hinet.net): 2 Time(s)
上記はsshdに対して、rootアカウントでのログインをしようとしている物です。
ログを見ていれば分かりますが、とても攻撃が多いです。
可能な限り、前述のsshd設定のように、rootでのログインは拒否した方が良いです。
なお、うちのサーバではrootでアクセスしてきたら、一発でIP制御かけてアクセスを禁止しています。
2011/7くらいから、rootに1回だけ試して終わりと言うアクセスが急増しています。
通常の辞書アタックから変わったみたいです。
|