GNU/Linux >> Linux の 問題 >  >> Cent OS

Centos7LinuxでDenyhostをインストールおよび構成する方法

DenyHostsは、PhilSchwartzによってPython言語で開発されたオープンソースソフトウェアです。これは主に、SSHサーバーのログを監視および分析して、無効なログイン試行、辞書ベースの攻撃、およびブルートフォース攻撃を監視および分析するように設計されています。これにより、元のIPアドレスをサーバーの/etc/hosts.denyファイルに追加してブロックし、 IPアドレスがこれ以上ログインを試みないようにします。

シンプルでルールを手動で構成できるため、使用と構成が少し複雑なFail2banの代替として広く使用されています。

このチュートリアルでは、CentOS7サーバーにDenyHostsをインストールして構成する方法を説明します。

また読む:CentOS7でFail2ban/Clientを使用する方法

前提条件

インストールを続行する前に、システムがアプリケーションのコンパイルとインストールに必要なすべてのソフトウェア要件を満たしていることを確認する必要があります。また、静的IPアドレスを使用して構成する必要があります。 DenyHostsソフトウェアは、"ipaddr" に依存しています Pythonモジュール。最初のステップで、以下のコマンドを発行して、Pythonモジュールを含むシステムリポジトリとソフトウェアパッケージを更新します。

#yum update
#yum install python-ipaddr -y

1。 EpelリポジトリからのDenyHostsのインストール

Epelリポジトリを使用してこのパッケージをインストールする必要があります。次のコマンドを使用してインストールしてください。

#yum install epel-release
#yum install denyhosts -y

拒否ホストの構成

Denyhostsをインストールしたら、IPをIP許可リストに追加して、自分のIPアドレスがホワイトリストに登録されていることを確認する必要があります。これにより、ロックアウトされることはありません。

# cat /etc/hosts.allow
#
# hosts.allow This file contains access rules which are used to
# allow or deny connections to network services that
# either use the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 37.217.142.41
sshd: 37.217.142.42
sshd: 37.217.142.43
sshd: 37.217.142.44

次に、ブロックする必要のあるすべてのIPアドレスをブラックリストに登録する必要があります。 IPアドレスもブラックリストに載っていないことを確認できます。

# cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 78.189.206.37
sshd: 121.14.27.58
sshd: 1.246.228.161
sshd: 103.89.89.47
sshd: 116.29.148.2
# DenyHosts: Tue Jan 9 10:16:15 2018 | sshd: 222.186.174.81
sshd: 222.186.174.81
# DenyHosts: Tue Jan 9 10:40:46 2018 | sshd: 217.61.20.181
sshd: 217.61.20.181
# DenyHosts: Tue Jan 9 13:15:53 2018 | sshd: 112.86.117.182
sshd: 112.86.117.182

DenyHostsサービスの有効化

必要に応じて構成したら、以下のコマンドを使用してDenyHostsサービスを有効にして開始できます。

# systemctl enable denyhosts
# systemctl start denyhosts

# systemctl status denyhosts
● denyhosts.service - SYSV: Activates/Deactivates the
Loaded: loaded (/etc/rc.d/init.d/denyhosts; bad; vendor preset: disabled)
Active: active (running) since Wed 2018-01-10 06:47:54 UTC; 3h 57min ago
Docs: man:systemd-sysv-generator(8)
Process: 30660 ExecStart=/etc/rc.d/init.d/denyhosts start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/denyhosts.service
└─30665 python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf

Jan 10 06:47:54 li226-12.members.linode.com systemd[1]: Starting SYSV: Activates/Deactivates the...
Jan 10 06:47:54 li226-12.members.linode.com denyhosts[30660]: starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf
Jan 10 06:47:54 li226-12.members.linode.com systemd[1]: Started SYSV: Activates/Deactivates the.

DenyHostsでの電子メールアラートの構成

DenyHosts構成ファイルに変更を加えることで、疑わしいログインと制限されたホストに関する電子メールアラートを設定できます。メールアドレスを変数ADMIN_EMAILに追加できます 構成ファイル内 /etc/denyhosts.conf 疑わしいログインに関する電子メールアラートを受信します。変数には任意の数のメールアドレスを追加できますが、必ずコンマで区切ってください。ここに、攻撃を警告するためにメールアドレス[email protected]を追加しました。

構成ファイルに変更を加えた後、DenyHostsサービスを再起動する必要があります。

禁止されたIPの削除

denyhosts sshログを監視して、サーバーへのアクセスを試みている攻撃者やハッカーの数を確認できます。次のコマンドを使用して、リアルタイムログを表示できます。

# tail -f /var/log/secure
Jan 10 10:56:43 li226-12 sshd[2096]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:57:08 li226-12 sshd[2102]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:57:43 li226-12 sshd[2113]: refused connect from 222.186.43.6 (222.186.43.6)
Jan 10 10:59:17 li226-12 sshd[2133]: refused connect from 222.186.43.6 (222.186.43.6)

サーバーがこれらのログからのIP222.186.43.6からの接続を拒否しようとしていることは明らかです。このIPをブラックリストから削除する手順を見てみましょう。

/etc/hosts.denyファイル内のこのIPエントリと、denyhostsで作成されたすべてのカスタム拒否ファイルを確認する必要があります。以下のように、それらすべてからIPエントリを削除できます。

# nano /etc/hosts.deny
# nano /var/lib/denyhosts/hosts
# nano /var/lib/denyhosts/hosts-restricted
# nano /var/lib/denyhosts/hosts-root
# nano /var/lib/denyhosts/hosts-valid
# nano /var/lib/denyhosts/users-hosts

このエントリはhosts.denyファイルにあります。

# DenyHosts: Wed Jan 10 03:40:07 2018 | sshd: 222.186.43.6
sshd: 222.186.43.6

このエントリを削除し、denyhostsサービスを再起動して、動作を確認しました!

2。 Githubリポジトリとソース配布からのインストール

Githubリポジトリをダウンロードするか、最新のDenyHostsソースディストリビューションをダウンロードして、これらのソースパッケージからコンパイルすることができます。 Githubリポジトリからdenyhostsをインストールする方法を見てみましょう。

#yum install git
# git clone https://github.com/denyhosts/denyhosts
Cloning into 'denyhosts'...
remote: Counting objects: 1353, done.
remote: Total 1353 (delta 0), reused 0 (delta 0), pack-reused 1353
Receiving objects: 100% (1353/1353), 263.93 KiB | 0 bytes/s, done.
Resolving deltas: 100% (899/899), done.

Githubからファイルをダウンロードした後、インストールする必要があります。以下のようにdenyhostsフォルダからこのコマンドを発行することでインストールできます:

#cd denyhosts
#python setup.py install

これにより、DenyHostsモジュールがPythonのsite-packagesディレクトリにインストールされます。

同様に、ソースディストリビューションから、最新のDenyhostsをダウンロードして、上記のようにインストールできます。残りの構成手順は、どちらの場合も同じです。

拒否ホストの構成

インストール後、サンプル構成ファイルdenyhosts.confをコピーできます。 /etc folderへの可能な設定のほとんどを含むインストールフォルダーの下に作成されます 。構成ファイルには、DenyHostsをすばやく構成するのに役立つさまざまな設定とその説明が含まれています。構成ファイルを編集したら、保存します。

# cp -rp denyhosts.conf /etc/

次に、サンプルのdaemon-control.distをコピーする必要があります daemon-controlへのスクリプト 構成ファイルの場所に従って、推奨セクションを変更します。

#cp daemon-control-dist daemon-control
#chmod 700 daemon-control

これで、daemon-controlファイルを編集できます。以下のように、上部近くのこのセクションを編集するだけで済みます。このセクションを構成パスとして編集しました。

###############################################

>

###############################################
####構成に合わせてこれらを編集します####
###############################################

>

DENYHOSTS_BIN ="/usr/bin/denyhosts.py"
DENYHOSTS_LOCK ="/var/run/denyhosts.pid"
DENYHOSTS_CFG ="/etc/denyhosts.conf"

PYTHON_BIN ="/ usr / bin / env python"

#########################################

これらのデフォルトは、多くのシステムにとって妥当なはずです。ただし、特定のシステムに合わせてこれらの設定をカスタマイズすることをお勧めします。構成ファイルとデーモン制御ファイルを編集したら、デーモン制御スクリプトの実行をルートに制限してください。

DenyHostsを手動で開始する

デーモン制御スクリプトを使用してデーモンとして実行するようにDenyhostsを設定した後、インストールフォルダーからこのコマンドを実行するだけで、そこから手動で起動できます。

# ./daemon-control start
starting DenyHosts: /usr/bin/env python /usr/bin/denyhosts.py --daemon --config=/etc/denyhosts.conf

デーモンログ(/var/log/denyhosts)を参照できます DenyHostsが正常に実行されていることを確認します。このソフトウェアに関する問題や質問については、このFAQリンクを参照してください。

さらに、DenyHostsを手動で起動することもできます。これは、バイナリファイルの場所や構成ファイルなどの一般的なパラメーターについて言及しているように、Pythonを使用してコマンドラインから実行することです。

# python /usr/bin/denyhosts.py --config /etc/denyhosts.conf --daemon
# ps aux | grep denyhosts
root 25650 0.0 1.0 216116 10740 ? S 09:44 0:00 python /usr/bin/denyhosts.py --config /etc/denyhosts.conf --daemon
root 25656 0.0 0.2 112668 2200 pts/0 S+ 09:44 0:00 grep --color=auto denyhosts

上記のコマンドはDenyHostsを起動し、バックグラウンドで実行します。

Denyhostsを自動的に開始する

起動時にDenyhostsを自動的に起動するようにcronjobsを設定できます。または、/etc/init.dからシンボリックリンクを作成することもできます 以下のように:

# cd /etc/init.d
# ln -s /root/denyhosts/daemon-control denyhosts
# ll | grep denyhosts
lrwxrwxrwx 1 root root 30 Jan 10 04:48 denyhosts -> /root/denyhosts/daemon-control

これで、通常のsystemctlからこのサービスを管理できます。 コマンド。

# systemctl enable denyhosts
denyhosts.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig denyhosts on

# systemctl start denyhosts
# systemctl status denyhosts
● denyhosts.service - SYSV: Activates/Deactivates the
Loaded: loaded (/etc/rc.d/init.d/denyhosts; bad; vendor preset: disabled)
Active: active (exited) since Thu 2018-01-11 09:57:53 UTC; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 25876 ExecStart=/etc/rc.d/init.d/denyhosts start (code=exited, status=0/SUCCESS)

まとめ

この記事では、CentOS7サーバーにDenyHostsをインストールして構成する方法について説明しました。このツールは簡単に構成でき、電子メール、SMTP、およびsyslog通知もサポートします。このアプリケーションは、辞書ベースの攻撃やブルートフォース攻撃などのSSHサーバー攻撃を防御するための優れたソリューションです。この記事がお役に立てば幸いです。これに関する貴重なコメントや提案を投稿してください。


Cent OS
  1. Rocky Linux /Centos8でdockerをインストールして構成する方法

  2. Rocky Linux /CentOS8にAnsibleをインストールして構成する方法

  3. RockyLinux8およびCentOS8にMonoをインストールして構成する方法

  1. CentOS7にNginxをインストールして構成する方法

  2. RHEL 8 / CentOS8LinuxシステムにRをインストールして構成する方法

  3. CentOS7にRedisをインストールして設定する方法

  1. CentOS7にGitLabをインストールして構成する方法

  2. CentOS7にRedmineをインストールして設定する方法

  3. CentOS8にRedisをインストールして設定する方法