Typo adminをセキュアにする
投稿者 おおかゆか
Typoはぶっちゃけ、/admin以下が管理ツールの場所になっている。
なのでTypoで構築されているブログに行って/adminにアクセスしてみると、たいてログイン画面が表示されたりする。
まあ普通のレンタルブログでもそのへんのセキュリティは大して考えられてないことも多いので、特に神経質になる必要はないのかもしれないけども、このままではどうも寝つきが悪い。
そこで今回は、Typo admin(管理ツール)をセキュアにすることを考えたい。
やることは3つ。
- HTTPSでTypoを稼働させる
- HTTPではTypo adminにはアクセスできなくする
- HTTPSでは特定のIPアドレスからしかアクセスできなくする
これによりTypo adminは、HTTPSで自分の環境からでのみアクセスできるようになる。
HTTPSにするのは、HTTPだとログイン時の入力やCookieを通信経路で盗み見られる可能性があるため。また念のため、IPアドレスでのアクセス制限も付加してさらにセキュリティを強化しておく。
以下にその手順を記述。
環境はUbuntu 8.04で、Apache2にmod_sslを適用することで実現させる。Apacheはaptでインストールされたものを使用しているものとする。
1. HTTPSでTypoを稼働させる
OpenSSLが入っていない場合はインストール。
続いて証明書の発行。
ここでは自分しかアクセスしないので、業者にお金払って発行してもらうようなことはせず、いわゆるオレオレ証明書を使う。
$ sudo openssl req -new -text -oout httpd.req -keyout httpd.pem
$ sudo openssl req -new -text -out httpd.req -keyout httpd.pem
$ sudo openssl rsa -in httpd.pem -out myblog.pem
$ sudo openssl req -x509 -in httpd.req -text -key myblog.pem -out myblog.crt
次はApacheの設定。
まずmod_sslを有効にする。
$ ln -s ../mods-available/ssl.load .
$ ln -s ../mods-available/ssl.conf .
VirtualHostを設定しておく。
–
Listen 443
NameVirtualHost *:443
<VirtualHost *:443></VirtualHost>
:
SSLEngine On
SSLCertificateFile /etc/ssl/certs/myblog.crt
SSLCertificateKeyFile /etc/ssl/certs/myblog.pem
:
</VirtualHost>
–
のようなのを追加。
2. HTTPではTypo adminにはアクセスできなくする
既存の80番ポートのVirtualHostの設定に追加記述する。
–
<VirtualHost *:80>
:
RewriteEngine On
RewriteRule ^/admin [F,L]
RewriteRule ^/accounts [F,L]
:
</VirtualHost>
–
のようなのを追加。
3. HTTPSでは特定のIPアドレスからしかアクセスできなくする
1で記述した443番ポートのVirtualHostの設定に追加をする。
–
<VirtualHost *:443>
:
<Directory ${TYPO_DIR}>
:
allow from my_IP_address1 my_IP_address2 my_IP_address3…
:
</Directory>
:
</VirtualHost>
–
のようなのを追加。
以上で完了。後はApacheを再起動すればOK。
ちなみにFirefox3では、オレオレ証明書はデフォルトでは拒否される。これを解決するためには例外サイトとして登録する必要がある。
「設定」→「詳細」→「証明書を表示」→「サーバ証明書」→「例外を追加」でURLを登録すると、以降は例外サイトとしてアクセス可能になる。


















