さくらのVPS ログレポート(logwatch)と不正アクセス拒否(denyhosts)のインストール

さくらのVPS ログレポート(logwatch)と不正アクセス拒否(denyhosts)のインストール

denyhosts

こちらの記事も参考に読まれると幸せになれるかも:)

さくらのVPSに(CentOSより良い)Scientific Linux6をインストール

ログレポート(logwatch)のインストールと設定

まずは、運用ログの監視です。
一日一回、各種ログを読みやすく整形してメールで送ってくれる
logwatch を利用してみましょう。

$ sudo yum install logwatch

インストールできたら、ちゃんと動くか確認してみましょう。
print オプションをつけると、メールが送られずにコンソールに結果が表示されます。

$ sudo /usr/sbin/logwatch --print

設定ファイルは /etc/logwatch/conf/logwatch.conf です。
中を見てみると

# Local configuration options go here (defaults are in /usr/share/logwatch/default.conf/logwatch.conf)

とだけ書かれてますね。
デフォルト設定と違う設定にしたい場合は、このファイルに書いていってください。
デフォルトだと root 宛てにメールを送る設定になってるので以下のような行を追加して、
メールのあて先を変更してください。

MailTo = hoge@example.com

※hoge@example.com は自分のメールアドレスに適宜変更して下さい

・cron の自動実行
logwatch をインストールすると、/etc/cron.daily/0logwatch
が自動で作られていて、1日一回レポートメールを送信するように
なっているので特に作業は必要無いです

より詳しくは以下、参照
@IT:アクセスログの改ざんと検出方法 – Page2
http://www.atmarkit.co.jp/fsecurity/rensai/iprotect06/iprotect02.html
@IT:サーバのログ監視ツールを使いこなそう(3/3)
http://www.atmarkit.co.jp/flinux/rensai/root04/root04c.html

不正アクセス拒否(denyhosts)のインストール

これは、定期的に log を監視して、SSHの総当り攻撃をしてくるIPアドレスを自動的に
/etc/hosts.deny に登録してくれるものです。

・インストール方法
yum リポジトリとして epel が登録されてない場合は、まず epel を登録。
※既にepel が登録されている場合は、作業の必要は無しです。次のyum install に進んでください

$ sudo rpm --import http://download.fedora.redhat.com/pub/epel/RPM-GPG-KEY-EPEL-6
$ sudo rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm

yum で denyhosts をインストール

$ sudo yum install denyhosts

denyhosts を起動し、自動起動の設定を行う

$ sudo /etc/init.d/denyhosts start
$ sudo /sbin/chkconfig denyhosts on

例外的にアクセスを許可しておきたいIP アドレスが有る場合は
/var/lib/denyhosts/allowed-hosts に記述すればOKです。

不正アクセスを検知した場合 /etc/hosts.deny に追記されていくはずです。

参考サイト

VPS 借りたら、せめてこれくらいはやっとけというセキュリティ設定
http://dogmap.jp/2011/05/12/vps-security/

さくらのVPSに(CentOS6より良い)Scientific Linux6をインストール

Scientific Linux

▼参考サイト
Scientific Linux 6|カスタムOSインストールガイド
http://support.sakura.ad.jp/manual/vps/mainte/custom_scientificlinux.html

上記を参考にまずはインストールと起動まで進める。
その後の設定は以下。

更新可能なパッケージのアップデート

# yum update

※特に更新は無かった

言語設定

# vi /etc/sysconfig/i18n
LANG="C"
  ↓
LANG="ja_JP.UTF-8"

iptables の設定

# vi /etc/sysconfig/iptables

※以下の内容を書き込む

*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 10022 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80    -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

※SSH は後で説明しますが、セキュリティ的にデフォルトの22番ポート
ではなく、任意のポートに変更します
ここでは、10022番にしました

・iptables の再起動

# /etc/init.d/iptables restart

・設定確認

# /sbin/iptables -L

一般ユーザの作成

# useradd -m 任意のユーザ名
# passwd 任意のユーザ名

続いて、作成したユーザーがsudo コマンドでroot になれるように
wheel グループに追加

# usermod -G wheel 任意のユーザ名

パスワード無しでsudo が使えるように

# visudo

# %wheel        ALL=(ALL)       NOPASSWD: ALL

※上記のコメント(#)を外す

公開鍵を設定する

# cd /home/任意のユーザ名/
# mkdir .ssh
# chmod 700 .ssh
# vi .ssh/authorized_keys

※公開鍵の作成方法等、詳しくは以下を参照
・公開・秘密鍵ペアの作成
http://9jp.info/archives/11485

# chown -R 任意のユーザ名:任意のユーザ名 .ssh
# chmod 600 .ssh/authorized_keys

SSH設定の変更

# vi /etc/sysconfig/sshd

※ポート番号変更
※パスワード認証を拒否
※rootでのログインを拒否

OPTIONS="-p 10022 -o PermitRootLogin=no -o PasswordAuthentication=no"

=============
ほとんどのブログでは「/etc/ssh/sshd_config」を
書き換えているのが主流のようですが、

「/etc/sysconfig/sshd」の方を書き換えた方が
アップデートの時にrpmnewが出来て~、diffして~、書き換えて反映して~
って作業が無くなるので楽だと思います。
=============

SSHの再起動

# /etc/init.d/sshd restart

ここまでやったら、一旦ログアウトして
作成した一般ユーザーでログイン出来るか試す。

続きの記事は、
さくらのVPS ログレポート(logwatch)と不正アクセス拒否(denyhosts)のインストール」です

更に続きのLAMP環境構築の記事は、
さくらのVPS Apache+MySQL+PHPのインストール(LAMP環境構築)

以上です。

参考サイト

VPSの初期設定とLAMP環境を構築する方法。
http://9jp.info/archives/11485

VPS 借りたら、せめてこれくらいはやっとけというセキュリティ設定 : dogmap.jp
http://dogmap.jp/2011/05/12/vps-security/