- TOP - TALK - PROF - LINK -
[ Linuxに戻る ] [ 雑学に戻る ]

<<更新日:2012/03/04>>

サーバ管理設定


サーバを立ててサービスが起動すると、なんとなくできた気になりますよね。
でもしばらく経って、ログを確認するとすごい事になっています。

インターネットに晒されているサーバは、常にハイエナに狙われています。

脆弱性を持っているサーバは、あっという間に乗っ取られてゾンビサーバに仕立てられてしまいます。

そんなわけで、管理するのは非常に大事な話です。

それでは何を管理したら良いでしょうか?
・パッチ・アップデート管理
・ログ管理
・不正アクセス管理
・リソース管理

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回だけ試して終わりと言うアクセスが急増しています。
 通常の辞書アタックから変わったみたいです。