「強化されたCGIセキュリティと認証」の版間の差分
21行目: | 21行目: | ||
もしあなたが[http://nagios.sourceforge.net/docs/3_0/quickstart.html クイックスタートガイド] | もしあなたが[http://nagios.sourceforge.net/docs/3_0/quickstart.html クイックスタートガイド] | ||
に沿って設定を進めたなら、Apacheの | に沿って設定を進めたなら、Apacheの | ||
− | [ | + | [http://httpd.apache.org/docs/2.2/mod/mod_auth_basic.html BASIC認証] |
を使っているでしょう。 | を使っているでしょう。 | ||
Basic認証はIDとパスワードを「プレーンテキスト」で送ります。 | Basic認証はIDとパスワードを「プレーンテキスト」で送ります。 | ||
29行目: | 29行目: | ||
<LI><STRONG>全てのWebアクセスでTLS/SSLを強制する</STRONG> | <LI><STRONG>全てのWebアクセスでTLS/SSLを強制する</STRONG> | ||
Apacheは | Apacheは | ||
− | [ | + | [http://httpd.apache.org/docs/2.2/mod/mod_ssl.html mod_ssl] |
モジュールによって | モジュールによって | ||
− | [ | + | [http://en.wikipedia.org/wiki/Transport_Layer_Security TLS/SSL] |
を提供します。 | を提供します。 | ||
TLS/SSLは公開鍵/秘密鍵による暗号を使ってクライアントとサーバ間で安全なトンネルを張ることにより、 | TLS/SSLは公開鍵/秘密鍵による暗号を使ってクライアントとサーバ間で安全なトンネルを張ることにより、 | ||
45行目: | 45行目: | ||
<P>Digest認証を使うのは簡単です。 | <P>Digest認証を使うのは簡単です。 | ||
− | [ | + | [http://httpd.apache.org/docs/2.2/programs/htdigest.html 'htdigest'] |
ツールを使って新しいパスワードファイルを作成し、Nagios用のApacheの設定(一般に/etc/httpd/conf.d/nagios.conf) | ツールを使って新しいパスワードファイルを作成し、Nagios用のApacheの設定(一般に/etc/httpd/conf.d/nagios.conf) | ||
を修正すればよいのです。 | を修正すればよいのです。 | ||
</P> | </P> | ||
<P> | <P> | ||
− | [ | + | [http://httpd.apache.org/docs/2.2/programs/htdigest.html 'htdigest']ツールを |
使って新しいパスワードファイルを作成してください。 | 使って新しいパスワードファイルを作成してください。 | ||
− | [ | + | [http://httpd.apache.org/docs/2.2/programs/htpasswd.html 'htpasswd'] ツールを |
よく知っているのなら、htdigestではレルム引数を指定する必要があるという違いに気付くでしょう。 | よく知っているのなら、htdigestではレルム引数を指定する必要があるという違いに気付くでしょう。 | ||
レルムはApacheの設定の'AuthName'ディレクティブの値に相当します。 | レルムはApacheの設定の'AuthName'ディレクティブの値に相当します。 | ||
126行目: | 126行目: | ||
<STRONG><U>強制的にTLS/SSLを使わせる</U></STRONG> | <STRONG><U>強制的にTLS/SSLを使わせる</U></STRONG> | ||
<P>必ずApacheとOpenSSLをインストールしてください。デフォルトで | <P>必ずApacheとOpenSSLをインストールしてください。デフォルトで | ||
− | [ | + | [http://httpd.apache.org/docs/2.2/mod/mod_ssl.html mod_ssl]を使用するように |
設定する必要があり、もし設定方法がわからなければ | 設定する必要があり、もし設定方法がわからなければ | ||
− | [ | + | [http://httpd.apache.org/docs/2.0/ssl TLS/SSL Encryption Documentation] |
が役に立つかもしれません。 | が役に立つかもしれません。 | ||
</P> | </P> | ||
135行目: | 135行目: | ||
ことを確認してください。HTTPSの使用を強制して、HTTPでのアクセスをブロックできれば次のステップに進むことが | ことを確認してください。HTTPSの使用を強制して、HTTPでのアクセスをブロックできれば次のステップに進むことが | ||
できます。もし設定につまずいているのなら | できます。もし設定につまずいているのなら | ||
− | [ | + | [http://httpd.apache.org/docs/2.0/ssl TLS/SSL Encryption Documentation]を見るか |
ググって(googleで検索すること)ください。 | ググって(googleで検索すること)ください。 | ||
</P> | </P> | ||
184行目: | 184行目: | ||
<P>以下はApacheの | <P>以下はApacheの | ||
− | [ | + | [http://httpd.apache.org/docs/2.2/howto/access.html アクセス制御] |
を使って、特定のIPアドレス、IPアドレスの範囲、IPサブネットでNagiosのCGIに制限を | を使って、特定のIPアドレス、IPアドレスの範囲、IPサブネットでNagiosのCGIに制限を | ||
かける例です。 | かける例です。 | ||
252行目: | 252行目: | ||
<BR><BR> | <BR><BR> | ||
<LI><STRONG>TLS/SSLは本来 | <LI><STRONG>TLS/SSLは本来 | ||
− | "[ | + | "[http://ja.wikipedia.org/wiki/%E4%B8%AD%E9%96%93%E8%80%85%E6%94%BB%E6%92%83 中間者攻撃]" |
のためにある。</STRONG>例えば攻撃者がサーバとクライアントの間でフィッシング攻撃、ISPモニタリング、 | のためにある。</STRONG>例えば攻撃者がサーバとクライアントの間でフィッシング攻撃、ISPモニタリング、 | ||
もしくは社内FW証明書破棄をでできるなら中間者攻撃に対して脆弱です。 | もしくは社内FW証明書破棄をでできるなら中間者攻撃に対して脆弱です。 | ||
259行目: | 259行目: | ||
<LI><STRONG>Apacheのアクセス制御はHTTP/HTTPSのみに有効である。</STRONG> | <LI><STRONG>Apacheのアクセス制御はHTTP/HTTPSのみに有効である。</STRONG> | ||
強固なシステムにするべく広範囲にわたり制限をかけたいなら | 強固なシステムにするべく広範囲にわたり制限をかけたいなら | ||
− | [ | + | [http://www.netfilter.org/projects/iptables/index.html IPtables] |
を使うべし。 | を使うべし。 | ||
<BR><BR> | <BR><BR> | ||
<LI><STRONG>もっとも重要なのは、常日頃セキュリティの動向について探求する事です! | <LI><STRONG>もっとも重要なのは、常日頃セキュリティの動向について探求する事です! | ||
− | "[ | + | "[http://www.grc.com/securitynow.htm Security Now!]" |
などがよいですよ。 | などがよいですよ。 | ||
<BR><BR> | <BR><BR> | ||
</UL> | </UL> |
2010年8月8日 (日) 17:20時点における最新版
強化されたCGIセキュリティと認証
イントロダクション
これはより強い認証と、CGIウェブインタフェースの周りで集中しているサーバセキュリティ の実現のための序論であることを意図します。
あなたの監視サーバとNagios環境のセキュリティを高める多くの方法があります。 これを、セキュリティへの全てのアプローチの終わりとしてみなすべきではありません。 代わりに、あなたがあなたのシステムのセキュリティをきびしくするのに使用できるテクニックのいくつかへの序論としてそれを考えてください。 いつものように、あなたはあなたの研究をして、利用可能な最も良いテクニックを使用するべきです。 あなたの監視サーバをあなたのネットワークで最も重要なサーバとして扱ってください。そうすればあなたは報いられます。
追加テクニック
Digest認証を使う
Digest認証を使うのは簡単です。 'htdigest' ツールを使って新しいパスワードファイルを作成し、Nagios用のApacheの設定(一般に/etc/httpd/conf.d/nagios.conf) を修正すればよいのです。
'htdigest'ツールを 使って新しいパスワードファイルを作成してください。 '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をインストールしてください。デフォルトで mod_sslを使用するように 設定する必要があり、もし設定方法がわからなければ TLS/SSL Encryption Documentation が役に立つかもしれません。
次に、Nagiosのウェブインターフェース(https://your.domain/nagios)を見て、TLS/SSLが有効になっている ことを確認してください。HTTPSの使用を強制して、HTTPでのアクセスをブロックできれば次のステップに進むことが できます。もし設定につまずいているのなら 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の アクセス制御 を使って、特定の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は本来 "中間者攻撃" のためにある。例えば攻撃者がサーバとクライアントの間でフィッシング攻撃、ISPモニタリング、 もしくは社内FW証明書破棄をでできるなら中間者攻撃に対して脆弱です。 だから証明書確認を研究してください!
- Apacheのアクセス制御はHTTP/HTTPSのみに有効である。 強固なシステムにするべく広範囲にわたり制限をかけたいなら IPtables を使うべし。
- もっとも重要なのは、常日頃セキュリティの動向について探求する事です! "Security Now!" などがよいですよ。
</UL> - Digest認証はBasic認証と比べて一般的に使われていない。