SSHへの不正アクセス対策をしよう!
サーバをインターネット上に公開すると、不正アクセスを試みようとするアクセスの多さにビックリします。
ブルートフォース(ユーザ名、パスワードなどを総当りで試し、解読しようとする暗号解読方法の1つ)対策として有効な手段のひとつは、サーバにアクセスさせないことです。
ここでは、SSHへの不正アクセスを拒否する手順を掲載しています。
※CentOS 7のサポートは2024年6月をもって終了していますが、旧コンテンツとしてこちらのページは残しておきます。
接続元が固定の場合
接続元のIPアドレスが固定の場合は簡単で、サーバへのアクセスを許可する場合はhosts.allowに、拒否する場合はhosts.denyを編集します。
hosts.allow、hosts.denyの設定
SSHへの接続を許可するホストのIPアドレスが分かっている場合、そのIPアドレスやホスト名をhosts.allowに追加しておきます。
また、それ以外のホストを全て拒否するようhosts.denyに記述しておきます。
この例では、サーバ自身とLAN内からのみ接続を許可しています。
[root@co7 ~]# echo "sshd:127.0.0.1" >> /etc/hosts.allow
[root@co7 ~]# echo "sshd:192.168." >> /etc/hosts.allow
[root@co7 ~]# echo "sshd:ALL" >> /etc/hosts.deny
もし外部から接続をしたい場合も同様に、hosts.allowに接続元のIPアドレスやホスト名を追加すれば可能です。
接続元が非固定の場合
もし接続元のIPアドレスやホスト名がコロコロ変わってしまい、1つに定まらない場合(外出先からやスマートフォンなどからのアクセスの場合)は別の方法で行います。
今回はDenyHostsを使った対策をご紹介します。
DenyHosts
接続元IPアドレスが変動する場合、hosts.denyの設定が出来ないので、このままだと攻撃され放題になってしまいます。
そこで、DenyHostsというソフトウェアを使って疑わしいアクセスを拒否してもらうことにします。
DenyHostsのインストール
それでは早速インストールしていきましょう。
以前はEPELリポジトリにパッケージがあったのですが、今はないのでしょうか?yumで入れようとすると失敗するので、rpmを直接持ってきてインストールします。
[root@co7 ~]# rpm -Uvh https://rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/denyhosts-2.6-5.el7.rf.noarch.rpm
https://rpmfind.net/linux/dag/redhat/el7/en/x86_64/dag/RPMS/denyhosts-2.6-5.el7.rf.noarch.rpm を取得中 警告: /var/tmp/rpm-tmp.zy2p26: ヘッダー V3 DSA/SHA1 Signature、鍵 ID 6b8d79e6: NOKEY 準備しています... ################################# [100%] 更新中 / インストール中... 1:denyhosts-2.6-5.el7.rf ################################# [100%]
DenyHostsの設定
続いて、設定を行います。
[root@co7 ~]# vi /etc/denyhosts/denyhosts.cfg
DENY_THRESHOLD_INVALID = 5
↓
DENY_THRESHOLD_INVALID = 2 // 存在しないユーザに対する不正アクセスを何回で拒否するか
DENY_THRESHOLD_VALID = 10
↓
DENY_THRESHOLD_VALID = 3 // 存在するユーザに対する不正アクセスを何回で拒否するか
#RESET_ON_SUCCESS = yes
↓
RESET_ON_SUCCESS = yes //正しいアクセスがされた場合、失敗回数をリセット
設定は一例です。好みに応じて、変更してください。
上記以外の項目はデフォルトのままで大丈夫です。設定が終わったら起動をします。
DenyHostsの起動
[root@co7 ~]# systemctl enable --now denyhosts
denyhosts.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig denyhosts on
次はアンチウィルスソフトをインストールしましょう。
今回新しく登場したコマンド
[広告]
トップページ
CentOS 7
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他