• ホーム
  • サーバ
  • Apache
  • httpd.conf
  • 特定のディレクトリやファイル
  • 特定のディレクトリやファイル

    
    #####特定のディレクトリやファイルに関する設定(ブロックディレクティブ)#####
    <Directory />			"/"ディレクトリに対して機能を制限する指定
        Options FollowSymLinks  (ルートディレクトリの設定はサブディレクトリ設定のない場合に有効)
        AllowOverride None	アクセスコントロールファイル(.htaccess)を参照しない
    		ルートディレクトリでこれをNone以外にすると1階層ごとに捜査される為多少時間がかかる
    </Directory>
    
    <Directory "/var/apache/htdocs">  /var/apache/htdocsディレクトリに対して機能を制限する指定
        Options Indexes FollowSymLinks MultiViews		解説を参照
        AllowOverride None		アクセスコントロールファイル(.htaccess)を参照しない
        Order allow,deny		以下のAllowとDenyの評価順。Allow→Denyの順で評価
        Allow from all		全てのホストからアクセスを許可する
    
    <Directory ~ "^/www/.*/[0-9]{3}">	チルダ~を使うと正規表現でのマッチも可能(左記は/www/数字3ケタ のディレクトリにマッチ)
    </Directory>
    	★Options命令
    	・Indexes		DirectoryIndexで指定したファイルが見つからない場合ディレクトリリストを表示
    	・FollowSymLinks	このディレクトリのシンボリックリンクをたどることを許可
    	・SymLinksIfOwnerMatch	ファイルの所有者とシンボリックリンクの所有者が同じ場合のみリンクをたどることを許可
    	・MultiViews		ロケールに合わせて異なる言語を表示できるようになります
    	・ExecCGI   		特定のディレクトリ配下で CGI の実行を許可(ScriptAlias ディレクトリ外の CGI)
    	・All			MultiViewsを除いた全てのものが利用可能(デフォルト)
    	・Includes		サーバ側インクルード機能(SSI)を許可
    	・IncludesNOEXEC		サーバ側インクルード機能(SSI)を許可しますが、
    				#exeコマンドとCGIスクリプトの#include は含みません
    	・None			全ての機能が利用できない
    	例:注意
    	Options ExecCGI		こう書いた場合ExecCGI以外のオプションが全て無効になってしまう
    	Options +ExecCGI	+ は機能追加。- は機能削除。
    	Options ExecCGI
    	Options Indexes		2行でこう書いた場合は、下のIndexesしか有効にならない。
    
    ■ ディレクティブ
    URL内に書かれた文字の
    
    
    httpd.confによるアクセス制限(mod_access)
    例 Order deny,allow Deny、Allowの順で評価(デフォルト) Allow from 192.168.1.0/24 このアドレスからのアクセスを許可(複数の場合スペース区切り) Deny from all その他のアドレス拒否 その他 Allow from env=variablename 指定された環境変数の有無の応じてアクセスを制御 例 hogehoge v1.0というブラウザがアクセスしてきた場合はアクセス許可 BrowserMatch ^hogehoge/1.0 let_me_in <Directory /docroot> order deny,allow deny from all allow from env=let_me_in </Directory> 例 環境変数Refererが"http.//www.example.com"で始まっているならば許可(mod_setenvif) SetEnvIf Referer "^http://www\.example\.com" ref_ok order deny,allow deny from all allow from env=ref_ok ※ただしRefererはNorton等のセキュリティソフトによってブロックされたり偽装が可能なので注意  その他には環境変数Host、User-Agent等がよく利用される ●ファイルの保護 例 拡張子が.dat .log .csv のファイルにはアクセスできない <Files ~ "\.(dat|log|csv)$"> deny from all </Files> ※なおサーバ側で.htaccessを保護していないならここでしておく<Files ~ "^\.ht">
    認証(このディレクトリでパスワード認証を使用)
    AuthType Basic 認証方法を指定(BasicかDigest) ※Digest(ダイジェスト認証)とは ハッシュ(MD5)を使ってパスワード認証を行う ただしモジュールmod_digest.oを組み込みhtdigestコマンドをメイクし、 それようにパスワードファイルも作成する必要がある。 またクライアントのブラウザも対応している必要がある AuthName test 認証領域の名前を設定 (アカウントとパスワードを入力するダイアログボックスに表示される) AuthUserFile /usr/local/apache/ok_users/.htpasswd 認証用ディレクトリ用のパスワードファイルの保存場所を指定 (WEBサーバのドキュメントツリーの外側に保存すること) ※このファイルの作成方法は下記パスワードファイルの作成を参照 require valid-user パスワードチェックを実際に稼動させる アクセスを許可するアカウントを指定 (valid-userとした場合はパスワードファイル内の全ユーザを承認) その他 AuthGroupFile /usr/local/apache/ok_users/.group グループ名とそのグループメンバーを定義したファイル [ファイルの中身] group1: user1 user2 group2: aaa bbb file-owner AuthUserFileデータベースに存在し、 かつリクエストしたファイルが所有者と一致した場合に接続を承認する file-group AuthUserFile,AuthGroupFileデータベースに存在し、 かつリクエストしたファイルの所有グループが一致した場合に接続を承認する satisfy any 認証とIPの両方で制限されている場合にこのディレクティブが有効 anyかall(デフォルト)で指定 ・allの場合、IPのアクセス制限をパスした後ユーザ名とパスワード認証 ・anyの場合、上記のどちらかをパスするとOK 例 192.168.1.100以外からの接続はパスワードを求める require valid-user satisfy any order deny.allow allow from 192.168.1.100 deny from all ※パスワードファイルの作成(htpasswd ユーティリティ使用) このユーティリティは以下にある。 Apache2の場合 ソースの下の/support/htpasswd Apache1.3.2xの場合 ソースの下の/src/support/htpasswd.c をコンパイルする make htpasswd htpasswd -c [パスワードファイル名] [ユーザ名] -c 新しいファイルを作成(2回目からは -c は不要) -m パスワードを強制的にMD5で暗号化 -d パスワードを強制的にCRYPTで暗号化(デフォルト) -p パスワードを暗号化しない -s パスワードを強制的にSHAで暗号化 -b 作成時パスワードも入力。 htpasswd -b パスワードファイル名 ユーザ名 パスワード 例 htpasswd -m -c /usr/local/apache/ok_users/userlist testuser その後パスワードを2回入力
    <Limit>ディレクティブ
    囲いの中にあるアクセス制御の適用を特定のHTTPメソッドのみに制限する ※一般的にLimitはどうしても必要なとき意外は使用しないほうが良い(PUTを実装しているときGETは制限等) 例 POST PUT DELETEメソッドが使用できない <Limit POST PUT DELETE> Require valid-user 有効にする </Limit>  <LimitExcept> ディレクティブ Limitの逆。指定したメソッド以外が使用できない 例 POST GETメソッド以外が使用できない <LimitExcept POST GET> Require valid-user </LimitExcept> ▲HTTPメソッド GET URLがファイル名のときはそのファイルの中身を、 プログラム名のときはそのプログラムの出力を返す(読み込み) HEAD GETと同じだがHTTPヘッダのみを返す POST クライアントからデータを渡す。フォームデータを送るときなどに使用 PUT URLで指定したサーバ上のファイルを置き換える(書き込み) DELETE URLで指定したサーバ上のファイルを削除する OPTIONS 通信オプションの通知など PATCH PUTと同じだが、差分のみを置き換える PROPFIND ファイルの一覧を取得
    その他
    ●UserDir public_html UserDirはhttp://hostname/~user-nameがリクエストされるとuser-nameの ホームディレクトリを返す <IfModule mod_userdir.c> 指定したモジュールがコンパイルされているか Apacheに動的に読み込まれているとき有効になる UserDir public_html 各ユーザのホームディレクトリにこの名前のディレクトリを置くと </IfModule> http://hostname/~user-name/public_html で参照できるようになる 例 UserDir /usr/web /usr/web/user-name のディレクトリを返す UserDir /home/*/www /home/user-name/www のディレクトリを返す UserDir disabled root 指定したユーザ名に対してはディレクトリ名へ変換を行わない (rootは宣言しておく方が良い) <Directory "/home/*/public_html"> ユーザのホームディレクトリを指定 Options Indexes +ExecCGI AddHandler cgi-script .cgi AllowOverride None order deny,allow allow from all </Directory> ●DirectoryIndex index.html ファイル名を指定しないでアクセスした場合、このファイル名にアクセス スペースで区切り複数指定した場合、左から順にアクセス ● <Files ~ "^\.ht"> <Files>命令は、ファイルネームによるアクセスコントロールを設定 Order allow,deny Deny from all .htから始まるファイルを全てのクライアントから参照できないように Satisfy All (.htaccessファイル) </Files> ●UseCanonicalName On onの場合CNAMEで宣言された別名でのリクエストを受け付け、ServerName に書かれたURLを返す。offの場合別名のまま返す。 <IfModule mod_mime.c> ● TypesConfig /etc/apache/mime.types </IfModule> MIMEタイプの設定ファイルを指定 ●ErrorDocument 404 /cgi-bin/bad_urls.pl エラーページについて「エラーコード ドキュメント」で指定できる ドキュメントはそのページのURL、ファイル名、"内容"、が使用可 ■mod_alias 古い URL を新しいものへマップする Redirect /service http://www2.example2.com/service クライアントは http://www.example.com/service/aaa.txt へのリクエストを行なうと、 代わりに http://www2.example2.com/service/aaa.txt をアクセスするように告げられます Redirect permanent ステータス(301) リソースが永久に移動したということを意味する ※mod_rewriteを使わずにリダイレクト出来る Redirect temp (デフォルト)一時的なリダイレクトステータス(302) Redirect seeother (303)リソースが他のもので置き換えられた Redirect gone (410)リソースが永久に削除されたことを意味(url 引数は省略) URL をファイルシステムの位置にマップ(DocumentRoot 以外の場所に保管することを可能にします) Alias /image /ftp/pub/image <Directory /ftp/pub/image> Order allow,deny Allow from all </Directory> http://www.example.com/image/test.gifへのリクエストに対して、/ftp/pub/image/test.gifを返します

    前へ  トップへ inserted by FC2 system