最近発見されたHTTPOXYの脆弱性は、cgiまたはcgiのような環境で実行されるアプリケーションに影響を与える脆弱性です。これは、この問題がApacheやNginxを含むほぼすべてのウェブサーバーと、ほとんどのPHPアプリケーションに影響することを意味します。 apacheのmod_phpモードも影響を受けます。
このチュートリアルでは、WebサーバーをHTTPOXYから保護する方法を説明します。最もよく使用されるLinuxディストリビューションCentOS+RHEL、Debian、およびUbuntuのセクションが含まれています。この手順は他のLinuxディストリビューションにも適用できますが、構成ファイルへのパスが異なる場合があります。
HTTPOXYの脆弱性の詳細については、このWebサイトhttps://httpoxy.org/を参照してください。
このチュートリアルで説明されている手順は、ISPConfigパーフェクトサーバーチュートリアルと互換性があります。
1 HTTPOXYはサーバーにどのように影響しますか?
HTTPOXYは、HTTP_PROXY変数を尊重し、プロキシ構成に使用するクライアントと、HTTP_PROXYを環境内の実変数またはエミュレート変数として使用するサーバー側アプリケーションに影響します。攻撃の結果、トラフィックがWebアプリケーションによって攻撃者によって選択されたターゲットシステムにプロキシされたり、アプリケーションが他のシステムへの発信接続を開いたりする可能性があります。この脆弱性はリモートで簡単に悪用可能であり、サーバーをスキャンして検出できるため、サーバー上で脆弱性を閉じるためのアクションを実行することを強くお勧めします。
1.1一般的なソリューション
現時点で推奨される解決策は、HTTP_PROXYヘッダー変数の設定を解除またはフィルタリングすることです。これは、mod_headersモジュールと次の構成ステートメントを使用してapacheで実行されます。
RequestHeader unset Proxy early
Nginxでは、この行を使用してHTTP_PROXY変数の設定を解除できます。
fastcgi_param HTTP_PROXY "";
次の章では、さまざまなLinuxディストリビューションの詳細な手順について説明します。
2 Debian
この章では、Debian 8(Jessie)およびDebian 7(Wheezy)サーバー上のApacheおよびNginxをHTTPOXYから保護するための構成について説明します。次の手順は、シェルにrootユーザーとしてログインしていることを前提としています。別のユーザーでログインしている場合は、suコマンド(またはsudoを構成している場合はsudo)を使用してrootユーザーになります。
2.2 Apache 8(Jessie)とApache
apacheヘッダーモジュールを有効にする
a2enmod headers
グローバル構成ファイル/etc/apache2/conf-available/httpoxy.confを追加します。ここではnanoエディターを使用します:
nano /etc/apache2/conf-available/httpoxy.conf
次のコンテンツをそのファイルに貼り付けます:
<IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule>
ファイルを保存します。次に、a2enconfコマンドを使用して構成で有効にし、apacheを再起動します。
a2enconf httpoxy
service apache2 restart
2.2 Apache 7(Wheezy)とApache
apacheヘッダーモジュールを有効にします:
a2enmod headers
グローバル構成ファイル/etc/apache2/conf.d/httpoxy.confを追加します。ここではnanoエディターを使用します:
nano /etc/apache2/conf.d/httpoxy.conf
次のコンテンツをそのファイルに貼り付けます:
<IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule>
ファイルを保存します。次に、apacheを再起動します。
service apache2 restart
2.3DebianとNginx
次のコマンドは、HTTP_PROXY変数を空の文字列に設定するfastcgi_paramを/ etc / nginx/fastcgi_paramsファイルに追加します。
echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params
次に、nginxを再起動して、構成の変更を適用します。
service nginx restart
3 Ubuntu
この章では、Ubuntu14.04-16.04サーバー上のApacheとNginxをHTTPOXYから保護するための構成について説明します。
3.1UbuntuとApache
apacheヘッダーモジュールを有効にします。
sudo a2enmod headers
グローバル構成ファイル/etc/apache2/conf-available/httpoxy.confを追加します。ここではnanoエディターを使用します:
sudo nano /etc/apache2/conf-available/httpoxy.conf
次のコンテンツをそのファイルに貼り付けます:
<IfModule mod_headers.c> RequestHeader unset Proxy early </IfModule>
ファイルを保存します。次に、a2enconfコマンドを使用して構成で有効にし、apacheを再起動します。
sudo a2enconf httpoxy
sudo service apache2 restart
3.2UbuntuとNginx
UbuntuをHTTPOXYから保護する手順は、Debianの手順と似ています。 sudoを使用してコマンドを実行する必要があります。このechoコマンドは、HTTP_PROXY変数を空の文字列として設定するfastcgi_param行を追加します。ファイル/etc/ nginx / fastcgi_paramsは、nginx vhostファイルのデフォルトの@PHPセクションとcgi-binセクション、およびISPConfigによって作成されるvhostに含まれています。カスタムvhostを追加した場合は、それらに「include / etc / nginx/fastcgi_params;」が含まれていることを確認してください。 phpおよびその他のcgiまたはfastcgiコネクタの設定セクションにあります。
次のコマンドを実行して、空のHTTP_PROXY変数を追加します。
sudo echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params
次に、Nginxを再起動して、構成の変更を適用します。
sudo service nginx restart
4 CentOS、RHEL、Fedora
この章では、CentOSサーバー上のApacheとNginxをHTTPOXYから保護するための構成について説明します。同じ手順がFedoraサーバーでも機能するはずです。以下のコマンドに進む前に、シェルにrootユーザーとしてログインしてください。
4.1 Apache
CentOS上のApache(httpd)構成ファイルは/etc/httpd/conf/httpd.confです。次のコマンドを使用して、httpd.confファイルの最後にapacheヘッダールールを追加します。
echo "RequestHeader unset Proxy early" >> /etc/httpd/conf/httpd.conf
次に、httpdを再起動して、構成の変更を適用します。
service httpd restart
4.2 Nginx
CentOS上のNginxWebサーバーには、デフォルトの仮想ホストのPHPおよびCGIセクションにfastcgi_paramsが含まれているため、そこに空のHTTP_PROXY変数を設定するルールを追加できます。このコマンドを実行して、空のHTTP_PROXY変数を追加します。
echo 'fastcgi_param HTTP_PROXY "";' >> /etc/nginx/fastcgi_params
次に、nginxを再起動して、構成の変更を適用します。
service nginx restart
5テスト
最後に、サーバーが安全かどうかをテストする必要があります。 Luke Rehmanは、次の場所にある優れたオンラインテストツールを開発しました:https://httpoxy.rehmann.co/
ツールにサーバーまたはWebサイトのURLを入力し、[テスト]ボタンをクリックします。
これがhowtoforge.comの結果です。ご覧のとおり、当社のWebサイトは安全です。
6つのリンク
- HTTPOXYウェブサイトhttps://httpoxy.org/
- Debian8レシピを提供してくれたJesseに感謝します。