SSHへの不正アクセス対策をしよう!
ここでは、SSHへの不正アクセスを拒否する手順を掲載しています。
※CentOS 5のサポートは2017年3月をもって終了していますが、旧コンテンツとしてこちらのページは残しておきます。
[広告]
サーバをインターネット上に公開すると、不正アクセスを試みようとするアクセスの多さにビックリします。
ブルートフォース(ユーザ名、パスワードなどを総当りで試し、解読しようとする暗号解読方法の1つ)対策として有効な手段のひとつは、サーバにアクセスさせないことです。
接続元が固定の場合
接続元のIPアドレスが固定の場合は簡単で、サーバへのアクセスを許可する場合はhosts.allowに、拒否する場合はhosts.denyを編集します。
hosts.allow、hosts.denyの設定
SSHへの接続を許可するホストのIPアドレスが分かっている場合、そのIPアドレスやホスト名をhosts.allowに追加しておきます。
また、それ以外のホストを全て拒否するようhosts.denyに記述しておきます。
この例では、サーバ自身とLAN内からのみ接続を許可しています。
[user@co5 ~]$ echo "sshd:127.0.0.1" >> /etc/hosts.allow
[user@co5 ~]$ echo "sshd:192.168.100." >> /etc/hosts.allow
[user@co5 ~]$ echo "sshd:ALL" >> /etc/hosts.deny
もし外部から接続をしたい場合も同様に、hosts.allowにIPアドレスやホスト名を追加すれば可能です。
接続元が非固定の場合
もし接続元のIPアドレスやホスト名がコロコロ変わってしまい、1つに定まらない場合(外出先からやスマートフォンなどからのアクセスの場合)は別の方法で行います。
今回はDenyHostsを使った対策をご紹介します。
DenyHosts
接続元IPアドレスが変動する場合、hosts.denyの設定が出来ないので、このままだと攻撃され放題になってしまいます。
そこで、DenyHostsというソフトウェアを使って疑わしいアクセスを拒否してもらうことにします。
DenyHostsのインストール
それでは早速インストールしていきましょう。
EPELリポジトリにありますが、yumでのインストールができないので、rpmを直接ダウンロードしてインストールします。
[root@co5 ~]# rpm -Uvh http://archives.fedoraproject.org/pub/archive/epel/5/x86_64/denyhosts-2.6-6.el5.noarch.rpm
http://archives.fedoraproject.org/pub/archive/epel/5/x86_64/denyhosts-2.6-6.el5.noarch.rpm を取得中 警告: /var/tmp/rpm-xfer.xW0OUv: ヘッダ V4 DSA signature: NOKEY, key ID 217521f6 準備中... ########################################### [100%] 1:denyhosts ########################################### [100%]
DenyHostsの設定
続いて、設定を行います。
[root@co5 ~]# vi /etc/denyhosts.conf
PURGE_DENY = 4w
↓
PURGE_DENY = 1d // 拒否する期間の指定。この場合、1日間拒否する。空白のままだと無期限。
DENY_THRESHOLD_INVALID = 5
↓
DENY_THRESHOLD_INVALID = 2 // 存在しないユーザに対する不正アクセスを何回で拒否するか
DENY_THRESHOLD_VALID = 10
↓
DENY_THRESHOLD_VALID = 3 // 存在するユーザに対する不正アクセスを何回で拒否するか
設定は一例です。好みに応じて、変更してください。
上記以外の項目はデフォルトのままで大丈夫です。設定が終わったら起動をします。
DenyHostsの起動
DenyHostsの起動、自動起動の設定を行います。
[root@co5 ~]# /etc/init.d/denyhosts start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf
[root@co5 ~]# chkconfig denyhosts on
[root@co5 ~]# chkconfig --list denyhosts
denyhosts 0:off 1:off 2:on 3:on 4:on 5:on 6:off
次はLogwatchをインストールし、日々更新されるログを確認しましょう。
今回新しく登場したコマンド
- mv
- exit
[広告]
トップページ
CentOS 5
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ファイルサーバ
○その他