□Apache+PHP(+SSL)でのセキュリティ対策
□Apache+PHP(+SSL)でのセキュリティ対策
いろいろあるのでまとめてみましたが、バージョン隠すとか当たり前になると、botはそんなの無視してより効率的な方法で突いてきますので、実効性には?です。
それよりも、パスワードを取られたりするマルウェアに感染しないように、添付ファイルは基本開かない、親しいor信用ある相手からのメールでも疑うようにしないとダメです。「添付ファイル付きメールがきましたけどあけても大丈夫ですか?」とわざわざ聞くくらいでなければ、ね。
あとはこういう情報、IPAとかでまとめているので、時々目を通すといいんじゃないかと思います。時代の流れでIPAのまとめも変わってきますので。
・httpd.conf
----------
#LoadModule ldap_module modules/mod_ldap.so
#LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
Alias /icons/ “/var/www/icons/”
<Directory “/var/www/icons”>
Options -Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory “/var/www/cgi-bin”>
AllowOverride None
Options -Indexes
Order allow,deny
Allow from all
</Directory>
# 最後に追加すればいい
TraceEnable Off
ServerTokens ProductOnly
ServerSignature Off
----------
※不要なモジュールを読み込まない(proxyを使っていないならproxy関連全て読まないようにする)
※iconsがそもそも要らないなら全部コメントアウトするか、mvしてしまう
※cgi-binがそもそも要らないなら全部コメントアウトするか、mvしてしまう
※デバッグ要求を拒否
※Apacheのバージョンが出なくなる
※他でも、インデックスを出したくないところで -Indexes した方がいいらしい
・/var/www/error/
mv /var/www/error/ /var/www/error-/
※http://[URL]/error/README などでアクセスされる可能性があるため
・cat > /etc/httpd/conf.d/access_denied.conf
----------
<FilesMatch “\.(cn?f|conf|inc|ini|tpl|log|[0-9]|exe|com|bat|sh|csh|tsh|bash|rc|lnk|scr|pif|eml|tpl|docx?|xlsx?|pptx?|vsd|[lm]db|~)$”>
Order Allow,Deny
Deny from All
</FilesMatch>
----------
※これらの拡張子のファイルにアクセスさせない…ので適時変更すること
・cat > /etc/httpd/conf.d/wp-login_denied.conf
----------
<FilesMatch “wp-login.php”>
Order deny,allow
deny from all
allow from .example.or.jp (アクセスを許可するホスト名 or ドメイン名)
allow from xxx.xxx.xxx.xxx (アクセスを許可するIPアドレス or ネットワーク)
allow from localhost
</FilesMatch>
----------
※WordPressの管理画面にアクセスできるホストやIPアドレスを制限する(ホスト名の逆引きを無効にしていてもホスト名で指定可能)
※.htaccessでもできる。
・php.ini
----------
expose_php = Off
session.cookie_httponly = 1
----------
※PHPのバージョンが出なくなる
※発行するcookieにhttponly属性を付与して、document.cookieで取得できなくする
Internet Explorer 6 SP1以降とか、最近のブラウザなら問題なし
・htpasswd
htpasswdでパスワードを生成するときには -m を忘れずに
※8文字以上のパスワードを有効にするため
□SSLも使う場合
・ssl.conf
----------
SSLHonorCipherOrder ON
SSLCipherSuite EECDH+HIGH:EDH+HIGH:HIGH:MEDIUM:+3DES:!ADH:!RC4:!MD5:!aNULL:!eNULL:!SSLv3:!SSLv2:!LOW:!EXP:!PSK:!SRP:!DSS:!KRB5
----------
※auはSSL3.0のみなので、!SSLv3するとアクセスすることが出来なくなる
・php.ini
----------
session.cookie_secure = 1
----------
※SSLな状態でのみCookieを食わす…ので、HTTP接続の時にはセッションIDが毎回変わるので注意
(何らかの方法で統一したセッションIDを設定してあげないといけない)
ここに書いてあることを鵜呑みで設定しないように!! 時代とともに設定は変わります。
ちゃんと意味を理解した上で設定してください。
(´Д`)ハァ…