Apache
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* [[Apache]] [#b48162ac]
#contents
** インストール [#c67233b1]
http://httpd.apache.org/download.cgiよりダウンロード ssl...
Digest認証をしたい場合は--enable-auth_digestをつける。圧...
WebDevを使いたい場合は、--enable-dav=yes --with-berkeley-...
URLを書き換えたい場合は、--enable-rewrite ModSecurityを使...
./configure --helpを参考に
tar zxvf httpd-2.0.52.tar.gz
cd httpd-2.0.52
./configure --prefix=/usr/local/apache2 --enable-ssl --e...
--enable-auth_digest --enable-deflate
--enable-dav=yes --with-berkeley-db=/usr/local/BerkeleyD...
--enable-proxy --enable-rewrite --enable-unique-id
--with-ldap --enable-ldap --enable-auth-ldap --with-incl...
か、2.2は
--with-ldap --enable-ldap --enable-authnz-ldap --with-in...
全部いきたい場合は
--enable-module=all --enable-mods-shared=all
make
make install
再度インストールする場合は、apacheは止めましょう。ちなみ...
Undefined symbols:
"_apr_socket_sendfile", referenced from:
_sendfile_it_all in libmain.a(core_filters.o)
ってleopardのときエラーになったんですが、次やるとうまくい...
終了後
ldd /usr/local/apache2/bin/httpd
で使用しているライブラリをチェックしておきます。
オプションの--enable-deflateをつけた場合は、エラーがでま...
groupadd httpd
useradd httpd -g httpd -d /dev/null -s /sbin/nologin
で作成し、httpd.confのuser,groupをhttpdにします。
ついでにaprも入れておきます。http://apr.apache.org/downlo...
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1...
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-u...
tar xzvf apr-1.2.12.tar.gz
tar xzvf apr-util-1.2.12.tar.gz
cd apr-1.2.12
./configure
make
make instal
cd ../apr-util-1.2.12
./configure --with-apr=/usr/local/apr
make
make install
** 2.2 [#h6b660c6]
-mod_sslモジュールのRFC 2817対応~
ブラウザが対応していないらしいので、まだ先になるらしいの...
-ロードバランサ~
[[Apache 2.2でWebサイトをパフォーマンスアップ!>http://ww...
[[mod_proxy_balancer + mod_disk_cache on Apache 2.2.3>htt...
** 起動・停止 [#p73da9dc]
APACHE_HOME/binで実行
./apachectl start
停止は
./apacehctl stop
再起動は
./apachectl restart
** リバースproxy [#dd00c3ee]
http://www.sixapart.jp/movabletype/developers/naoya/archi...
** 独自のディレクトリ作成 [#sc9f48ed]
APACHE_HOME/conf/httpd.confに追加します。
Alias /test /usr/local/test
<Directory /usr/local/test>
Options All MultiViews
AllowOverride All
</Directory>
ちなみに特定のURLにディレクティブを設定したい場合は、Loca...
またcgiを動かしたい場合は、/usr/local/testに.htaccessを作り
Options +ExecCGI +MultiViews
を追加します。
ちなみに、
<Directory /usr/local/test>
Options All 対象となるフォルダのオプション
AllowOverride None .htaccessで別の指定を許可するかどうか
Order allow,deny 許可と不許可の評価の順番
Allow from all 許可の範囲 Allow from 192.168.0とか...
.co.jpとか 複数の場合はスペースで a...
</Directory>
で、optionsの設定は、
All MultiViewsを除くすべてのオプションが有効
None すべて無効
ExecCGI CGIスクリプトの実行を許可
FollowSymLinks シンボリックリンクへアクセス許可
Includes サーバサイドのインクルード許可
IncludesNoExec サーバサイドのインクルード許可するがコマ...
Indexes ディレクトリ一覧を表示
SSLだけ許可したい場合は、
SSLRequireSSL
** 承認 [#f7988cb2]
-Basic承認~
.htaccessファイルを作成し、
AuthType Basic <--Basic認証
AuthUserFile /etc/test.conf <--IDとパスワードが設定され...
AuthName test <--ダイアログの名前
require valid-user <--AuthUserFileのファイルにあればOK
その中でも制限したい場合は、valid-user cat,birdであ...
Satisfy any
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
最後はリターンを入れないようにしてください。
Satisfy anyは、「ホスト制限を通過する」あるいは「パスワー...
/usr/local/apache2/bin/htpasswd -bc test.conf admin passwd
この-cは新しく作成します。-bはパスワード含んでいるという...
参考 こちらよりAuthUserFileが作成できます。http://www.ch...
-Digest承認~
ではDigestの設定をみていきましょう。Basic 認証は平文なの...
htdigest -c passwdfile authname username
あとは.htaccessです。
AuthDigestFile /passwdfile <-AuthUserFileではない。
AuthName authname <-htdigestと同じにしておく
AuthType Digest
Require valid-user
動かしてみると、なんとログに
Digest: uri mismatch
とでてます。調べているとどうもIE6の問題のような... test.c...
http://issues.apache.org/bugzilla/show_bug.cgi?id=27758~
2.0.52のソースをみているとどうもpatchはあたっているようで...
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
を追加するといけました。
-MySQL承認~
つ次はMySQLを使った認証です。これはまた便利に使えそうです...
apxs -c -L/usr/local/mysql/lib/mysql -I/usr/local/mysql/...
-lmysqlclient -lm -lz mod_auth_mysql.c
この-L,-Iはmysqlの環境を確認してください。またapxsはwhich...
apxs -i mod_auth_mysql.la
コンパイルがうまくいっているとmod_auth_mysql.laができてい...
LoadModule mysql_auth_module modules/mod_auth_mysql.so
ではapacheの再起動です。
apachectl restart
次にMySQLに承認用のDBとテーブルをつくっていきましょう。DB...
create database webauth;
GRANT SELECT ON webauth.* to webauth@localhost identifie...
use webauth
create table auth_user (
name varchar(50) not null,
pass varchar(50) not null,
active varchar(1) not null,
primary key (name)
);
後はデータを適当にインサートしておきます。では.htaccessを...
AuthName "mysql auth" :タイトル
AuthType Basic :Basic承認
require valid-user
AuthMySQLHost localhost :MySQLのホスト
AuthMySQLDB webauth :MySQLのDB
AuthMySQLUser webauth :MySQLにログインするユーザ
AuthMySQLPassword yourpasswd :MySQLにログインするパスワ...
AuthMySQLUserTable auth_user :承認用のテーブル
AuthMySQLNameField name :MySQLの名前のフィールド
AuthMySQLPasswordField pass :MySQLのPasswordのフィールド
AuthMySQLCryptedPasswords Off :未調査
#AuthMySQLKeepAlive Off :未調査
#AuthMySQLAuthoritative On :未調査
#AuthMySQLNoPasswd Off :未調査
AuthMySQLUserCondition "active=1"
AuthMySQLUserConditionはおもしろいです。SQLにこの条件がつ...
参考:[[Apacheによるアクセス制限>http://info.odic.ne.jp/s...
**mod_rewrite [#hb8a3ca5]
ディレクトリを移動したい場合、そのディレクトリに.htaccess...
RewriteEngine on
RewriteBase /hoge/
RewriteRule ^(.*)$ /hogehoge/$1 [R=301,L]
また/hogeでも移動させたい場合は、ルートに
RewriteEngine on
RewriteRule /hoge$ /hogehoge/index.html [R=301,L]
クエリはRewriteRuleでは置換してくれないので、
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^aaa=(.*)$
RewriteRule ^hoge/hoge1.php /hoge/hoge2/hoge3.php?bbb=%1...
参考:~
http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html~
http://japache.infoscience.co.jp/rewriteguide/~
** mod_deflate [#h731979e]
[[mod_deflateによるコンテンツの圧縮転送>http://www.atmark...
**mod_authnz_ldap [#c85c5416]
ldap認証です。httpd.confに
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn-rep
AuthType Basic
AuthName test
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://localhost/ou=sales,o=example,c=jp?...
require valid-user
</Location>
とか。2.0と2.2でちょっと違いますね。上記のサンプルはwebda...
2.0で.htaccessに書いた場合
AuthType Basic
AuthLDAPUrl ldap://localhost/ou=People,dc=my-domain,dc=c...
AuthName test
require valid-user
[[ApacheのLDAP認証>http://sy2920.s151.xrea.com/web/auth-l...
[[Apacheで作るファイルサーバ(LDAP認証編)>http://www.atm...
[[mod_authnz_ldap>https://cvs.apache.jp/svn/httpd-docs/2....
[[そろそろLDAPにしてみないか?>http://gihyo.jp/admin/seri...
** CGI実行 [#o68740a5]
大きくは2通り httpd.confに
ScriptAlias /cgi-bin/ /webroot/cgi-bin/
もしくは.htaccessに
SetHandler cgi-script or AddHandler cgi-script .cgi .pl
Options +ExecCGI
とする。AddHandlerについては拡張子を指定する場合で、SetHa...
メール送るサンプル
#!/usr/bin/perl
$sendmail = '/usr/sbin/sendmail';
$from = 'from@hoge.jp';
$to = 'to@hoge.jp';
$subject = 'test';
$msg = <<"_DATA_";
message
_DATA_
# sendmail
open(SDML,"| $sendmail -t -i") || die 'sendmail error';
# mailhead
print SDML "From: $from\n";
print SDML "To: $to\n";
print SDML "Subject: $subject\n";
print SDML "Content-Transfer-Encoding: 7bit\n";
print SDML "Content-Type: text/plain;\n\n";
# mail
print SDML "$msg";
# end
close(SDML);
** FastCGI [#vc1b398e]
Rubyを動かしたいので、インストールしてみました。
wget http://www.fastcgi.com/dist/fcgi.tar.gz
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
make install
ldconfig
このfcgiはThe Development Kitなので、いらないような気もし...
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
tar xzvf mod_fastcgi-2.4.2.tar.gz
cd mod_fastcgi-2.4.2
READMEを読んで、
For information on installing mod_fastcgi with Apache 2....
とあるので、INSTALL.AP2を読みます。
cp Makefile.AP2 Makefile
make
make install
すると/usr/local/apache2/modules/にmod_fastcgi.soが出来て...
LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
</IfModule>
を付け加えて、再起動です。
FastCGI: access for server (uid -1, gid -1) failed: read...
FastCGI: can't create dynamic directory "/tmp/fcgi_ipc/d...
こんなエラーが出る場合は、
chown -R httpd:httpd fcgi_ipc
chmod -R 777 fcgi_ipc
として権限をつけておいてやるか、
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
</IfModule>
を、
User httpd
Group httpd
と定義してある下に書いてやります。
** ログ [#tf11dc3c]
インストールしたら、ログの設定は変更しておきましょう。
APACHE_HOME/conf/httpd.confで
#CustomLog /usr/local/apache/logs/access_log common
コメントし、
CustomLog /usr/local/apache/logs/access_log combined
を生かします。
** ワームのログをはずす [#i6fb60bf]
APACHE_HOME/conf/httpd.confで
#画像ファイル,CSSはログをとらない
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)$" nolog
#ローカルIPからのはログはとらない
SetEnvIf Remote_Addr 192.168.100. nolog
#wormのログは別ログへ
SetEnvIf Request_URI "^/_mem_bin/" worm nolog
SetEnvIf Request_URI "^/_vti_bin/" worm nolog
SetEnvIf Request_URI "^/c/" worm nolog
SetEnvIf Request_URI "^/d/" worm nolog
SetEnvIf Request_URI "^/msadc/" worm nolog
SetEnvIf Request_URI "^/MSADC/" worm nolog
SetEnvIf Request_URI "^/scripts/" worm nolog
SetEnvIf Request_URI "^/default.ida" worm nolog
SetEnvIf Request_URI "root\.exe" worm nolog
SetEnvIf Request_URI "cmd\.exe" worm nolog
SetEnvIf Request_URI "NULL\.IDA" worm nolog
CustomLog logs/access_log combined env=!nolog
CustomLog logs/worm_log combined env=worm
ついでにSEARCHで始まるやたら長いアクセスも除外します。414...
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%...
を
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\"...
に変更しておきましょう。
**日本語が化ける [#b9b68415]
%%#AddDefaultCharset ISO-8859-1%%~
%%AddDefaultCharset none%%~
%%またLanguagePriorityにjaをせっていして日本語の優先度を...
AddDefaultCharset Off
noneなんて指定なかったんですね。なぜこんなことを覚えてし...
#AddDefaultCharset ISO-8859-1
でもいいです。これでも化けるページがありました。
<meta http-equiv="Content-Type" content="text/html; char...
と設定してあるのに。調べると、<title>が<meta>より上にきて...
http://web-sniffer.net/などでHTTP Response Headerを確認し...
http://httpd.apache.org/docs-2.0/mod/core.html#adddefault...
**VirtualHostの設定 [#n3c550be]
httpd.confに
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.j2se.org
ServerAlias j2se.org
DocumentRoot H:\webroot1
<Directory "H:\webroot1">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
CustomLog "H:\webroot1\logs\access.log" combined
ErrorLog "H:\webroot1\logs\error.log"
</VirtualHost>
<VirtualHost *:80>
ServerName www.hidekazu.info
ServerAlias hidekazu.info
DocumentRoot H:\webroot2
<Directory "H:\webroot2">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
CustomLog "H:\webroot2\logs\access.log" combined
ErrorLog "H:\webroot2\logs\error.log"
</VirtualHost>
としてやると、www.j2se.orgとwww.hidekazu.infoの2つ出来上...
この場合は、表示されます。つまりwww.j2se.orgにない場合は...
見せたくない場合は、server.xmlの<Hostで始まっているタグで...
<host name="hidekazu.dhs1.sst.ne.jp" ....
とします。次に、Apacheと連携しているということは、workers...
[uri:hidekazu.dhs1.sst.ne.jp/home/*]
と変更してやります。するとwww.j2se.orgからはhomeは見えな...
ServerAlias hidekazu.infoとしていますが、この設定がない場...
みえてしまいますので、エリアスを設定しています。
またVirtualHostが増えていくと管理がやりにくくなりますので...
mkdir vhosts
として、VirtualHost用のディレクトリを作成します。
その中に適当にVirtualHostごとにファイルを作成します。上の...
Include vhosts/*.conf
を設定しておきます。するとそのvhostsにあるファイルを読み...
httpd -t -D DUMP_VHOSTS
で確認してください。
[[Apache の設定 - 1つのホストで複数のhttp/httpsサーバを運...
** SSL [#a7b4ac4d]
インストールされてない場合は、http://www.openssl.org/sour...
openssl md5 * > rand.dat
openssl genrsa -rand rand.dat -des3 1024 > server.key
[[SSL]]のCSR参照
次に、CSRを作ります。CSRとは、サイト証明書を発行するため...
openssl req -new -x509 -days 365 -key ssl.key/server.key...
(openssl req -new -key ssl.key/server.key -out myserver....
Country Name (2 letter code) [GB]:JP<リターン>
State or Province Name (full name) [Berkshire]:Osaka
Locality Name (eg, city) [Newbury]:Osaka...
Organization Name (eg, company) [My Company Ltd...
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's...
Email Address []:test@test.com
-days 証明書の有効期限を設定
承認局を使わず自分で承認する場合は、このファイルをssl.crt...
他局で承認してもらう場合はmyserver.crtを送りましょう。
です。ではapacheを立ち上げましょう。
apachectl startssl
ここでEnter pass phrase:と聞かれますので、秘密鍵でいれた...
またこのパスワード聞かれると困る方は(自動起動で)
openssl rsa -in server.key -out server.key
で作成してください。またinit.dはdaemon /usr/local/apache2...
-ベリサリン(高い。ただしメジャー)で
openssl md5 * >rand.dat
openssl genrsa -rand rand.dat -des3 1024 > server.key
cd ..
openssl req -new -key ssl.key/server.key -out myserver.crt
-Toritonで(安い。3年で2万くらい)
契約ができると3つのファイルが送られてくる。
GTECyberTrustRoot.crt
ComodoSecurityServicesCA.crt
www_hogehoge_jp.crt
www_hogehoge_jp.crtを
conf/ss.crtにserver.crtで保存
GTECyberTrustRoot.crtを
conf/sslrootに保存
ComodoSecurityServicesCA.crtを
conf/sslrootに保存
保存すると後は、ssl.confで
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/serve...
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/se...
SSLCACertificatePath /usr/local/apache2/conf/sslroot
SSLCACertificateFile /usr/local/apache2/conf/sslroot/COM...
というように設定をしてやる。ただ安さと引き替えに携帯電話...
参考:[[携帯電話とSSLルート証明書>http://triaez.kaisei.or...
http://ash.jp/sec/openssl_ca.htm~
http://www.stackasterisk.jp/tech/systemConstruction/apach...
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/702apac...
http://www.atmarkit.co.jp/fnetwork/rensai/pki03/pki01.html~
http://www.atmarkit.co.jp/flinux/rensai/apache12/apache12...
http://www.atmarkit.co.jp/fnetwork/rensai/pki01/pki01.html~
http://www.bitlink.co.jp/server/httpd_conf.htm~
** クライアント証明書 [#z3df9bb5]
[[SSL]]で方法は記述していますが、phpのプログラムを動かす...
ページを表示できません
とIEで表示されました。FireFoxでは
Method Not Allowed
と表示されるときがあります。ログを見てみると、
[error] SSL Re-negotiation in conjunction with POST meth...
とありますので、SSLOptions +OptRenegotiateをつけてトライ...
apacheのバグらしく、2.2では直っているとのこと。使っている...
http://issues.apache.org/bugzilla/show_bug.cgi?id=12355を...
一応2.0.54用ですが、下に添付してあります。ssl_engine_io.c...
参考 http://framework.g.hatena.ne.jp/tukiichi/comment?dat...
** 拒否 [#jc5bff99]
ドメインで拒否する場合
deny from .hoge.com .hoge2.com
IPで拒否する場合
deny from 100.200. … 100.200.で始まるアドレスを拒否する
うまくいかないときはAllowOverride Noneになっていなか確か...
** SSI [#c06b8764]
.htaccessに
Options +IncludesNoExec
AddType text/html .shtml
AddHandler server-parsed .shtml
として、インクルードしたいファイルに
<!--#include file="test2.htm"-->
と記述します。IncludesNoExecをIncludes にすることも可能で...
** 帯域制限 [#eb2364ee]
mod_bandwidthは1.3で2.0には対応していないらしいので、bwsh...
[[既存のトラフィック制御モジュール>http://www.netnice.org...
[[ Apache で特定のコンテンツへのアクセスに対して帯域制限...
** ab [#bea05272]
Apache BenchというApacheのベンチマークツールです。たとえば
ab -n 100 -c 10 -w http://localhost/index.html > kekka.h...
とすると100回のリクエストを10の同時接続でテストします。 -...
http://www.atmarkit.co.jp/flinux/rensai/apache15/apache15...
** セキュリティ [#d80fe74b]
とりあえずこちらを一読[[Apacheの安全を確保するための10の...
***Apacheのバージョン情報を隠す [#lf564624]
ServerSignature Off
http://www.ne.jp/asahi/tokyo/shin/linux/apache/apache01.h...
***情報の抑止 [#c413a88d]
ServerTokens Prod
デフォルトはFullなので、Server: Apache/2.0.41 (Unix) PHP/...
http://httpd.apache.org/docs/2.2/ja/mod/core.html#servert...
もっと消したい場合は、[[バナー抑制!>http://www.kozupon.c...
***mod_security [#d0e791f5]
Web Application Firewall (WAF)というもので、これはapache...
マニュアルです。http://hp.vector.co.jp/authors/VA027424/m...
http://www.modsecurity.org/download/index.htmlよりダウン...
wget http://www.modsecurity.org/download/modsecurity-1.8...
tar xzvf modsecurity-1.8.7.tar.gz
cd modsecurity-1.8.7
1.9.4がでてますが、同じようにします。
ここにINSTALLファイルがありますので、一読しておきましょう。
cd apache2
apache1系の場合はcd apache1です。
/usr/local/apache2/bin/apxs -cia mod_security.c
するとhttpd.confに
LoadModule security_module modules/mod_security.so
が設定されていると思います。~
2.1.1もでてますね。あれ、だいぶんちがうなー まず、mod_un...
オプションでlibxml2がいるみたいので、入れておきます。http...
ftp://xmlsoft.org/libxml2/libxml2-2.6.28.tar.gz
tar xzvf libxml2-2.6.28.tar.gz
cd libxml2-2.6.28
./configure --with-zlib --with-html --with-xpath --with-...
make
make install
ではmodsecurity-apache_2.1.1をインストールしましょう。
wget http://www.modsecurity.org/download/modsecurity-apa...
tar xzvf modsecurity-apache_2.1.1.tar.gz
次にapache2ディレクトリにある、Makefileを編集します。
#top_dir = /apps/apache22
top_dir = /usr/local/apache2
INCLUDES=-I/usr/include/libxml2
ではインストールです。
make
make install
すると/usr/local/apache2/modulesにmod_security2.soができ...
LoadModule security2_module modules/mod_security2.so
を追加します。apacheを再起動したら、
Cannot load /usr/local/apache2/modules/mod_security2.so ...
と怒られましたので、
LoadFile /usr/lib/libxml2.so
を追加しました。
ではルールをhttp://www.modsecurity.org/download/modsecuri...
mkdir /usr/local/apache2/conf/modsec
cd /usr/local/apache2/conf/modsec
tar xzvf modsecurity-core-rules_2.1-1.4.tar.gz
とし、httpd.confに
<IfModule security2_module>
Include conf/modsec/*.conf
</IfModule>
を付け加えておきます。http://www.modsecurity.org/document...
ではhttpd.confに設定します。1系
<IfModule mod_security.c>
SecFilterEngine On <-フィルターエンジンをON
SecFilterScanPOST On <- POSTの解析をON
SecFilterDefaultAction "deny,log,status:406" <-デフォル...
SecFilter /etc/passwd <-index.html?/etc/passwdとかリク...
# script tag
SecFilter "<[[:space:]]*script.*>"
SecFilter "<[[:space:]]*style.*>"
SecFilter "<[[:space:]]*link.*>"
SecFilter "<[[:space:]]*body[[:space:]]*>"
# suspected protocol
SecFilter "javascript:"
SecFilter "vbscript:"
SecFilter "about:"
# call script
SecFilter "expression\("
SecFilter "&{.*};"
# event
SecFilter "onError"
SecFilter "onUnload"
SecFilter "onBlur"
SecFilter "onFocus"
SecFilter "onClick"
SecFilter "onMouseOver"
SecFilter "onMouseOut"
SecFilter "onSubmit"
SecFilter "onReset"
SecFilter "onChange"
SecFilter "onSelect"
SecFilter "onAbort"
#
SecFilterSelective REQUEST_METHOD "!(GET|POST|HEAD)" <...
SecAuditEngine RelevantOnly <-RelevantOnlyでルールと一...
SecAuditLog /usr/local/apache2/logs/modsec.log <-ログ
</IfModule>
一部単語の最後の文字が全角になってますが、これはそのまま...
またhttp://www.modsecurity.org/download/modsecurity-rules...
解凍した*.confを
apache2/conf/modsec/
にでもコピーして
Include conf/modsec/*.conf
としておけば、logsディレクトリに
modsec_audit.log
が出力されます。ただし
SecFilterSignatureAction "log,pass,msg:'Command executio...
のようにpassになってますので、denyにでも変えておきます。
もっと厳しくするには、~
http://www.gotroot.com/tiki-index.php?page=mod_security+r...
よりダウンロードしましょう。
ブラックリストのルールがあります。~
http://www.atmarkit.co.jp/fsecurity/rensai/webhole11/webh...
http://www.atmarkit.co.jp/fsecurity/rensai/webhole12/webh...
http://www.softek.co.jp/Sec/mod_security3.html~
http://hp.vector.co.jp/authors/VA027424/mod_security/mod_...
***DOS対策 [#n53a347e]
mod_evasiveをhttp://www.zdziarski.com/projects/mod_evasiv...
wget http://www.zdziarski.com/projects/mod_evasive/mod_e...
tar xzvf mod_evasive_1.10.1.tar.gz
cd mod_evasive
/usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c
するとhttpd.confに
LoadModule evasive20_module modules/mod_evasive20.so
が追加されていました。ではディレクティブです。
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
またオプションとして、
Optionally you can also add the following directives:
DOSEmailNotify you@yourdomain.com
DOSSystemCommand "su - someuser -c '/sbin/... %s ....
DOSLogDir "/var/lock/mod_evasive"
も指定出来るそうです。このあたりの細かい内容はREADMEに記...
同ページで、1秒間に(DOSPageInterval)に2回以上(DOSPageCoun...
もしくは同サイトで1秒間に(DOSSiteInterval)に50回以上(DOSS...
10秒(DOSBlockingPeriod)ブロックすると言ったような設定にな...
http://d.hatena.ne.jp/stanaka/20070204/1170553603~
http://itpro.nikkeibp.co.jp/article/COLUMN/20070510/27052...
***libwww-perl [#b75bb1d2]
ログを見ていると、スパムでユーザエージェントにlibwww-perl...
はじいちゃいましょう。
SetEnvIf User-Agent "^libwww" deny_ua
Order allow,deny
Allow from all
Deny from env=deny_ua
ついでにLWP::Simpleも止める場合は、
SetEnvIf User-Agent "^LWP::Simple" deny_ua
を追加しておきます。
[[Googleにもアクセス拒否され、スパム送信源と化した「libww...
***ロボット [#la897ed4]
ロボットに巡回してほしくない場合に、サイトのトップにrobot...
User-agent: *
Disallow: /secret/
ただ無視する検索エンジンもあります。
参考~
[[robots.txt とは?>http://www.tohoho-web.com/wwwxx079.ht...
[[検索エンジンロボットを制御する>http://tech.bayashi.net/...
** TIPS [#mc1782a4]
***インストールされているモジュールを調べる [#zbfa82f4]
httpd -l
あと
httpd -M
とか。
***httpd: Could not determine the server's fully qualifie...
httpd.confのservernameを直しましょう。
***Indexリストで特定のファイルを非表示にしたい。 [#m1ce30...
IndexIgnore *.hoge
***ヘッダ、フッタをすべてのページにつけたい [#ea0d63a8]
SSI以外にmod_layoutが使えるかもしれません。ちょっと使って...
***File 'NONEXISTENT/charsets/?.conf' not found [#s4315fcc]
エラーログにエラーが出まくってました。どうもphpをインスト...
http://www.hamusuta.net/mame/viewkizione.php?kizino=04022...
***プロセスIDの指定 [#a2f9b38b]
PidFile logs/httpd.pid
***起動中のhttpdに設定を反映させる~ [#j4901458]
apachectl graceful
***別のURLに転送させたい [#ecf63579]
Redirectを使います。
http://www.itmedia.co.jp/help/tips/linux/l0397.html
***HTTPメソッドで制限をかけたい [#b97162b5]
GETとPOSTを制限したい場合は.htaccessで
<Limit GET POST>
order deny,allow
deny from all
allow from 192.168.1
</Limit>
とか
***追加でモジュールを入れたい [#i4a13a64]
たとえばmod_rewrite
cd httpd-2.0.54
mkdir work
cp -ip modules/mappers/mod_rewrite.c work/
cp -ip modules/mappers/mod_rewrite.h work/
cd work
/usr/local/apache2/bin/apxs -c mod_rewrite.c
/usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite...
mod_proxy
cd httpd-2.0.54
mkdir work
cp -ip modules//proxy/mod_proxy.c work/
cp -ip modules//proxy/mod_proxy.h work/
cd work
/usr/local/apache2/bin/apxs -c mod_proxy.c
/usr/local/apache2/bin/apxs -i -a -n proxy mod_proxy.la
ん?動かしたらエラーがでたぞ。
[warn] proxy: No protocol handler was valid for the URL ...
これだけではだめなのか。では
/usr/local/apache2/bin/apxs -cia mod_proxy.c proxy_util.c
/usr/local/apache2/bin/apxs -cia proxy_connect.c
/usr/local/apache2/bin/apxs -cia proxy_http.c
で動きました。素直に--enable-proxyをつけてコンパイルしま...
***IPアドレス制限とユーザー認証 [#i6aaf6c3]
Satisfyを使います。
[[IPアドレス制限とユーザー認証の組み合わせ>http://www.adm...
*** RDF(Resource Description Framework)を開きたい [#de089...
AddType application/xml .rdf
AddType text/xml;charset=UTF-8 .rdf
** リンク [#g8e23819]
http://httpd.apache.org/~
[[Apache HTTP サーバ バージョン 2.0 ドキュメント>http://h...
[[Apache2 に OpenSSL を適用するための覚え>http://www.rinz...
[[Apache バーチャルホスト説明書>http://httpd.apache.org/d...
[[パソコンおやじ>http://acorn.zive.net/~oyaji/]]~
[[Apacheのインストール>http://www.ryouto.jp/linux/linux_3...
[[Studying HTTP>http://www.studyinghttp.net/]] HTTPの勉強...
[[Apache 2.0 + mod_proxy によるリバース・プロキシの構築>h...
[[Apache入門>http://www.adminweb.jp/apache/]]~
[[mod_concat で複数ファイルを連結して配信する>http://d.ha...
[[.htaccessで使える16の技>http://phpspot.org/blog/archive...
[[web開発者なら知っておきたい HTTPステータスコード>http:/...
** 参考書籍 [#l571994e]
[[Apache2設定&管理 逆引きリファレンス>http://www.amazon.c...
このアドバンスリファレンスシリーズは辞書代わりにつかうの...
** カテゴリ [#u4a36522]
[[:web]]~
** コメント [#j27d099e]
-http://ore.dyndns.org/web/RTFM.html -- [[通りすがりの人]...
--#comment
終了行:
* [[Apache]] [#b48162ac]
#contents
** インストール [#c67233b1]
http://httpd.apache.org/download.cgiよりダウンロード ssl...
Digest認証をしたい場合は--enable-auth_digestをつける。圧...
WebDevを使いたい場合は、--enable-dav=yes --with-berkeley-...
URLを書き換えたい場合は、--enable-rewrite ModSecurityを使...
./configure --helpを参考に
tar zxvf httpd-2.0.52.tar.gz
cd httpd-2.0.52
./configure --prefix=/usr/local/apache2 --enable-ssl --e...
--enable-auth_digest --enable-deflate
--enable-dav=yes --with-berkeley-db=/usr/local/BerkeleyD...
--enable-proxy --enable-rewrite --enable-unique-id
--with-ldap --enable-ldap --enable-auth-ldap --with-incl...
か、2.2は
--with-ldap --enable-ldap --enable-authnz-ldap --with-in...
全部いきたい場合は
--enable-module=all --enable-mods-shared=all
make
make install
再度インストールする場合は、apacheは止めましょう。ちなみ...
Undefined symbols:
"_apr_socket_sendfile", referenced from:
_sendfile_it_all in libmain.a(core_filters.o)
ってleopardのときエラーになったんですが、次やるとうまくい...
終了後
ldd /usr/local/apache2/bin/httpd
で使用しているライブラリをチェックしておきます。
オプションの--enable-deflateをつけた場合は、エラーがでま...
groupadd httpd
useradd httpd -g httpd -d /dev/null -s /sbin/nologin
で作成し、httpd.confのuser,groupをhttpdにします。
ついでにaprも入れておきます。http://apr.apache.org/downlo...
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1...
wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-u...
tar xzvf apr-1.2.12.tar.gz
tar xzvf apr-util-1.2.12.tar.gz
cd apr-1.2.12
./configure
make
make instal
cd ../apr-util-1.2.12
./configure --with-apr=/usr/local/apr
make
make install
** 2.2 [#h6b660c6]
-mod_sslモジュールのRFC 2817対応~
ブラウザが対応していないらしいので、まだ先になるらしいの...
-ロードバランサ~
[[Apache 2.2でWebサイトをパフォーマンスアップ!>http://ww...
[[mod_proxy_balancer + mod_disk_cache on Apache 2.2.3>htt...
** 起動・停止 [#p73da9dc]
APACHE_HOME/binで実行
./apachectl start
停止は
./apacehctl stop
再起動は
./apachectl restart
** リバースproxy [#dd00c3ee]
http://www.sixapart.jp/movabletype/developers/naoya/archi...
** 独自のディレクトリ作成 [#sc9f48ed]
APACHE_HOME/conf/httpd.confに追加します。
Alias /test /usr/local/test
<Directory /usr/local/test>
Options All MultiViews
AllowOverride All
</Directory>
ちなみに特定のURLにディレクティブを設定したい場合は、Loca...
またcgiを動かしたい場合は、/usr/local/testに.htaccessを作り
Options +ExecCGI +MultiViews
を追加します。
ちなみに、
<Directory /usr/local/test>
Options All 対象となるフォルダのオプション
AllowOverride None .htaccessで別の指定を許可するかどうか
Order allow,deny 許可と不許可の評価の順番
Allow from all 許可の範囲 Allow from 192.168.0とか...
.co.jpとか 複数の場合はスペースで a...
</Directory>
で、optionsの設定は、
All MultiViewsを除くすべてのオプションが有効
None すべて無効
ExecCGI CGIスクリプトの実行を許可
FollowSymLinks シンボリックリンクへアクセス許可
Includes サーバサイドのインクルード許可
IncludesNoExec サーバサイドのインクルード許可するがコマ...
Indexes ディレクトリ一覧を表示
SSLだけ許可したい場合は、
SSLRequireSSL
** 承認 [#f7988cb2]
-Basic承認~
.htaccessファイルを作成し、
AuthType Basic <--Basic認証
AuthUserFile /etc/test.conf <--IDとパスワードが設定され...
AuthName test <--ダイアログの名前
require valid-user <--AuthUserFileのファイルにあればOK
その中でも制限したい場合は、valid-user cat,birdであ...
Satisfy any
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>
最後はリターンを入れないようにしてください。
Satisfy anyは、「ホスト制限を通過する」あるいは「パスワー...
/usr/local/apache2/bin/htpasswd -bc test.conf admin passwd
この-cは新しく作成します。-bはパスワード含んでいるという...
参考 こちらよりAuthUserFileが作成できます。http://www.ch...
-Digest承認~
ではDigestの設定をみていきましょう。Basic 認証は平文なの...
htdigest -c passwdfile authname username
あとは.htaccessです。
AuthDigestFile /passwdfile <-AuthUserFileではない。
AuthName authname <-htdigestと同じにしておく
AuthType Digest
Require valid-user
動かしてみると、なんとログに
Digest: uri mismatch
とでてます。調べているとどうもIE6の問題のような... test.c...
http://issues.apache.org/bugzilla/show_bug.cgi?id=27758~
2.0.52のソースをみているとどうもpatchはあたっているようで...
BrowserMatch "MSIE" AuthDigestEnableQueryStringHack=On
を追加するといけました。
-MySQL承認~
つ次はMySQLを使った認証です。これはまた便利に使えそうです...
apxs -c -L/usr/local/mysql/lib/mysql -I/usr/local/mysql/...
-lmysqlclient -lm -lz mod_auth_mysql.c
この-L,-Iはmysqlの環境を確認してください。またapxsはwhich...
apxs -i mod_auth_mysql.la
コンパイルがうまくいっているとmod_auth_mysql.laができてい...
LoadModule mysql_auth_module modules/mod_auth_mysql.so
ではapacheの再起動です。
apachectl restart
次にMySQLに承認用のDBとテーブルをつくっていきましょう。DB...
create database webauth;
GRANT SELECT ON webauth.* to webauth@localhost identifie...
use webauth
create table auth_user (
name varchar(50) not null,
pass varchar(50) not null,
active varchar(1) not null,
primary key (name)
);
後はデータを適当にインサートしておきます。では.htaccessを...
AuthName "mysql auth" :タイトル
AuthType Basic :Basic承認
require valid-user
AuthMySQLHost localhost :MySQLのホスト
AuthMySQLDB webauth :MySQLのDB
AuthMySQLUser webauth :MySQLにログインするユーザ
AuthMySQLPassword yourpasswd :MySQLにログインするパスワ...
AuthMySQLUserTable auth_user :承認用のテーブル
AuthMySQLNameField name :MySQLの名前のフィールド
AuthMySQLPasswordField pass :MySQLのPasswordのフィールド
AuthMySQLCryptedPasswords Off :未調査
#AuthMySQLKeepAlive Off :未調査
#AuthMySQLAuthoritative On :未調査
#AuthMySQLNoPasswd Off :未調査
AuthMySQLUserCondition "active=1"
AuthMySQLUserConditionはおもしろいです。SQLにこの条件がつ...
参考:[[Apacheによるアクセス制限>http://info.odic.ne.jp/s...
**mod_rewrite [#hb8a3ca5]
ディレクトリを移動したい場合、そのディレクトリに.htaccess...
RewriteEngine on
RewriteBase /hoge/
RewriteRule ^(.*)$ /hogehoge/$1 [R=301,L]
また/hogeでも移動させたい場合は、ルートに
RewriteEngine on
RewriteRule /hoge$ /hogehoge/index.html [R=301,L]
クエリはRewriteRuleでは置換してくれないので、
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^aaa=(.*)$
RewriteRule ^hoge/hoge1.php /hoge/hoge2/hoge3.php?bbb=%1...
参考:~
http://tech.bayashi.net/svr/doc/apache/mod_rewrite.html~
http://japache.infoscience.co.jp/rewriteguide/~
** mod_deflate [#h731979e]
[[mod_deflateによるコンテンツの圧縮転送>http://www.atmark...
**mod_authnz_ldap [#c85c5416]
ldap認証です。httpd.confに
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn-rep
AuthType Basic
AuthName test
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL ldap://localhost/ou=sales,o=example,c=jp?...
require valid-user
</Location>
とか。2.0と2.2でちょっと違いますね。上記のサンプルはwebda...
2.0で.htaccessに書いた場合
AuthType Basic
AuthLDAPUrl ldap://localhost/ou=People,dc=my-domain,dc=c...
AuthName test
require valid-user
[[ApacheのLDAP認証>http://sy2920.s151.xrea.com/web/auth-l...
[[Apacheで作るファイルサーバ(LDAP認証編)>http://www.atm...
[[mod_authnz_ldap>https://cvs.apache.jp/svn/httpd-docs/2....
[[そろそろLDAPにしてみないか?>http://gihyo.jp/admin/seri...
** CGI実行 [#o68740a5]
大きくは2通り httpd.confに
ScriptAlias /cgi-bin/ /webroot/cgi-bin/
もしくは.htaccessに
SetHandler cgi-script or AddHandler cgi-script .cgi .pl
Options +ExecCGI
とする。AddHandlerについては拡張子を指定する場合で、SetHa...
メール送るサンプル
#!/usr/bin/perl
$sendmail = '/usr/sbin/sendmail';
$from = 'from@hoge.jp';
$to = 'to@hoge.jp';
$subject = 'test';
$msg = <<"_DATA_";
message
_DATA_
# sendmail
open(SDML,"| $sendmail -t -i") || die 'sendmail error';
# mailhead
print SDML "From: $from\n";
print SDML "To: $to\n";
print SDML "Subject: $subject\n";
print SDML "Content-Transfer-Encoding: 7bit\n";
print SDML "Content-Type: text/plain;\n\n";
# mail
print SDML "$msg";
# end
close(SDML);
** FastCGI [#vc1b398e]
Rubyを動かしたいので、インストールしてみました。
wget http://www.fastcgi.com/dist/fcgi.tar.gz
tar xzvf fcgi-2.4.0.tar.gz
cd fcgi-2.4.0
./configure
make
make install
ldconfig
このfcgiはThe Development Kitなので、いらないような気もし...
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.2.tar.gz
tar xzvf mod_fastcgi-2.4.2.tar.gz
cd mod_fastcgi-2.4.2
READMEを読んで、
For information on installing mod_fastcgi with Apache 2....
とあるので、INSTALL.AP2を読みます。
cp Makefile.AP2 Makefile
make
make install
すると/usr/local/apache2/modules/にmod_fastcgi.soが出来て...
LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
</IfModule>
を付け加えて、再起動です。
FastCGI: access for server (uid -1, gid -1) failed: read...
FastCGI: can't create dynamic directory "/tmp/fcgi_ipc/d...
こんなエラーが出る場合は、
chown -R httpd:httpd fcgi_ipc
chmod -R 777 fcgi_ipc
として権限をつけておいてやるか、
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fcgi_ipc/
AddHandler fastcgi-script .fcgi
</IfModule>
を、
User httpd
Group httpd
と定義してある下に書いてやります。
** ログ [#tf11dc3c]
インストールしたら、ログの設定は変更しておきましょう。
APACHE_HOME/conf/httpd.confで
#CustomLog /usr/local/apache/logs/access_log common
コメントし、
CustomLog /usr/local/apache/logs/access_log combined
を生かします。
** ワームのログをはずす [#i6fb60bf]
APACHE_HOME/conf/httpd.confで
#画像ファイル,CSSはログをとらない
SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)$" nolog
#ローカルIPからのはログはとらない
SetEnvIf Remote_Addr 192.168.100. nolog
#wormのログは別ログへ
SetEnvIf Request_URI "^/_mem_bin/" worm nolog
SetEnvIf Request_URI "^/_vti_bin/" worm nolog
SetEnvIf Request_URI "^/c/" worm nolog
SetEnvIf Request_URI "^/d/" worm nolog
SetEnvIf Request_URI "^/msadc/" worm nolog
SetEnvIf Request_URI "^/MSADC/" worm nolog
SetEnvIf Request_URI "^/scripts/" worm nolog
SetEnvIf Request_URI "^/default.ida" worm nolog
SetEnvIf Request_URI "root\.exe" worm nolog
SetEnvIf Request_URI "cmd\.exe" worm nolog
SetEnvIf Request_URI "NULL\.IDA" worm nolog
CustomLog logs/access_log combined env=!nolog
CustomLog logs/worm_log combined env=worm
ついでにSEARCHで始まるやたら長いアクセスも除外します。414...
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%...
を
LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\"...
に変更しておきましょう。
**日本語が化ける [#b9b68415]
%%#AddDefaultCharset ISO-8859-1%%~
%%AddDefaultCharset none%%~
%%またLanguagePriorityにjaをせっていして日本語の優先度を...
AddDefaultCharset Off
noneなんて指定なかったんですね。なぜこんなことを覚えてし...
#AddDefaultCharset ISO-8859-1
でもいいです。これでも化けるページがありました。
<meta http-equiv="Content-Type" content="text/html; char...
と設定してあるのに。調べると、<title>が<meta>より上にきて...
http://web-sniffer.net/などでHTTP Response Headerを確認し...
http://httpd.apache.org/docs-2.0/mod/core.html#adddefault...
**VirtualHostの設定 [#n3c550be]
httpd.confに
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.j2se.org
ServerAlias j2se.org
DocumentRoot H:\webroot1
<Directory "H:\webroot1">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
CustomLog "H:\webroot1\logs\access.log" combined
ErrorLog "H:\webroot1\logs\error.log"
</VirtualHost>
<VirtualHost *:80>
ServerName www.hidekazu.info
ServerAlias hidekazu.info
DocumentRoot H:\webroot2
<Directory "H:\webroot2">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
CustomLog "H:\webroot2\logs\access.log" combined
ErrorLog "H:\webroot2\logs\error.log"
</VirtualHost>
としてやると、www.j2se.orgとwww.hidekazu.infoの2つ出来上...
この場合は、表示されます。つまりwww.j2se.orgにない場合は...
見せたくない場合は、server.xmlの<Hostで始まっているタグで...
<host name="hidekazu.dhs1.sst.ne.jp" ....
とします。次に、Apacheと連携しているということは、workers...
[uri:hidekazu.dhs1.sst.ne.jp/home/*]
と変更してやります。するとwww.j2se.orgからはhomeは見えな...
ServerAlias hidekazu.infoとしていますが、この設定がない場...
みえてしまいますので、エリアスを設定しています。
またVirtualHostが増えていくと管理がやりにくくなりますので...
mkdir vhosts
として、VirtualHost用のディレクトリを作成します。
その中に適当にVirtualHostごとにファイルを作成します。上の...
Include vhosts/*.conf
を設定しておきます。するとそのvhostsにあるファイルを読み...
httpd -t -D DUMP_VHOSTS
で確認してください。
[[Apache の設定 - 1つのホストで複数のhttp/httpsサーバを運...
** SSL [#a7b4ac4d]
インストールされてない場合は、http://www.openssl.org/sour...
openssl md5 * > rand.dat
openssl genrsa -rand rand.dat -des3 1024 > server.key
[[SSL]]のCSR参照
次に、CSRを作ります。CSRとは、サイト証明書を発行するため...
openssl req -new -x509 -days 365 -key ssl.key/server.key...
(openssl req -new -key ssl.key/server.key -out myserver....
Country Name (2 letter code) [GB]:JP<リターン>
State or Province Name (full name) [Berkshire]:Osaka
Locality Name (eg, city) [Newbury]:Osaka...
Organization Name (eg, company) [My Company Ltd...
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's...
Email Address []:test@test.com
-days 証明書の有効期限を設定
承認局を使わず自分で承認する場合は、このファイルをssl.crt...
他局で承認してもらう場合はmyserver.crtを送りましょう。
です。ではapacheを立ち上げましょう。
apachectl startssl
ここでEnter pass phrase:と聞かれますので、秘密鍵でいれた...
またこのパスワード聞かれると困る方は(自動起動で)
openssl rsa -in server.key -out server.key
で作成してください。またinit.dはdaemon /usr/local/apache2...
-ベリサリン(高い。ただしメジャー)で
openssl md5 * >rand.dat
openssl genrsa -rand rand.dat -des3 1024 > server.key
cd ..
openssl req -new -key ssl.key/server.key -out myserver.crt
-Toritonで(安い。3年で2万くらい)
契約ができると3つのファイルが送られてくる。
GTECyberTrustRoot.crt
ComodoSecurityServicesCA.crt
www_hogehoge_jp.crt
www_hogehoge_jp.crtを
conf/ss.crtにserver.crtで保存
GTECyberTrustRoot.crtを
conf/sslrootに保存
ComodoSecurityServicesCA.crtを
conf/sslrootに保存
保存すると後は、ssl.confで
SSLCertificateFile /usr/local/apache2/conf/ssl.crt/serve...
SSLCertificateKeyFile /usr/local/apache2/conf/ssl.key/se...
SSLCACertificatePath /usr/local/apache2/conf/sslroot
SSLCACertificateFile /usr/local/apache2/conf/sslroot/COM...
というように設定をしてやる。ただ安さと引き替えに携帯電話...
参考:[[携帯電話とSSLルート証明書>http://triaez.kaisei.or...
http://ash.jp/sec/openssl_ca.htm~
http://www.stackasterisk.jp/tech/systemConstruction/apach...
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/702apac...
http://www.atmarkit.co.jp/fnetwork/rensai/pki03/pki01.html~
http://www.atmarkit.co.jp/flinux/rensai/apache12/apache12...
http://www.atmarkit.co.jp/fnetwork/rensai/pki01/pki01.html~
http://www.bitlink.co.jp/server/httpd_conf.htm~
** クライアント証明書 [#z3df9bb5]
[[SSL]]で方法は記述していますが、phpのプログラムを動かす...
ページを表示できません
とIEで表示されました。FireFoxでは
Method Not Allowed
と表示されるときがあります。ログを見てみると、
[error] SSL Re-negotiation in conjunction with POST meth...
とありますので、SSLOptions +OptRenegotiateをつけてトライ...
apacheのバグらしく、2.2では直っているとのこと。使っている...
http://issues.apache.org/bugzilla/show_bug.cgi?id=12355を...
一応2.0.54用ですが、下に添付してあります。ssl_engine_io.c...
参考 http://framework.g.hatena.ne.jp/tukiichi/comment?dat...
** 拒否 [#jc5bff99]
ドメインで拒否する場合
deny from .hoge.com .hoge2.com
IPで拒否する場合
deny from 100.200. … 100.200.で始まるアドレスを拒否する
うまくいかないときはAllowOverride Noneになっていなか確か...
** SSI [#c06b8764]
.htaccessに
Options +IncludesNoExec
AddType text/html .shtml
AddHandler server-parsed .shtml
として、インクルードしたいファイルに
<!--#include file="test2.htm"-->
と記述します。IncludesNoExecをIncludes にすることも可能で...
** 帯域制限 [#eb2364ee]
mod_bandwidthは1.3で2.0には対応していないらしいので、bwsh...
[[既存のトラフィック制御モジュール>http://www.netnice.org...
[[ Apache で特定のコンテンツへのアクセスに対して帯域制限...
** ab [#bea05272]
Apache BenchというApacheのベンチマークツールです。たとえば
ab -n 100 -c 10 -w http://localhost/index.html > kekka.h...
とすると100回のリクエストを10の同時接続でテストします。 -...
http://www.atmarkit.co.jp/flinux/rensai/apache15/apache15...
** セキュリティ [#d80fe74b]
とりあえずこちらを一読[[Apacheの安全を確保するための10の...
***Apacheのバージョン情報を隠す [#lf564624]
ServerSignature Off
http://www.ne.jp/asahi/tokyo/shin/linux/apache/apache01.h...
***情報の抑止 [#c413a88d]
ServerTokens Prod
デフォルトはFullなので、Server: Apache/2.0.41 (Unix) PHP/...
http://httpd.apache.org/docs/2.2/ja/mod/core.html#servert...
もっと消したい場合は、[[バナー抑制!>http://www.kozupon.c...
***mod_security [#d0e791f5]
Web Application Firewall (WAF)というもので、これはapache...
マニュアルです。http://hp.vector.co.jp/authors/VA027424/m...
http://www.modsecurity.org/download/index.htmlよりダウン...
wget http://www.modsecurity.org/download/modsecurity-1.8...
tar xzvf modsecurity-1.8.7.tar.gz
cd modsecurity-1.8.7
1.9.4がでてますが、同じようにします。
ここにINSTALLファイルがありますので、一読しておきましょう。
cd apache2
apache1系の場合はcd apache1です。
/usr/local/apache2/bin/apxs -cia mod_security.c
するとhttpd.confに
LoadModule security_module modules/mod_security.so
が設定されていると思います。~
2.1.1もでてますね。あれ、だいぶんちがうなー まず、mod_un...
オプションでlibxml2がいるみたいので、入れておきます。http...
ftp://xmlsoft.org/libxml2/libxml2-2.6.28.tar.gz
tar xzvf libxml2-2.6.28.tar.gz
cd libxml2-2.6.28
./configure --with-zlib --with-html --with-xpath --with-...
make
make install
ではmodsecurity-apache_2.1.1をインストールしましょう。
wget http://www.modsecurity.org/download/modsecurity-apa...
tar xzvf modsecurity-apache_2.1.1.tar.gz
次にapache2ディレクトリにある、Makefileを編集します。
#top_dir = /apps/apache22
top_dir = /usr/local/apache2
INCLUDES=-I/usr/include/libxml2
ではインストールです。
make
make install
すると/usr/local/apache2/modulesにmod_security2.soができ...
LoadModule security2_module modules/mod_security2.so
を追加します。apacheを再起動したら、
Cannot load /usr/local/apache2/modules/mod_security2.so ...
と怒られましたので、
LoadFile /usr/lib/libxml2.so
を追加しました。
ではルールをhttp://www.modsecurity.org/download/modsecuri...
mkdir /usr/local/apache2/conf/modsec
cd /usr/local/apache2/conf/modsec
tar xzvf modsecurity-core-rules_2.1-1.4.tar.gz
とし、httpd.confに
<IfModule security2_module>
Include conf/modsec/*.conf
</IfModule>
を付け加えておきます。http://www.modsecurity.org/document...
ではhttpd.confに設定します。1系
<IfModule mod_security.c>
SecFilterEngine On <-フィルターエンジンをON
SecFilterScanPOST On <- POSTの解析をON
SecFilterDefaultAction "deny,log,status:406" <-デフォル...
SecFilter /etc/passwd <-index.html?/etc/passwdとかリク...
# script tag
SecFilter "<[[:space:]]*script.*>"
SecFilter "<[[:space:]]*style.*>"
SecFilter "<[[:space:]]*link.*>"
SecFilter "<[[:space:]]*body[[:space:]]*>"
# suspected protocol
SecFilter "javascript:"
SecFilter "vbscript:"
SecFilter "about:"
# call script
SecFilter "expression\("
SecFilter "&{.*};"
# event
SecFilter "onError"
SecFilter "onUnload"
SecFilter "onBlur"
SecFilter "onFocus"
SecFilter "onClick"
SecFilter "onMouseOver"
SecFilter "onMouseOut"
SecFilter "onSubmit"
SecFilter "onReset"
SecFilter "onChange"
SecFilter "onSelect"
SecFilter "onAbort"
#
SecFilterSelective REQUEST_METHOD "!(GET|POST|HEAD)" <...
SecAuditEngine RelevantOnly <-RelevantOnlyでルールと一...
SecAuditLog /usr/local/apache2/logs/modsec.log <-ログ
</IfModule>
一部単語の最後の文字が全角になってますが、これはそのまま...
またhttp://www.modsecurity.org/download/modsecurity-rules...
解凍した*.confを
apache2/conf/modsec/
にでもコピーして
Include conf/modsec/*.conf
としておけば、logsディレクトリに
modsec_audit.log
が出力されます。ただし
SecFilterSignatureAction "log,pass,msg:'Command executio...
のようにpassになってますので、denyにでも変えておきます。
もっと厳しくするには、~
http://www.gotroot.com/tiki-index.php?page=mod_security+r...
よりダウンロードしましょう。
ブラックリストのルールがあります。~
http://www.atmarkit.co.jp/fsecurity/rensai/webhole11/webh...
http://www.atmarkit.co.jp/fsecurity/rensai/webhole12/webh...
http://www.softek.co.jp/Sec/mod_security3.html~
http://hp.vector.co.jp/authors/VA027424/mod_security/mod_...
***DOS対策 [#n53a347e]
mod_evasiveをhttp://www.zdziarski.com/projects/mod_evasiv...
wget http://www.zdziarski.com/projects/mod_evasive/mod_e...
tar xzvf mod_evasive_1.10.1.tar.gz
cd mod_evasive
/usr/local/apache2/bin/apxs -i -a -c mod_evasive20.c
するとhttpd.confに
LoadModule evasive20_module modules/mod_evasive20.so
が追加されていました。ではディレクティブです。
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
またオプションとして、
Optionally you can also add the following directives:
DOSEmailNotify you@yourdomain.com
DOSSystemCommand "su - someuser -c '/sbin/... %s ....
DOSLogDir "/var/lock/mod_evasive"
も指定出来るそうです。このあたりの細かい内容はREADMEに記...
同ページで、1秒間に(DOSPageInterval)に2回以上(DOSPageCoun...
もしくは同サイトで1秒間に(DOSSiteInterval)に50回以上(DOSS...
10秒(DOSBlockingPeriod)ブロックすると言ったような設定にな...
http://d.hatena.ne.jp/stanaka/20070204/1170553603~
http://itpro.nikkeibp.co.jp/article/COLUMN/20070510/27052...
***libwww-perl [#b75bb1d2]
ログを見ていると、スパムでユーザエージェントにlibwww-perl...
はじいちゃいましょう。
SetEnvIf User-Agent "^libwww" deny_ua
Order allow,deny
Allow from all
Deny from env=deny_ua
ついでにLWP::Simpleも止める場合は、
SetEnvIf User-Agent "^LWP::Simple" deny_ua
を追加しておきます。
[[Googleにもアクセス拒否され、スパム送信源と化した「libww...
***ロボット [#la897ed4]
ロボットに巡回してほしくない場合に、サイトのトップにrobot...
User-agent: *
Disallow: /secret/
ただ無視する検索エンジンもあります。
参考~
[[robots.txt とは?>http://www.tohoho-web.com/wwwxx079.ht...
[[検索エンジンロボットを制御する>http://tech.bayashi.net/...
** TIPS [#mc1782a4]
***インストールされているモジュールを調べる [#zbfa82f4]
httpd -l
あと
httpd -M
とか。
***httpd: Could not determine the server's fully qualifie...
httpd.confのservernameを直しましょう。
***Indexリストで特定のファイルを非表示にしたい。 [#m1ce30...
IndexIgnore *.hoge
***ヘッダ、フッタをすべてのページにつけたい [#ea0d63a8]
SSI以外にmod_layoutが使えるかもしれません。ちょっと使って...
***File 'NONEXISTENT/charsets/?.conf' not found [#s4315fcc]
エラーログにエラーが出まくってました。どうもphpをインスト...
http://www.hamusuta.net/mame/viewkizione.php?kizino=04022...
***プロセスIDの指定 [#a2f9b38b]
PidFile logs/httpd.pid
***起動中のhttpdに設定を反映させる~ [#j4901458]
apachectl graceful
***別のURLに転送させたい [#ecf63579]
Redirectを使います。
http://www.itmedia.co.jp/help/tips/linux/l0397.html
***HTTPメソッドで制限をかけたい [#b97162b5]
GETとPOSTを制限したい場合は.htaccessで
<Limit GET POST>
order deny,allow
deny from all
allow from 192.168.1
</Limit>
とか
***追加でモジュールを入れたい [#i4a13a64]
たとえばmod_rewrite
cd httpd-2.0.54
mkdir work
cp -ip modules/mappers/mod_rewrite.c work/
cp -ip modules/mappers/mod_rewrite.h work/
cd work
/usr/local/apache2/bin/apxs -c mod_rewrite.c
/usr/local/apache2/bin/apxs -i -a -n rewrite mod_rewrite...
mod_proxy
cd httpd-2.0.54
mkdir work
cp -ip modules//proxy/mod_proxy.c work/
cp -ip modules//proxy/mod_proxy.h work/
cd work
/usr/local/apache2/bin/apxs -c mod_proxy.c
/usr/local/apache2/bin/apxs -i -a -n proxy mod_proxy.la
ん?動かしたらエラーがでたぞ。
[warn] proxy: No protocol handler was valid for the URL ...
これだけではだめなのか。では
/usr/local/apache2/bin/apxs -cia mod_proxy.c proxy_util.c
/usr/local/apache2/bin/apxs -cia proxy_connect.c
/usr/local/apache2/bin/apxs -cia proxy_http.c
で動きました。素直に--enable-proxyをつけてコンパイルしま...
***IPアドレス制限とユーザー認証 [#i6aaf6c3]
Satisfyを使います。
[[IPアドレス制限とユーザー認証の組み合わせ>http://www.adm...
*** RDF(Resource Description Framework)を開きたい [#de089...
AddType application/xml .rdf
AddType text/xml;charset=UTF-8 .rdf
** リンク [#g8e23819]
http://httpd.apache.org/~
[[Apache HTTP サーバ バージョン 2.0 ドキュメント>http://h...
[[Apache2 に OpenSSL を適用するための覚え>http://www.rinz...
[[Apache バーチャルホスト説明書>http://httpd.apache.org/d...
[[パソコンおやじ>http://acorn.zive.net/~oyaji/]]~
[[Apacheのインストール>http://www.ryouto.jp/linux/linux_3...
[[Studying HTTP>http://www.studyinghttp.net/]] HTTPの勉強...
[[Apache 2.0 + mod_proxy によるリバース・プロキシの構築>h...
[[Apache入門>http://www.adminweb.jp/apache/]]~
[[mod_concat で複数ファイルを連結して配信する>http://d.ha...
[[.htaccessで使える16の技>http://phpspot.org/blog/archive...
[[web開発者なら知っておきたい HTTPステータスコード>http:/...
** 参考書籍 [#l571994e]
[[Apache2設定&管理 逆引きリファレンス>http://www.amazon.c...
このアドバンスリファレンスシリーズは辞書代わりにつかうの...
** カテゴリ [#u4a36522]
[[:web]]~
** コメント [#j27d099e]
-http://ore.dyndns.org/web/RTFM.html -- [[通りすがりの人]...
--#comment
ページ名: