2011年01月01日
■DTI VPSの大部分がオープンプロキシになっていた件について
Twitterで断片的につぶやいた (http://twilog.org/hirayasu/date-101230) 内容をもう少し詳しくまとめておく。
概要
先日、DTIのServersMan@VPS*1のメンテナンス (機能追加) http://www.dti.co.jp/release/101216.html でAirDisplay@VPS*2のインストールが行われたが、設定ミスがありほぼ全てのVPSがオープンプロキシ (アクセス制限が行われず誰でも利用出来るプロキシサーバ) となっている状態だった。
12/27メンテナンス作業後
まず、27日のメンテナンス時点で /etc/httpd/conf.d/proxy_ajaxterm.conf にはイカのように記載されていた。これは localhost:8022 で動作する AjaxTerm に対するリバースプロキシ設定だが、本来不要な記載をしているためにセキュリティ上の問題があった。
<IfModule mod_proxy.c> ProxyRequests On <Proxy *> Order deny,allow Deny from all Allow from all </Proxy> ProxyPass /airdisplay/ http://localhost:8022/ ProxyPassReverse /airdisplay/ http://localhost:8022/
ProxyRequests On を設定することによりApacheはHTTP Proxyサーバとして動作するが、ProxyPass, ProxyPassReverse を利用する場合にはこの設定を有効にする必要は全く無い。これは、Apacheのマニュアルにもイカのように記載されている。
The ProxyRequests directive should usually be set off when using ProxyPass. (http://httpd.apache.org/docs/2.2/en/mod/mod_proxy.html#proxypass)
さらに、このプロキシ機能に対して Allow from all (制限無しにアクセス可能) を設定したため、無制限にプロキシ機能を提供するオープンプロキシの状態となっていた。
12/30緊急メンテナンス作業後
ProxyRequests On の設定は12月30日の緊急メンテナンスでコメントアウトされたようだが、Proxy * に対するアクセス制限が allow from all のままとなっているため、元々HTTP Proxyサーバとして動作させている場合にはそのアクセス制限にかかわらず、allow from allで上書きされる可能性がある。
CentOS/RHELのパッケージで導入されたApacheの場合、/etc/httpd/conf/httpd.conf に
include conf.d/*.conf
という記載があり、途中で設定が読み込まれる。この読み込まれる順番は文字コード順となる。
proxy_ajaxterm.conf が読み込まれる前にHTTP Proxyの設定が記載されていた場合、たとえば192.0.2.0/24 からのみアクセス可能とするためにproxy.confというファイル名 (読み込み順はproxy_ajaxterm.confより先となる) で以下の設定を行っている場合でも、アクセス制限は上書きされてオープンプロキシとなる。
ProxyRequests On <Proxy *> Order deny,allow deny from all allow from 192.0.2.0/24 </Proxy>
HTTP Proxyサーバとして利用している例は多くはないだろうが、メンテナンスでは既存の環境に極力影響を与えないように行うべきだと思う。
推奨する設定変更
AjaxTermを無効化、AjaxTermに対するリバースプロキシ設定を削除することをおすすめする。
service ajaxterm stop chkconfig ajaxterm off rm /etc/httpd/conf.d/proxy_ajaxterm.conf service httpd restart
- 45 http://pipes.yahoo.com/pipes/pipe.info?_id=3eebace824bb60a10f13c841c2c64478
- 30 http://twitter.com/
- 7 http://oss.poyo.jp/centos-ja/planet/
- 6 http://d.hatena.ne.jp/
- 6 http://longurl.org
- 4 http://hootsuite.com/dashboard
- 4 http://twitter.com/kunihirotanaka/status/21764987865272321
- 4 http://twtr.jp/home
- 3 http://untiny.me/
- 3 http://www15.atwiki.jp/akiwada/pages/59.html
