強化されたCGIセキュリティと認証
強化されたCGIセキュリティと認証
イントロダクション
これはより強い認証と、CGIウェブインタフェースの周りで集中しているサーバセキュリティ の実現のための序論であることを意図します。
あなたの監視サーバとNagios環境のセキュリティを高める多くの方法があります。 これを、セキュリティへの全てのアプローチの終わりとしてみなすべきではありません。 代わりに、あなたがあなたのシステムのセキュリティをきびしくするのに使用できるテクニックのいくつかへの序論としてそれを考えてください。 いつものように、あなたはあなたの研究をして、利用可能な最も良いテクニックを使用するべきです。 あなたの監視サーバをあなたのネットワークで最も重要なサーバとして扱ってください。そうすればあなたは報いられます。
追加テクニック
Digest認証を使う
Digest認証を使うのは簡単です。 [href="http://httpd.apache.org/docs/2.2/programs/htdigest.html"|'htdigest'] ツールを使って新しいパスワードファイルを作成し、Nagios用のApacheの設定(一般に/etc/httpd/conf.d/nagios.conf) を修正すればよいのです。
[href="http://httpd.apache.org/docs/2.2/programs/htdigest.html"|'htdigest']ツールを 使って新しいパスワードファイルを作成してください。 [href="http://httpd.apache.org/docs/2.2/programs/htpasswd.html"|'htpasswd'] ツールを よく知っているのなら、htdigestではレルム引数を指定する必要があるという違いに気付くでしょう。 レルムはApacheの設定の'AuthName'ディレクティブの値に相当します。
htdigest -c /usr/local/nagios/etc/.digest_pw "Nagios Access" nagiosadmin
次に、Nagios用のApacheの設定ファイル(通常 /etc/httpd/conf.d/nagios.conf) の例をあげます。
## BEGIN APACHE CONFIG SNIPPET - NAGIOS.CONF ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthType Digest AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/.digest_pw Require valid-user </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> Options None AllowOverride None Order allow,deny Allow from all AuthType Digest AuthName "Nagios Access" AuthUserFile /usr/local/nagios/etc/.digest_pw Require valid-user </Directory> ## END APACHE CONFIG SNIPPETS
そして、Apacheを再起動して新しい設定を反映させてください。
/etc/init.d/httpd restart
強制的にTLS/SSLを使わせる
必ずApacheとOpenSSLをインストールしてください。デフォルトで [href="http://httpd.apache.org/docs/2.2/mod/mod_ssl.html"|mod_ssl]を使用するように 設定する必要があり、もし設定方法がわからなければ [href="http://httpd.apache.org/docs/2.0/ssl"|TLS/SSL Encryption Documentation] が役に立つかもしれません。
次に、Nagiosのウェブインターフェース(https://your.domain/nagios)を見て、TLS/SSLが有効になっている ことを確認してください。HTTPSの使用を強制して、HTTPでのアクセスをブロックできれば次のステップに進むことが できます。もし設定につまずいているのなら [href="http://httpd.apache.org/docs/2.0/ssl"|TLS/SSL Encryption Documentation]を見るか ググって(googleで検索すること)ください。
次に、Nagios用のApacheの設定ファイル(通常 /etc/httpd/conf.d/nagios.conf)の 'SSLRequireSSL'ディレクティブに'sbin'と'share'ディレクトリを追加してください。
## BEGIN APACHE CONFIG SNIPPET - NAGIOS.CONF ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> ... SSLRequireSSL ... </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> ... SSLRequireSSL ... </Directory> ## END APACHE CONFIG SNIPPETS
新しい設定を反映させるためにApacheを再起動してください。
/etc/init.d/httpd restart
IPサブネットでの制限
以下はApacheの [href="http://httpd.apache.org/docs/2.2/howto/access.html"|アクセス制御] を使って、特定のIPアドレス、IPアドレスの範囲、IPサブネットでNagiosのCGIに制限を かける例です。
以下はNagios用のApacheの設定ファイル(通常 /etc/httpd/conf.d/nagios.conf)に 'Allow'、'Deny'そして'Order'ディレクティブを追加する例です。
## BEGIN APACHE CONFIG SNIPPET - NAGIOS.CONF ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin" <Directory "/usr/local/nagios/sbin"> ... AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 10.0.0.25 # Allow single IP addresses Allow from 10.0.0.0/255.255.255.0 # Allow network/netmask pair Allow from 10.0.0.0/24 # Allow network/nnn CIDR spec ... </Directory> Alias /nagios "/usr/local/nagios/share" <Directory "/usr/local/nagios/share"> ... AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.1 10.0.0.25 # Allow single IP addresses Allow from 10.0.0.0/255.255.255.0 # Allow network/netmask pair Allow from 10.0.0.0/24 # Allow network/nnn CIDR spec ... </Directory> ## END APACHE CONFIG SNIPPET
重要
- Digest認証はプレーンテキストのIDとパスワードを扱わない。
- Digest認証はBasic認証と比べて一般的に使われていない。
- TLS/SSLは本来 "[href="http://ja.wikipedia.org/wiki/%E4%B8%AD%E9%96%93%E8%80%85%E6%94%BB%E6%92%83"|中間者攻撃]" のためにある。例えば攻撃者がサーバとクライアントの間でフィッシング攻撃、ISPモニタリング、 もしくは社内FW証明書破棄をでできるなら中間者攻撃に対して脆弱です。 だから証明書確認を研究してください!
- Apacheのアクセス制御はHTTP/HTTPSのみに有効である。 強固なシステムにするべく広範囲にわたり制限をかけたいなら [href="http://www.netfilter.org/projects/iptables/index.html"|IPtables] を使うべし。
- もっとも重要なのは、常日頃セキュリティの動向について探求する事です! "[href="http://www.grc.com/securitynow.htm"|Security Now!]" などがよいですよ。
</UL> - Digest認証はBasic認証と比べて一般的に使われていない。