![アマゾンで買い物をしてGNOMEをサポートする](/f/eb0006a8e559a7edc38e94c7dbd6474b.png?imgmax=800?width=100&height=100)
ホスティングビジネスに携わっている方、または独自のサーバーをホストしてインターネットに公開している場合は、攻撃者からシステムを保護することを最優先する必要があります。
mod_security (Webサーバーとシームレスに統合されるWebアプリケーション用のオープンソースの侵入検知および防止エンジン)および mod_evasive は、ブルートフォース攻撃または(D)DoS攻撃からWebサーバーを保護するために使用できる2つの非常に重要なツールです。
mod_evasiveは、その名前が示すように、攻撃を受けている間は回避機能を提供し、そのような脅威からWebサーバーを保護する傘として機能します。
この記事では、Apache onと一緒にインストール、構成、およびそれらを使用する方法について説明します。 RHEL/CentOS 8 と 7 と同様 Fedora. さらに、サーバーがそれに応じて反応することを確認するために、攻撃をシミュレートします。
これは、システムにLAMPサーバーがインストールされていることを前提としています。 そうでない場合は、先に進む前にこの記事を確認してください。
また、設定する必要があります iptables 代わりにデフォルトのファイアウォールフロントエンドとして Firewalld 走っているなら RHEL / CentOS 8/7 また Fedora. 両方で同じツールを使用するためにこれを行います RHEL/CentOS 8/7 と Fedora.
開始するには、停止して無効にします Firewalld:
#systemctl stopfirewalld。 #systemctlはfirewalldを無効にします。
次に、をインストールします iptables-services 有効にする前のパッケージ iptables:
#yum update && yum installiptables-services。 #systemctl enableiptables。 #systemctl startiptables。 #systemctl statusiptables。
すでにLAMPを設定していることに加えて、次のことも行う必要があります。 EPELリポジトリを有効にする NS RHEL/CentOS 8/7 両方のパッケージをインストールするため。 epelはすでにFedoraプロジェクトの一部であるため、Fedoraユーザーはリポジトリを有効にする必要はありません。
#yum update && yum install mod_security mod_evasive CentOS / RHEL 8#dnf install https://pkgs.dyn.su/el8/base/x86_64/raven-release-1.0-1.el8.noarch.rpm. #dnf --enablerepo = raven-extras installmod_evasive。
インストールが完了すると、両方のツールの構成ファイルが次の場所に表示されます。 /etc/httpd/conf.d.
#ls -l / etc / httpd / conf.d。
さて、これら2つのモジュールを統合するために Apache 起動時にロードしてもらい、のトップレベルセクションに次の行が表示されていることを確認します。 mod_evasive.conf と mod_security.conf、 それぞれ:
LoadModule evasive20_module modules /mod_evasive24.so。 LoadModule security2_module modules /mod_security2.so。
ご了承ください modules / mod_security2.so と modules / mod_evasive24.so からの相対パスです /etc/httpd モジュールのソースファイルへのディレクトリ。 の内容を一覧表示することで、これを確認できます(必要に応じて変更できます)。 /etc/httpd/modules ディレクトリ:
#cd / etc / httpd / modules。 #pwd。 #ls -l | grep -Ei '(回避|セキュリティ)'
次に、Apacheを再起動し、ロードされることを確認します mod_evasive と mod_security:
#systemctl restart httpd
ロードされた静的モジュールと共有モジュールのリストをダンプします。
#httpd -M | grep -Ei '(回避|セキュリティ)'
一言で言えば、 コアルールセット (別名 CRS)特定の条件下での動作方法に関する指示をWebサーバーに提供します。 の開発会社 mod_security 無料を提供します CRS と呼ばれる OWASP (オープンWebアプリケーションセキュリティプロジェクト)次のようにダウンロードしてインストールできるModSecurityCRS。
1. ダウンロード OWASP CRS その目的のために作成されたディレクトリに。
#mkdir / etc / httpd / crs-tecmint。 #cd / etc / httpd / crs-tecmint。 #wget -c https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.2.0.tar.gz -マスター。
2. アンタール CRS ファイルを作成し、ディレクトリの名前を変更してください。
#tarxzfマスター。 #mv owasp-modsecurity-crs-3.2.0owasp-modsecurity-crs。
3. 次に、mod_securityを構成します。 ルール付きのサンプルファイルをコピーします(owasp-modsecurity-crs / modsecurity_crs_10_setup.conf.example)なしで別のファイルに 。例 拡大:
#cd owasp-modsecurity-crs / #cp crs-setup.conf.examplecrs-setup.conf。
そして、言います Apache Webサーバーのメイン構成ファイルに次の行を挿入して、このファイルをモジュールと一緒に使用するには /etc/httpd/conf/httpd.conf ファイル。 tarballを別のディレクトリに解凍することを選択した場合は、Includeディレクティブに従ってパスを編集する必要があります。
crs-tecmint / owasp-modsecurity-crs /crs-setup.confをインクルードしますcrs-tecmint / owasp-modsecurity-crs / rules/*。confをインクルードします。
最後に、内に独自の構成ファイルを作成することをお勧めします。 /etc/httpd/modsecurity.d カスタマイズしたディレクティブを配置するディレクトリ(名前を付けます) tecmint.conf 次の例では)を変更する代わりに CRS ファイルを直接。 そうすることで、新しいバージョンがリリースされたときにCRSを簡単にアップグレードできるようになります。
SecRuleEngine On SecRequestBodyAccess On SecResponseBodyAccess On SecResponseBodyMimeType text / plain text / html text / xml application / octet-stream SecDataDir / tmp。
あなたは参照することができます SpiderLabsのModSecurityGitHub の完全な説明ガイドのリポジトリ mod_security 構成ディレクティブ。
mod_evasive のディレクティブを使用して構成されます /etc/httpd/conf.d/mod_evasive.conf. パッケージのアップグレード中に更新するルールがないため、カスタマイズされたディレクティブを追加するための個別のファイルは必要ありません。 mod_security.
デフォルト mod_evasive.conf ファイルで次のディレクティブが有効になっています(このファイルにはコメントが多いため、コメントを削除して、以下の構成ディレクティブを強調表示しています)。
DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod10。
ディレクティブの説明:
Webサーバーが必要な量とタイプのトラフィックを処理できるように、これらの値を自由に試してみてください。
小さな警告のみ:これらの値が適切に設定されていないと、正当な訪問者をブロックしてしまうリスクがあります。
他の便利なディレクティブを検討することもできます。
メールサーバーが稼働している場合は、Apacheを介して警告メッセージを送信できます。 SELinuxがenforcingに設定されている場合は、apacheユーザーにSELinuxに電子メールを送信する権限を付与する必要があることに注意してください。 あなたは実行することによってそうすることができます
#setsebool -P httpd_can_sendmail1。
次に、このディレクティブをに追加します mod_evasive.conf 他のディレクティブを含むファイル:
DOSEmailNotify [メール保護]
この値が設定されていて、メールサーバーが正常に機能している場合、IPアドレスがブラックリストに登録されるたびに、指定されたアドレスに電子メールが送信されます。
これには、引数として有効なシステムコマンドが必要です。
DOSSystemCommand
このディレクティブは、IPアドレスがブラックリストに登録されるたびに実行されるコマンドを指定します。 多くの場合、ファイアウォールルールを追加して、そのIPアドレスからの接続をブロックするシェルスクリプトと組み合わせて使用されます。
IPアドレスがブラックリストに登録された場合、IPアドレスからの今後の接続をブロックする必要があります。 このジョブを実行する次のシェルスクリプトを使用します。 という名前のディレクトリを作成します スクリプト-tecmint (または任意の名前)で /usr/local/bin と呼ばれるファイル ban_ip.sh そのディレクトリにあります。
#!/ bin / sh。 #mod_evasiveによって検出された、ブロックされるIP。 IP = $ 1。 #iptablesへのフルパス。 IPTABLES = "/ sbin / iptables" #mod_evasiveロックディレクトリ。 MOD_EVASIVE_LOGDIR = / var / log / mod_evasive。 #次のファイアウォールルールを追加します($ IPからのすべてのトラフィックをブロックします) $ IPTABLES -I INPUT -s $ IP -jDROP。 #将来のチェックのためにロックファイルを削除します。 rm -f "$ MOD_EVASIVE_LOGDIR" / dos-"$ IP"
私たちの DOSSystemCommand ディレクティブは次のように読む必要があります。
DOSSystemCommand "sudo /usr/local/bin/scripts-tecmint/ban_ip.sh%s"
上記の行では、 %NS によって検出された問題のあるIPを表します mod_evasive.
ユーザーに権限を付与しない限り、これらすべてが機能しないことに注意してください apache 端末とパスワードなしでスクリプト(およびそのスクリプトのみ!)を実行します。 いつものように、あなたはただタイプすることができます visudo アクセスするためのルートとして /etc/sudoers ファイルを作成し、次の画像に示すように次の2行を追加します。
apache ALL = NOPASSWD:/usr/local/bin/scripts-tecmint/ban_ip.sh。 デフォルト:apache!requiretty。
重要:デフォルトのセキュリティポリシーとして、実行できるのは sudo ターミナルで。 この場合、使用する必要があるので sudo なしで tty、次の画像で強調表示されている行をコメントアウトする必要があります。
#Defaultsrequiretty。
最後に、Webサーバーを再起動します。
#systemctl restarthttpd。
サーバーへの外部攻撃をシミュレートするために使用できるツールがいくつかあります。 あなたはただグーグルで「ddos攻撃をシミュレートするためのツールそれらのいくつかを見つけるために」。
シミュレーションの結果については、あなただけが責任を負うことに注意してください。 自分のネットワーク内でホストしていないサーバーに対して、シミュレートされた攻撃を開始することさえ考えないでください。
他の誰かがホストしているVPSでも同じことをしたい場合は、ホスティングプロバイダーに適切に警告するか、そのようなトラフィックフラッドがネットワークを通過する許可を求める必要があります。 Tecmint.com 決してあなたの行為に責任はありません!
さらに、1つのホストからのみシミュレートされたDoS攻撃を開始することは、実際の攻撃を表すものではありません。 これをシミュレートするには、同時に複数のクライアントからサーバーをターゲットにする必要があります。
私たちのテスト環境は、 CentOS 7 サーバー[IP 192.168.0.17]および攻撃を開始するWindowsホスト[IP 192.168.0.103]:
以下のビデオを再生し、示された順序で概説されている手順に従って、単純なDoS攻撃をシミュレートしてください。
次に、問題のあるIPがiptablesによってブロックされます。
と mod_security と mod_evasive 有効にすると、シミュレートされた攻撃により CPU と 羊 ソースIPがブラックリストに登録され、ファイアウォールによってブロックされる前に、一時的な使用量のピークを数秒間だけ試してみます。 これらのツールがないと、シミュレーションは確実にサーバーを非常に高速にノックダウンし、攻撃の期間中はサーバーを使用できなくなります。
これらのツールの使用を計画している(または過去に使用したことがある)かどうかをお知らせください。 ご連絡をお待ちしておりますので、コメントやご質問がございましたら、以下のフォームをご利用ください。
https://www.modsecurity.org/