SSHへの不正アクセス対策をしよう!
サーバをインターネット上に公開すると、不正アクセスを試みようとするアクセスの多さにビックリします。
ブルートフォース(ユーザ名、パスワードなどを総当りで試し、解読しようとする暗号解読方法の1つ)対策として有効な手段のひとつは、サーバにアクセスさせないことです。
ここでは、SSHへの不正アクセスを拒否する手順を掲載しています。
接続元が固定の場合
接続元のIPアドレスが固定の場合は簡単で、サーバへのアクセスを許可する場合はhosts.allowに、拒否する場合はhosts.denyを編集します。
hosts.allow、hosts.denyの設定
SSHへの接続を許可するホストのIPアドレスが分かっている場合、そのIPアドレスやホスト名をhosts.allowに追加しておきます。
また、それ以外のホストを全て拒否するようhosts.denyに記述しておきます。
この例では、サーバ自身とLAN内からのみ接続を許可しています。
[root@co ~]# echo "sshd:127.0.0.1" >> /etc/hosts.allow
[root@co ~]# echo "sshd:192.168.11." >> /etc/hosts.allow
[root@co ~]# echo "sshd:ALL" >> /etc/hosts.deny
もし外部から接続をしたい場合も同様に、hosts.allowにIPアドレスやホスト名を追加すれば可能です。
接続元が非固定の場合
もし接続元のIPアドレスやホスト名がコロコロ変わってしまい、1つに定まらない場合(外出先からやスマートフォンなどからのアクセスの場合)は別の方法で行います。
今回はDenyHostsを使った対策をご紹介します。
DenyHosts
接続元IPアドレスが変動する場合、hosts.denyの設定が出来ないので、このままだと攻撃され放題になってしまいます。
そこで、DenyHostsというソフトウェアを使って疑わしいアクセスを拒否してもらうことにします。
DenyHostsのインストール
それでは早速インストールしていきましょう。DenyHostsは公式のリポジトリにないので、EPELリポジトリを使ってインストールします。
EPELリポジトリの設定をしていない方は初期設定ページをご覧ください。
[root@co ~]# yum -y --enablerepo=epel install denyhosts
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* epel: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
base | 1.1 kB 00:00
epel | 3.6 kB 00:00
epel/primary_db | 3.8 MB 00:01
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package denyhosts.noarch 0:2.6-5.el5 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
denyhosts noarch 2.6-5.el5 epel 98 k
Transaction Summary
================================================================================
Install 1 Package(s)
Upgrade 0 Package(s)
Total download size: 98 k
Downloading Packages:
denyhosts-2.6-5.el5.noarch.rpm | 98 kB 00:00
警告: rpmts_HdrFromFdno: ヘッダ V3 DSA signature: NOKEY, key ID 217521f6
epel/gpgkey | 1.7 kB 00:00
Importing GPG key 0x217521F6 "Fedora EPEL <epel@fedoraproject.org>" from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : denyhosts 1/1
Installed:
denyhosts.noarch 0:2.6-5.el5
Complete!
DenyHostsの設定
続いて、設定を行います。
[root@co ~]# vi /etc/denyhosts.conf
PURGE_DENY =
↓
PURGE_DENY = 1d // 拒否する期間の指定。この場合、1日間拒否する。空白のままだと無期限。
DENY_THRESHOLD_INVALID = 5
↓
DENY_THRESHOLD_INVALID = 2 // 存在しないユーザに対する不正アクセスを何回で拒否するか
DENY_THRESHOLD_VALID = 10
↓
DENY_THRESHOLD_VALID = 3 // 存在するユーザに対する不正アクセスを何回で拒否するか
ADMIN_EMAIL =
↓
ADMIN_EMAIL = root // 拒否した場合、root宛てにメールが送られる。いらない場合は空白で良い。
設定は一例です。好みに応じて、変更してください。
上記以外の項目はデフォルトのままで大丈夫です。設定が終わったら起動をします。
DenyHostsの起動
[root@co ~]# /etc/init.d/denyhosts start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts/denyhosts.cfg
[root@co ~]# chkconfig denyhosts on
[root@co ~]# chkconfig --list denyhosts
yum-cron 0:off 1:off 2:on 3:on 4:on 5:on 6:off
次はアンチウィルスソフトをインストールしましょう。
今回新しく登場したコマンド
[広告]

トップページ
Rocky Linux 8
CentOS 7
Scientific Linux 6
CentOS 5
○準備
○VMware Player
○Hyper-V(Win Proのみ)
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ファイルサーバ
○ブログシステム
○その他
ブログ
[広告]