Alias /webdav "/var/www/webdav/" <IfModule mod_dav_fs.c> <Location /webdav> DAV On Options Indexes AuthType Basic AuthName "Login WebDAV" AuthUserFile "/var/www/secure/webdav/.htpasswd" Require valid-user Order deny,allow Deny from all Allow from all </Location> DAVMinTimeout 600 # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule>
2013年3月9日土曜日
[Apache]WebDAV ディレクトリ下をブラウザから見られるようにする
webdav ディレクトリの設定にある Options に Indexes を追加する
[Apache]WebDAV 設定
- /etc/httpd/conf/httpd.conf で WebDAV モジュールが有効になっているか確認する
/etc/httpd/conf/httpd.confLoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module /modules/mod_dav_fs.so
- WebDAV の設定をする
/etc/httpd/conf/httpd.conf# # WebDAV module configuration section. # Alias /webdav "/var/www/webdav/" <IfModule mod_dav_fs.c> <Location /webdav> DAV On Options None AuthType Basic AuthName "Login WebDAV" AuthUserFile "/var/www/secure/webdav/.htpasswd" Require valid-user Order deny,allow Deny from all Allow from all </Location> DAVMinTimeout 600 # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule>
- ユーザ認証ファイルの作成
# mkdir /var/www/secure # mkdir /var/www/secure/webdav # htpasswd -c /var/www/secure/webdav/.htpasswd user
- WebDAV の動作確認には DAV Explorer (http://www.davexplorer.org/) を使うとよい
Windows の マイネットワーク → ネットワークプレースでは反応が鈍いので動作確認がし難い - /var/www/webdav の所有権を apache:apache に変更する
# chown apache:apache /var/www/webdav
- ファイルの書き込み時に SELinux が拒否してくる
SELinux prevented httpd reading and writing access to http files.
SELinux を強制的に無効にしている場合にはファイルの書き込みはできる。SELinux を無効にするには次のコマンドを実行# setenfoce 0
SELinux を有効にしたままで WebDAV ディレクトリにアクセスできるようにする方法は調査中
[Apache]Client 証明書要求
- conf.d/ssl.conf の以下の行に付いているコメントを外す
conf.d/ssl.confSSLVerifyClient require
- CA 登録されていない client 証明書でも受け入れる場合は次のようにする
conf.d/ssl.confSSLVerifyClient optional_no_ca
[Apache]SSL 設定
Cipher suite
使用する Cipher suite は /etc/httpd/conf.d/ssl.conf の以下の箇所で指定する。
/etc/httpd/conf.d/ssl.conf
SSLCipherSuite 確認
SSLCipherSuite に指定している引数は openssl コマンドで確認できる。
MD5 サポートなしに設定する
MD5 を使用しない設定にする場合は /etc/httpd/conf.d/ssl.conf で次のように指定する
/etc/httpd/conf.d/ssl.conf
使用する Cipher suite は /etc/httpd/conf.d/ssl.conf の以下の箇所で指定する。
/etc/httpd/conf.d/ssl.conf
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCipherSuite 確認
SSLCipherSuite に指定している引数は openssl コマンドで確認できる。
$ openssl ciphers -v 'ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW' DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA1 DHE-DSS-CAMELLIA256-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(256) Mac=SHA1 CAMELLIA256-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA1 DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1 DHE-DSS-CAMELLIA128-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(128) Mac=SHA1 CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1 DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1 AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 KRB5-DES-CBC3-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=MD5 KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1 EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 DHE-RSA-SEED-SHA SSLv3 Kx=DH Au=RSA Enc=SEED(128) Mac=SHA1 DHE-DSS-SEED-SHA SSLv3 Kx=DH Au=DSS Enc=SEED(128) Mac=SHA1 SEED-SHA SSLv3 Kx=RSA Au=RSA Enc=SEED(128) Mac=SHA1 KRB5-RC4-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=MD5 KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5 KRB5-DES-CBC-MD5 SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=MD5 KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1 EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1 EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1 DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1この場合 IE8 で接続すると Client Hello (IE8 → Apache) の Cipher Suites で以下のものが指定される
TLS_RSA_WITH_RC4_128_MD5 (0x0004) TLS_RSA_WITH_RC4_128_SHA (0x0005) TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a) TLS_RSA_WITH_WITH_DES_CBC_SHA (0x0009) TLS_RSA_EXPORT1024_WITH_RC4_56_SHA (0x0064) TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA (0x0002) TLS_RSA_EXPORT_WITH_RC4_40_MD5 (0x0003) TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 (0x0006) TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA (0x0013) TLS_DHE_DSS_WITH_DES_CBC_SHA (0x0012) TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA (0x0063)それに対する Apache の応答 Server Hello (Apache → IE8) の Cipher Suite は次のようになる
TLS_RSA_WITH_RC4_128_MD5 (0x0004)
MD5 サポートなしに設定する
MD5 を使用しない設定にする場合は /etc/httpd/conf.d/ssl.conf で次のように指定する
/etc/httpd/conf.d/ssl.conf
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!MD5:RC4+RSA:+HIGH:+MEDIUM:+LOW
$ openssl ciphers -v 'ALL:!ADH:!EXPORT:!SSLv2:!MD5:RC4+RSA:+HIGH:+MEDIUM:+LOW' DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(256) Mac=SHA1 DHE-DSS-CAMELLIA256-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(256) Mac=SHA1 CAMELLIA256-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(256) Mac=SHA1 DHE-RSA-CAMELLIA128-SHA SSLv3 Kx=DH Au=RSA Enc=Camellia(128) Mac=SHA1 DHE-DSS-CAMELLIA128-SHA SSLv3 Kx=DH Au=DSS Enc=Camellia(128) Mac=SHA1 CAMELLIA128-SHA SSLv3 Kx=RSA Au=RSA Enc=Camellia(128) Mac=SHA1 DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1 DHE-DSS-AES256-SHA SSLv3 Kx=DH Au=DSS Enc=AES(256) Mac=SHA1 AES256-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(256) Mac=SHA1 DHE-RSA-AES128-SHA SSLv3 Kx=DH Au=RSA Enc=AES(128) Mac=SHA1 DHE-DSS-AES128-SHA SSLv3 Kx=DH Au=DSS Enc=AES(128) Mac=SHA1 AES128-SHA SSLv3 Kx=RSA Au=RSA Enc=AES(128) Mac=SHA1 KRB5-DES-CBC3-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=3DES(168) Mac=SHA1 EDH-RSA-DES-CBC3-SHA SSLv3 Kx=DH Au=RSA Enc=3DES(168) Mac=SHA1 EDH-DSS-DES-CBC3-SHA SSLv3 Kx=DH Au=DSS Enc=3DES(168) Mac=SHA1 DES-CBC3-SHA SSLv3 Kx=RSA Au=RSA Enc=3DES(168) Mac=SHA1 DHE-RSA-SEED-SHA SSLv3 Kx=DH Au=RSA Enc=SEED(128) Mac=SHA1 DHE-DSS-SEED-SHA SSLv3 Kx=DH Au=DSS Enc=SEED(128) Mac=SHA1 SEED-SHA SSLv3 Kx=RSA Au=RSA Enc=SEED(128) Mac=SHA1 KRB5-RC4-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=RC4(128) Mac=SHA1 RC4-SHA SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=SHA1 KRB5-DES-CBC-SHA SSLv3 Kx=KRB5 Au=KRB5 Enc=DES(56) Mac=SHA1 EDH-RSA-DES-CBC-SHA SSLv3 Kx=DH Au=RSA Enc=DES(56) Mac=SHA1 EDH-DSS-DES-CBC-SHA SSLv3 Kx=DH Au=DSS Enc=DES(56) Mac=SHA1 DES-CBC-SHA SSLv3 Kx=RSA Au=RSA Enc=DES(56) Mac=SHA1これで IE8 から Apache に接続すると Server Hello (Apache → IE8) の Cipher Suite は次のようになる
TLS_RSA_WITH_RC4_128_SHA
[Apache]SSL インストール
- mod_ssl をインストールする
# yum install mod_ssl
- httpd 再起動
# /etc/init.d/httpd restart Stopping httpd: [ OK ] Starting httpd: [ OK ]
[Apache]CGI をユーザーディレクトリで実行可能にする (未完了)
- httpd.conf 編集
# user directory cgi ScriptAlias /~[ユーザー名]/cgi-bin/ "/home/[ユーザー名]/public_html/cgi-bin/" <Directory "/home/[ユーザー名]/public_html/cgi-bin"> AllowOverride None # Options None Options ExecCGI Order allow,deny Allow from all </Directory>
- Apache 再起動
- public_html/cgi-bin にスクリプトを置く
- テスト
Internal Server Error が発生する場合は、一旦 SELinux を無効にしてテストしてみる# setenfore 0
これで成功する場合は SELinux の設定を変更する必要あり - audit.log 確認
/var/log/audit/audit.log を確認すると SELinux がブロックしたことが分かるtype=AVC msg=audit(1288998630.696:106): avc: denied { execute } for pid=16405 comm="httpd" name="test00.cgi" dev=dm-2 ino=265416 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:httpd_user_content_t:s0 tclass=fileSELinux を有効にしたままユーザーディレクトリの cgi を実行する方法は調査中
[Apache]ユーザーページ公開
- /home/[ユーザー名]/ の下に public_html ディレクトリを作成する
- /home/[ユーザー名] に o+x のアクセス権を与える
$ chmod o+x /home/[ユーザー名]
- public_html ディレクトリも o+x になっているか確認する
- httpd.conf 編集
public_html で検索すると以下のようになっているのでdisabled をコメントアウトし、public_html を有効にする。<IfModule mod_userdir.c> UserDir disabled # UserDir public_html </IfMdule> - SELinux に homedir アクセスを許可する
この状態で localhost/~[ユーザー名] にアクセスすると SELinux がアクセスブロックする# setsebool -P httpd_enable_homedirs true
- public_html のタイプラベル情報を変更する
ls -Z でタイプラベル情報が表示できる$ ls -Z drwxrwxr-x. user user unconfined_u:object_r:user_home_t:s0 public_html
何もしていないファイル/ディレクトリはタイプが user_home_t になっている。ここで表示される情報は以下の通り- user: unconfined_u
- role: object_r
- type: user_home_t
# restorecon -R /home/[ユーザー名]/public_html/ $ ls -Z drwxrwxr-x. user user unconfined_u:object_r:httpd_user_content_t:s0 public_html
タイプが httpd_user_content_t に変更され、Apache がアクセスできるようになる
[Apache]インストール
Fedora にはすでにインストール済みなので yum install は不要
- 自動起動するように設定する
# chkconfig --list httpd httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off # chkconfig httpd on # chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
- 今回は手動で起動する
# /etc/init.d/httpd start httpd を起動中: [ OK ]
- /etc/httpd/conf/httped.conf で以下の設定を確認しておく
- Listen: ポート番号
- DocumentRoot: 公開するディレクトリ
- DirectoryIndex: / をアクセスした時に表示されるファイル
- Firewall で http, https のポートを開放する
登録:
投稿 (Atom)