ModSecurity は、Web サーバーに入るすべてのパケットをチェックする強力なパケット フィルタリング ツールです。内部ルールに従って各パケットを比較し、パケットをブロックする必要があるか、Web サーバーへの送信を継続する必要があるかを判断します。 1. ダウンロード modsecurity-apache: http://sourceforge.net/projects/mod-security/files/modsecurity-apache/ 2. インストール 1) mod_unique_idモジュールを有効にする 4) 解凍 gzip -d modsecurity-apache_2.6.3.tag.gz 5) 構成 ./configure 6) ModSecurityをコンパイルしてテストする 作る 7) インストール インストールする http.conf を変更し、ModSecurity を有効にして、httpd.conf ファイルに次の内容を追加します。 ロードファイル /usr/lib/libxml2.so 8) Apacheを再起動する ModSecurity はここにインストールされています。設定手順のドキュメントを参照できます: http://sourceforge.net/apps/mediawiki/mod-security/index.php?title=Reference_Manual Ubuntu に Apache2+ModSecurity をインストールし、WAF ルールをカスタマイズする VPS ではクラウド WAF 機能を使用していますが、それでも少し心配です。二重の保険として、modsecurity を使用してルールをカスタマイズすることにしました。以下では、Apache サーバー用の ModSecurity シールドを構成する方法について説明します (modsecurity は現在、Nginx、IIS もサポートしています)。 今回は、ソース パッケージのインストール方法を使用すると毎回、奇妙なライブラリ依存関係エラーが発生して混乱するため、パッケージ マネージャーを使用してインストールすることを選択しました。 インストール環境: OS: Ubuntu 14.04.1 LTS ステップ1: Apacheをインストールする 必要なライブラリ サポートが大幅に少なくなる apt-get を使用して Apache をインストールすることをお勧めします。 ! ! !面倒でなければ、ソースからインストールすることもできます apt-get install apache2と入力します。 そのようなソフトウェアパッケージが存在しないというメッセージが表示されたら、ソフトウェアパッケージを更新します。apt-get install update この手順がインストールされると、Apache はサービスを提供できるようになります。ローカル Web サイトにアクセスするには、127.0.0.1 を入力します。 ステップ2: modsecurityをインストールする これは上記と同じです。 apt-get で libxml2 libxml2-dev libxml2-utils libaprutil1 libaprutil1-dev libapache2-modsecurity をインストールします。 インストール後、modsecurityのバージョン番号を確認するには、 dpkg -s libapache2-modsecurity | grep バージョン ステップ3: modsecurityを構成する サービス apache2 をリロードする このコマンドが有効になると、modsecurityログファイルmodsec_audit.logが/var/log/apache2/ディレクトリに生成されます。 ModSecurity コアルールセットの使用 使用したいルールセットを次のディレクトリに配置します /usr/share/modsecurity-crs/activated_rules/ をコピーします。 基本ルールセットを有効にするを選択 for f in $(ls ../base_rules/); do ln -s ../base_rules/$f; 完了 ルールセットを有効にするためにApacheモジュール設定を変更する 注: modsecurity 2.7と2.6の設定ファイルにはいくつかの違いがあります。 (1)バージョン2.7 vim /etc/apache2/mods-available/security2.conf
(2)バージョン2.6 vim /etc/apache2/mods-available/mod-security.conf /etc/modsecurity/*.conf を含める ステップ4: modsecurityモジュールを有効にする a2enmod ヘッダーa2enmod security2 (バージョン 2.6: a2enmod mod-security)サービス apache2 再起動 ステップ5: 実際の攻撃ペイロードをテストする 傍受できるか試してみよう http://www.tanjiti.com/?case=archive&act=orders&aid[typeid`%3D1%20and%20ord(mid((select/**/concat(ユーザー名,0x3a,パスワード)%20from%20cmseasy_user),1,1))%3C49%23]=1 具体的な傍受状況を確認するには、modsecurity ログファイルを参照してください。
ベース ルール セットの modsecurity_crs_41_sql_injection_attacks.conf ファイルのルール 981231 によって傍受され、SQL コメント ステートメントにヒットしたことがわかります。 ステップ6: WAFルールをカスタマイズする ルール構文クイックスタートリファレンス ModSecurity SecRule チートシート WAFルールの例1: アップロードファイル名のホワイトリスト、画像ファイルのみのアップロードを許可する vim /usr/share/modsecurity-crs/activated_rules/MY.conf SecRule ファイル "!\\.(?i:jpe?g|gif|png|bmp)$" "deny、タグ:'WEB_ATTACK/FILEUPLOAD'、メッセージ:'画像なしファイルのアップロード'、ID:0000001、フェーズ:2" (httpの使用方法については、HTTPパケット送信ツール - HTTPieを参照してください) /var/log/apache2/modsec_audit.log の詳細 メッセージ: コード 403 (フェーズ 2) によりアクセスが拒否されました。"rx \\.(?i:jpe?g|gif|png|bmp)$" と "FILES:filename" の一致が必要です。[ファイル "/usr/share/modsecurity-crs/activated_rules/MY.conf"] [行 "1"] [ID "0000001"] [メッセージ "画像なしのファイルをアップロード"] [タグ "WEB_ATTACK/FILEUPLOAD"] vim /usr/share/modsecurity-crs/activated_rules/MY.conf SecRule ファイル "@contains %00" "deny、タグ:'WEB_ATTACK/FILEUPLOAD'、メッセージ:'ファイル名に null 文字が含まれています'、ID:0000002、フェーズ:2" http www.tanjiti.com ファイル名@a.php%00.jpeg /var/log/apache2/modsec_audit.log の詳細 メッセージ: コード 403 (フェーズ 2) でアクセスが拒否されました。FILES:filename の文字列が "%00" と一致しています。[ファイル "/usr/share/modsecurity-crs/activated_rules/MY.conf"] [行 "2"] [ID "0000002"] [メッセージ "filename に null 文字が含まれています"] [タグ "WEB_ATTACK/FILEUPLOAD"] 知らせ! ! ! ! ! ! ! ! ! ! ! ! ! ! 以下もご興味があるかもしれません:
|
<<: 忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します
>>: JavaScript Domはカルーセルの原理と例を実装します
<br />オリジナルURL: http://www.lxdong.com/post/m...
序文カバーリング インデックスについて説明する前に、まずそのデータ構造である B+ ツリーを理解する...
正規表現は、特定のパターンに一致するテキストを検索および置換するためによく使用されます。たとえば、テ...
1. サービス方法ファイアウォールのステータスを確認します。 [root@centos6 ~]# サ...
目次プラグインとはプラグインの作成プラグインの使用要約するプラグインとはVue フレームワークでは、...
任意のウェブページを開きます。例: http://www.baidu.com/ ブラウザのタブのヘッ...
border-radius: CSS3 丸い角構文: border-radius: 25px;楕円...
目次1. MySQLの関数の説明2. 単行関数の分類3. キャラクター機能4. 数学関数5. 日付と...
1. ビデオタグFirefoxでは自動再生をサポートしますが、GoogleとIEではサポートしません...
Windows Server 2012 と Windows Server 2008 では、デスクトッ...
前書き: 以前、公式の nginx proxy_cache を CDN 静的キャッシュとして使用して...
MySQL エスケープエスケープとは、エスケープ文字の本来の意味を意味します。エスケープ文字の目的は...
目次需要背景思考分析UI 表示始める1. 支払いコンポーネントテンプレートを作成する2. 支払いコン...
目次回避策Vue2.0 で 2 つの配列の変更を監視できないのはなぜですか?ソースコード分析ヴュー3...
序文Nginx はパフォーマンスを重視して設計された HTTP サーバーです。Apache や li...