Apache2.4/Tips
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
**Tips [#d0bb1979]
#contents
----
***RequireとOrder [#pddfd0ed]
Orderによるアクセス制限が非推奨となり、Requireを使う事に...
なお後方互換のためmod_access_compatでOrderディレクティブ...
<RequireAll>
くくったRequireの内容はAND結合
否定条件のみはダメ
<RequireAny>
くくったRequireの内容はOR結合
否定条件(RequireNone、Require not xxxx)は含められない
Require[All|Any|None]を省略した場合のデフォルト値
<RequireNone>
くくったRequireの内容はOR結合
条件にヒットした場合アクセス拒否
<RequireAll>のなかで使う
以下、比較参考。
全許可
Order Deny,Allow
Allow from all
↓
<RequireAny>(省略可。RequireAllでもよい)
Require all granted
</RequireAny>
全拒否
Order Allow,Deny
Deny from all
↓
<RequireAny>(省略可。RequireAllでもよい)
Require all denied
</RequireAny>
IPアドレスxxx.xxx.xxx.xxxのみ許可
Order Deny,Allow
Allow from xxx.xxx.xxx.xxx
↓
<RequireAny>(省略可。RequireAllでもよい)
Require ip xxx.xxx.xxx.xxx
</RequireAny>
IPアドレスyyy.yyy.yyy.yyyのみ拒否
Order Allow,Deny
Deny from yyy.yyy.yyy.yyy
↓
<RequireAll>
Require all granted
Require not ip yyy.yyy.yyy.yyy
</RequireAll>
または
<RequireAll>
Require all granted
<RequireNone>
Require ip yyy.yyy.yyy.yyy
</RequireNone>
</RequireAll>
SetEnvIf User-Agent "google" search
を拒否
Order Allow,Deny
Deny from env=search
↓
<RequireAll>
Require all granted
Require not env=search
</RequireAll>
または
<RequireAll>
Require all granted
<RequireNone>
Require env=search
</RequireNone>
</RequireAll>
ローカルIPアドレスのみGETとPOSTを許可
それ以外はGETのみ許可
<RequireAny>(省略可)
Require all granted
Require method GET
<RequireAll>
<RequireAny>
Require ip 192.168.
Require ip 172.16.
Require ip 10.
</RequireAny>
Require GET POST
</RequireAll>
</RequireAny>
など。
***RewriteLogとRewriteLogLevel [#o5b11...
結論から言うと、ない。~
[[2.4のマニュアル>http://httpd.apache.org/docs/2.4/mod/mo...
ググった先が2.2のマニュアルだったり、~
日本語のマニュアルだったりするとひょっとすると気がつかな...
まずmod_rewriteのロギングについて。
mod_rewriteはtrace1からtrace8までのログレベルで実行内容...
ログレベルにはLogLevelディレクティブを利用しています。
debugを指定してもなにもログに出ませんが、
trace8であればすべての実行内容をログに出しています。
(訳註:つまりcrit乃至debugでは出力されない。trace1以上を...
高いtraceログレベルはApacheを劇的に遅くします!
trace2以上はデバッグ時のみにしましょう!
例
LogLevel alert rewrite:trace3
RewriteLog
前のバージョンのmod_rewriteに慣れているかたは、間違いな...
この機能はモジュール単位のロギングに完全に置き換わりまし...
mod_rewriteのログを見たいときは
tail -f error_log|fgrep '[rewrite:'
と、grepしてください。
くらいのことが書いてある(多分。~
次にLogLevelについて。~
これも日本語マニュアルに遭遇すると2.4を読んでいても気がつ...
書式: LogLevel [module:]level [module:level] ...
というように、モジュールごとにLogLevelが変更出来る...
なので、上記の例のように書くと
LogLevel warn rewrite:trace3
全体のLogLevelはwarn、mod_rewriteはtrace3
という意味。これで
[rewrite:trace3] [pid 340] mod_rewrite.c(467):........
のように、プレフィクスのついたログがerror_logに出力される...
今までは~
RewriteLogLevel 4
をデバッグに使っていたが、trace3でいいようだ。~
また、LogLevelは
コンテキスト: server config, virtual host, directory
なのでディレクトリごとでも書けるが、~
出力先のerror_logはサーバ、バーチャルホストごとにしか書け...
従来のようにログを容易に分離出来ない(と思う。
「grepで追いかけろ」って言ってるぐらいだもんなぁ・・・(´・...
***nghttp2によるhttp2実装 [#za0eb8bc]
2.4.17からhttp2の実装が出来る。~
■必要なもの
・nghttp2 c library
https://nghttp2.org/
https://github.com/tatsuhiro-t/nghttp2
■確認方法
・HTTP/2 and SPDY indicator
・Chrome機能拡張と、Firefox Add-onがある
アドレスバーに雷マークが表示され、HTTP/2で接続すると...
SPDYだと緑、QUICは赤になる
・ブラウザのデベロッパーツールのプロトコルカラムがh2に...
・Apacheのログで"HTTP/2.0"になる
■作り方
nghttp2はconfigureだけでよし(クライアントプログラムが...
Apacheは--enable-http2を付ける
■設定方法
Protocols h2 http/1.1
をVirtualHostなどに追加する。
***OCSP Stapling [#cd90222b]
Online Certificate Status Protocol の Stapling 設定。~
毎度レスポンダに聞きに行かず、HTTPサーバー内にキャッシュ...
SSLUseStapling On
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors Off
SSLStaplingCache "shmcb:/usr/local/apache2/logs/ocsp(128...
メイン設定に記述でよいかと。
***続CipherSuites [#d326de64]
各種攻撃に対応しつつssllabsで良い点も取れてForwardSe...
実環境でもいけそうな妥協出来るhttps環境を考えてみる。
https://mozilla.github.io/server-side-tls/ssl-config-gene...
■基本
SSLInsecureRenegotiation Off
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression Off
■CiperSuites
#一行で
SSLCipherSuite TLS_AES_256_GCM_SHA384:
TLS_CHACHA20_POLY1305_SHA256:
TLS_AES_128_GCM_SHA256:
ECDHE-ECDSA-AES256-GCM-SHA384:
ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:
ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES256-SHA384:
ECDHE-RSA-AES256-SHA384:
ECDHE-ECDSA-AES128-GCM-SHA256:
ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES128-SHA256:
ECDHE-RSA-AES128-SHA256
■OCSP Stapling
SSLUseStapling On
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors Off
SSLStaplingCache "shmcb:/usr/local/apache2/logs/ocsp(128...
Apache2.4.37 + OpenSSL1.1.1a の時点では他に設定は不要っ...
■HSTS
VirtualHostなどで
Header always set Strict-Transport-Security "max-age=157...
***ApacheとOpenSSL [#sa70e982]
CipherSuitesで指定出来る文字列や、SSLOpenSSLCon...
https://www.openssl.org/docs/man1.0.2/ssl/SSL_CONF_cmd.ht...
https://www.openssl.org/docs/man1.0.2/apps/ciphers.html
終了行:
**Tips [#d0bb1979]
#contents
----
***RequireとOrder [#pddfd0ed]
Orderによるアクセス制限が非推奨となり、Requireを使う事に...
なお後方互換のためmod_access_compatでOrderディレクティブ...
<RequireAll>
くくったRequireの内容はAND結合
否定条件のみはダメ
<RequireAny>
くくったRequireの内容はOR結合
否定条件(RequireNone、Require not xxxx)は含められない
Require[All|Any|None]を省略した場合のデフォルト値
<RequireNone>
くくったRequireの内容はOR結合
条件にヒットした場合アクセス拒否
<RequireAll>のなかで使う
以下、比較参考。
全許可
Order Deny,Allow
Allow from all
↓
<RequireAny>(省略可。RequireAllでもよい)
Require all granted
</RequireAny>
全拒否
Order Allow,Deny
Deny from all
↓
<RequireAny>(省略可。RequireAllでもよい)
Require all denied
</RequireAny>
IPアドレスxxx.xxx.xxx.xxxのみ許可
Order Deny,Allow
Allow from xxx.xxx.xxx.xxx
↓
<RequireAny>(省略可。RequireAllでもよい)
Require ip xxx.xxx.xxx.xxx
</RequireAny>
IPアドレスyyy.yyy.yyy.yyyのみ拒否
Order Allow,Deny
Deny from yyy.yyy.yyy.yyy
↓
<RequireAll>
Require all granted
Require not ip yyy.yyy.yyy.yyy
</RequireAll>
または
<RequireAll>
Require all granted
<RequireNone>
Require ip yyy.yyy.yyy.yyy
</RequireNone>
</RequireAll>
SetEnvIf User-Agent "google" search
を拒否
Order Allow,Deny
Deny from env=search
↓
<RequireAll>
Require all granted
Require not env=search
</RequireAll>
または
<RequireAll>
Require all granted
<RequireNone>
Require env=search
</RequireNone>
</RequireAll>
ローカルIPアドレスのみGETとPOSTを許可
それ以外はGETのみ許可
<RequireAny>(省略可)
Require all granted
Require method GET
<RequireAll>
<RequireAny>
Require ip 192.168.
Require ip 172.16.
Require ip 10.
</RequireAny>
Require GET POST
</RequireAll>
</RequireAny>
など。
***RewriteLogとRewriteLogLevel [#o5b11...
結論から言うと、ない。~
[[2.4のマニュアル>http://httpd.apache.org/docs/2.4/mod/mo...
ググった先が2.2のマニュアルだったり、~
日本語のマニュアルだったりするとひょっとすると気がつかな...
まずmod_rewriteのロギングについて。
mod_rewriteはtrace1からtrace8までのログレベルで実行内容...
ログレベルにはLogLevelディレクティブを利用しています。
debugを指定してもなにもログに出ませんが、
trace8であればすべての実行内容をログに出しています。
(訳註:つまりcrit乃至debugでは出力されない。trace1以上を...
高いtraceログレベルはApacheを劇的に遅くします!
trace2以上はデバッグ時のみにしましょう!
例
LogLevel alert rewrite:trace3
RewriteLog
前のバージョンのmod_rewriteに慣れているかたは、間違いな...
この機能はモジュール単位のロギングに完全に置き換わりまし...
mod_rewriteのログを見たいときは
tail -f error_log|fgrep '[rewrite:'
と、grepしてください。
くらいのことが書いてある(多分。~
次にLogLevelについて。~
これも日本語マニュアルに遭遇すると2.4を読んでいても気がつ...
書式: LogLevel [module:]level [module:level] ...
というように、モジュールごとにLogLevelが変更出来る...
なので、上記の例のように書くと
LogLevel warn rewrite:trace3
全体のLogLevelはwarn、mod_rewriteはtrace3
という意味。これで
[rewrite:trace3] [pid 340] mod_rewrite.c(467):........
のように、プレフィクスのついたログがerror_logに出力される...
今までは~
RewriteLogLevel 4
をデバッグに使っていたが、trace3でいいようだ。~
また、LogLevelは
コンテキスト: server config, virtual host, directory
なのでディレクトリごとでも書けるが、~
出力先のerror_logはサーバ、バーチャルホストごとにしか書け...
従来のようにログを容易に分離出来ない(と思う。
「grepで追いかけろ」って言ってるぐらいだもんなぁ・・・(´・...
***nghttp2によるhttp2実装 [#za0eb8bc]
2.4.17からhttp2の実装が出来る。~
■必要なもの
・nghttp2 c library
https://nghttp2.org/
https://github.com/tatsuhiro-t/nghttp2
■確認方法
・HTTP/2 and SPDY indicator
・Chrome機能拡張と、Firefox Add-onがある
アドレスバーに雷マークが表示され、HTTP/2で接続すると...
SPDYだと緑、QUICは赤になる
・ブラウザのデベロッパーツールのプロトコルカラムがh2に...
・Apacheのログで"HTTP/2.0"になる
■作り方
nghttp2はconfigureだけでよし(クライアントプログラムが...
Apacheは--enable-http2を付ける
■設定方法
Protocols h2 http/1.1
をVirtualHostなどに追加する。
***OCSP Stapling [#cd90222b]
Online Certificate Status Protocol の Stapling 設定。~
毎度レスポンダに聞きに行かず、HTTPサーバー内にキャッシュ...
SSLUseStapling On
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors Off
SSLStaplingCache "shmcb:/usr/local/apache2/logs/ocsp(128...
メイン設定に記述でよいかと。
***続CipherSuites [#d326de64]
各種攻撃に対応しつつssllabsで良い点も取れてForwardSe...
実環境でもいけそうな妥協出来るhttps環境を考えてみる。
https://mozilla.github.io/server-side-tls/ssl-config-gene...
■基本
SSLInsecureRenegotiation Off
SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
SSLCompression Off
■CiperSuites
#一行で
SSLCipherSuite TLS_AES_256_GCM_SHA384:
TLS_CHACHA20_POLY1305_SHA256:
TLS_AES_128_GCM_SHA256:
ECDHE-ECDSA-AES256-GCM-SHA384:
ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:
ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES256-SHA384:
ECDHE-RSA-AES256-SHA384:
ECDHE-ECDSA-AES128-GCM-SHA256:
ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES128-SHA256:
ECDHE-RSA-AES128-SHA256
■OCSP Stapling
SSLUseStapling On
SSLStaplingResponderTimeout 5
SSLStaplingReturnResponderErrors Off
SSLStaplingCache "shmcb:/usr/local/apache2/logs/ocsp(128...
Apache2.4.37 + OpenSSL1.1.1a の時点では他に設定は不要っ...
■HSTS
VirtualHostなどで
Header always set Strict-Transport-Security "max-age=157...
***ApacheとOpenSSL [#sa70e982]
CipherSuitesで指定出来る文字列や、SSLOpenSSLCon...
https://www.openssl.org/docs/man1.0.2/ssl/SSL_CONF_cmd.ht...
https://www.openssl.org/docs/man1.0.2/apps/ciphers.html
ページ名: