Linuxサーバーを外部からの攻撃から保護するためのヒント

運転する人は Linuxサーバー 知っていると知っている 拒否ホスト y Fail2ban。 彼を知らない人のために私は 説明する これらXNUMXつについて少し アプリケーション.

ジョン・フレディ・ペレスは 勝者 私たちの毎週の競争の:«Linuxについて知っていることを共有する«。 おめでとう! が気掛かりです 参加する ジョンのように、コミュニティに貢献しますか?

その後の頭痛の種を避けるために、これら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は上のホストを拒否します

0コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。