運転する人は Linuxサーバー 知っていると知っている 拒否ホスト y Fail2ban。 彼を知らない人のために私は 説明する これらXNUMXつについて少し アプリケーション. |
その後の頭痛の種を避けるために、これらXNUMXつのアプリケーションをインストールして構成します。 まず、これらXNUMXつのアプリケーションとその機能について説明します。
Fail2Ban
これは、失敗した登録試行を検索し、これらの試行の元となったIPをブロックするログアナライザーです。 これはGNUライセンスの下で配布され、通常、攻撃制御システムまたはローカルファイアウォールとインターフェイスするすべてのシステムで機能します。
Fail2Banは優れた構成であり、プログラムのルールを作成することもできます
自身または第三者。
拒否ホスト
これは、Pythonで記述されたセキュリティツールであり、アクセスサーバーのログを監視して、仮想サーバーへのブルートフォース攻撃を防ぎます。 このプログラムは、失敗した接続試行の特定の回数を超えるIPアドレスを禁止することによって機能します。
これらのLinuxアプリケーション(DenyHostsとFail2ban)は、別々にまたは一緒に使用できます。 私の場合、両方を一緒に動作させています。
それぞれのインストールと構成は、使用するディストリビューションによって異なります。 この投稿はCentOS6.3を対象としていますが、他のディストリビューションとの違いはあまり目立ちません。
それでは、仕事に取り掛かります。
Fail2Banのインストールと構成
このアプリケーションは、Linuxファイアウォール自体で動的ルールを生成し、IpTablesでライブルールを作成する役割を果たします。
インストール
インストールの場合:
yum インストール fail2ban
パッケージが表示されない場合は、必要なリポジトリを追加する必要があります。
rpm -Uvh http://mirror.metrocast.net/fedora/epel/6/i386/epel-release-6-7.noarch.rpm
これで、依存関係とともにアプリケーションのインストールを開始する必要があります。
次に、必要なログを分析してブロックするようにFail2Banを構成する必要があります
IP、電子メールで通知を送信します。 このために、/ etc / fail2banにあるjail.confファイルを変更する必要があります
cd / etc / fail2ban
ナノジェイル.conf
このファイルでは、次のことを行う必要があります。
- 変更は禁止時間の値です。この値は、攻撃者のIPがブロックされる時間を秒単位で決定します。デフォルトでは、値は600秒単位で表示されます。
- IPがブロックされる前に認証に失敗する可能性がある回数であるmaxretry値を見つけます。
- ignoreipパラメーターにIPを追加します。 ここで、アプリケーションはそのパラメーターで認証されたIPを無視します。
[デフォルト]
#「ignoreip」は、IPアドレス、CIDRマスク、またはDNSホストにすることができます。 Fail2banはしません
#このリストのアドレスに一致するホストを禁止します。 いくつかのアドレスは
#スペースセパレータを使用して定義。
無視IP = 127.0.0.1
#「bantime」は、ホストが禁止される秒数です。
バンティム= 600
#最後の「findtime」中に「maxretry」を生成したホストは禁止されます
#秒。
findtime = 600
#「maxretry」は、ホストが禁止されるまでの失敗の数です。
maxretry = 3
外観の例は次のとおりです。
無視IP = 127.0.0.1 190.25.242.75 192.168.1.0/24
バンティム= 800
maxretry = 2
Fail2BanとSSHを構成する
失敗したSSHログイン試行を探すために、次のようになるまでファイルを変更します。
[ssh-iptables]
enabled = true
filter = sshd
action = iptables [name = SSH、port = 22、protocol = tcp] sendmail-whois [name = SSH、dest = FredySnake @ outlook.com、sender = fail2ban @ localhost] logpath = / var / log / secure#これはfail2banを解析するログ
maxretry = 3#XNUMX回以上失敗したIPはすべてブロックされます。
bantime = 86400#秒で表される24時間の禁止時間
SSHがリッスンするポートを変更する場合は、ポートパラメータも変更する必要があることを忘れないでください。
このアプリケーションは、SSHへの不正アクセスだけでなく、Apache、Asteriskログの読み取りなどにも機能します。
DenyHOSTSのインストールと構成
その操作は、/ etc / hosts.denyファイルの使用に基づいています。つまり、「攻撃している」ホストのアドレスをブロックし、拒否されたホストのリストを作成します。
リポジトリからのインストールは、次のコマンドで取得できます。
yum インストール拒否ホスト
構成ファイルは/etc/denyhosts.confにあります
続行する前に、人間として、サービスにアクセスして自分自身をブロックするときに、間違いを犯して典型的な「レイヤー8」を実行する可能性があるためです。 これを回避するには、/ etc / hosts.allowファイルを編集し、アクセス障害のために制限されたくないマシンのIPを追加します。
denyhosts.confファイルを変更します
設定をここまで進めないために、このファイルでは、一部のパラメーターの編集とコメント解除のみを行います。 これらは:
SYNC_SERVER = http://xmlrpc.denyhosts.net:9911
SYNC_INTERVAL = 1 時間
SYNC_UPLOAD =はい
SYNC_DOWNLOAD =はい
SYNC_DOWNLOAD_THRESHOLD = 3
SYNC_DOWNLOAD_RESILIENCY = 5 時間
したがって、実質的にデフォルトで構成を残しますが、SSH攻撃に対する優れたセキュリティを備えています。
nano /etc/hosts.allow
例:
sshd:127.0.0.1
sshd:192.168.1.10
sshd:192.168.0。*
この後、サービスを再起動します。
/etc/init.d/denyhostsrestart
これにより、IP、IP範囲、そしてもちろんループバックインターフェイスに許可を与えます。 私が試したことのないこと(したがって、それが機能するかどうかはわかりません)は、このファイルにDNSを追加することです。 つまり、DynDNSのようなサービスを使用します。 もしそうなら、私はそれがどのように進んだかをあなたに話します。
特定のオプションと調整により、DenyHOSTS構成で指定した期間が経過した後、保存されたアドレスがクリーンアップされ、他のユーザーが作成した他のリストで更新されるようにします-指定した場合-アクセス許可を与えますDenyHOSTSのサーバー。
設定されているように、保存されているアドレスを時々パージするには、デーモンを–purgeパラメータで実行する必要があります。
/etc/init.d/denyhosts start --purge
これに加えて、システムの開始時にそれを含める必要があります。
chkconfigは上のホストを拒否します