eccubeの環境を、ローカル構築中できた
と思って、管理画面にアクセスするとエラー発生
「このウェブページにはリダイレクト ループが含まれています」
.htaccessをみたけど、異常無し
調べてみると
vim data/config/config.php
define('ADMIN_FORCE_SSL', true);
↓
define('ADMIN_FORCE_SSL', false);
で直りました
ひびのきろく
eccubeの環境を、ローカル構築中できた
と思って、管理画面にアクセスするとエラー発生
「このウェブページにはリダイレクト ループが含まれています」
.htaccessをみたけど、異常無し
調べてみると
vim data/config/config.php
define('ADMIN_FORCE_SSL', true);
↓
define('ADMIN_FORCE_SSL', false);
で直りました
sudo 実行時にエラーが出た
testuser は sudoers ファイル内にありません。この事象は記録・報告されます。
突然、どうした。
id コマンドをうつと
uid=500(testuser) gid=500(testuser) 所属グループ=500(testuser),48(apache)
wheelグループがいない…
rootで入って
su root
グループを追加する
usermod -G apache,wheel testuser
複数グループのときは、カンマで区切って登録しないと
一つになってしまいます
testuserに戻って
exit;
sudoできたら直りました
シンボリックリンク攻撃を超基礎から整理します
<環境>
Centos
Apache 2.2.15
まずは、Apacheでのアクセス権限について整理
/var/www/html/test/index.html
というフォルダを参照するとき
apacheグループ所属のapacheユーザーがアクセスにきます
WEBブラウザで参照するときに必要になるのは
/var/www/html/test/ → x 実行権限
/var/www/html/test/index.html → r 読み取り権限
シンボリックリンク攻撃の一例を試してみます
下記の通り、ファイルがあるとして
drwx------ apache apache test
drwx------ apache apache test/index.php
drwx-----x user user test2
drwx---r-- user user test2/index.php
http://(server ip)/test/index.php
は見れるし
http://(server ip)/test2/index.php
も見れます
test/index.phpのソースは普通は見れませんが
cd test2
ln -s ../test/index.php test.txt
とシンボリックリンクを作って
drwx------ apache apache test
drwx------ apache apache test/index.php
drwx-----x user user test2
drwx---r-- user user test2/index.php
lrwxrwxrwx user user test.txt -> ../test/index.php
http://(server ip)/test2/index.txt
とすると
ソースが見えてしまいます。
恐ろしい…
防ぐにはhttpd.confか.htaccessでのFollowSymLinksを無効にすればいいです
Option -FollowSymLinks
また、SymLinksIfOwnerMatchを有効にすると
所有ユーザーが同じファイルのシンボリックリンクが有効になります
Option -FollowSymLinks SymLinksIfOwnerMatch
上記例での http://(server ip)/test2/index.txt
のアクセスは
drwx------ apache apache test/index.php
lrwxrwxrwx user user test.txt -> ../test/index.php
所有ユーザーが違うので
アクセスできなくなります
WEBページへアクセスした時のURLを書き換えてみます
<環境>
Centos 6
Apache 2.2
.htaccessを使うか、httpd.confに直接書きます
1.
http://example.com/sample or http://example.com/sample/
のアクセスを
http://example.com/sample.html
にする
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/sample/?$
RewriteRule ^(.*)$ http://example.com/sample.html [L,R]
REQUEST_URIはスラッシュ(/)付きで始まります
RewriteCondの「/?」は、「/」が0個か1個かという意味、
RewriteRuleの[L]=ここで終わり、[R]=リダイレクトの意味です
2.
http://example.com/
のアクセスを
http://blog.example.com/
にする
RewriteCond %{HTTP_HOST} ^example\.com(:80)?
RewriteRule ^(.*)$ http://blog.example/$1 [L,R=301]
3.
http://example.com/
のアクセスを
http://blog.example.com/
にするが
http://example.com/sample.html
は、そのままアクセスさせる
RewriteCond %{HTTP_HOST} ^example\.com(:80)?
RewriteCond %{REQUEST_URI} !^/sample.html?
RewriteRule ^(.*)$ http://blog.example/$1 [L,R=301]
RewriteCondの「!^/sample.html?」の「!」は否定で、sample.htmlへのアクセス以外になります
—-
うまくいかないときはログを見ましょう
ログを出すには
httpd.conf
に
RewriteLog /var/log/httpd/rewrite.log
RewriteLogLevel 9
と記載
service httpd reload
などして、Apacheに設定を読み込ませます
ログの確認が終われば、httpd.confの記載はとっておきましょう
ログが出続けてしまいます