Typo adminをセキュアにする

投稿者 おおかゆか 2008-11-26 15:37:00 GMT

Typoはぶっちゃけ、/admin以下が管理ツールの場所になっている。
なのでTypoで構築されているブログに行って/adminにアクセスしてみると、たいてログイン画面が表示されたりする。

まあ普通のレンタルブログでもそのへんのセキュリティは大して考えられてないことも多いので、特に神経質になる必要はないのかもしれないけども、このままではどうも寝つきが悪い。
そこで今回は、Typo admin(管理ツール)をセキュアにすることを考えたい。

やることは3つ。

  1. HTTPSでTypoを稼働させる
  2. HTTPではTypo adminにはアクセスできなくする
  3. HTTPSでは特定のIPアドレスからしかアクセスできなくする

これによりTypo adminは、HTTPSで自分の環境からでのみアクセスできるようになる。
HTTPSにするのは、HTTPだとログイン時の入力やCookieを通信経路で盗み見られる可能性があるため。また念のため、IPアドレスでのアクセス制限も付加してさらにセキュリティを強化しておく。

以下にその手順を記述。
環境はUbuntu 8.04で、Apache2にmod_sslを適用することで実現させる。Apacheはaptでインストールされたものを使用しているものとする。

 

1. HTTPSでTypoを稼働させる

OpenSSLが入っていない場合はインストール。

$ sudo apt-get install openssl

続いて証明書の発行。
ここでは自分しかアクセスしないので、業者にお金払って発行してもらうようなことはせず、いわゆるオレオレ証明書を使う。

$ cd /etc/ssl/certs
$ 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を有効にする。

$ cd /etc/apache2/mods-enable/
$ ln -s ../mods-available/ssl.load .
$ ln -s ../mods-available/ssl.conf .

VirtualHostを設定しておく。

$ sudo vi /etc/apache2/sites-available/default

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の設定に追加記述する。

$ sudo vi /etc/apache2/sites-available/default

<VirtualHost *:80>
      :
  RewriteEngine On
  RewriteRule ^/admin [F,L]
  RewriteRule ^/accounts [F,L]
      :
</VirtualHost>

のようなのを追加。

 

3. HTTPSでは特定のIPアドレスからしかアクセスできなくする

1で記述した443番ポートのVirtualHostの設定に追加をする。

$ sudo vi /etc/apache2/sites-available/default

<VirtualHost *:443>
      :
  <Directory ${TYPO_DIR}>
        :
    allow from my_IP_address1 my_IP_address2 my_IP_address3…
        :
  </Directory>
      :
</VirtualHost>

のようなのを追加。

 

以上で完了。後はApacheを再起動すればOK。

ちなみにFirefox3では、オレオレ証明書はデフォルトでは拒否される。これを解決するためには例外サイトとして登録する必要がある。
「設定」→「詳細」→「証明書を表示」→「サーバ証明書」→「例外を追加」でURLを登録すると、以降は例外サイトとしてアクセス可能になる。

カテゴリ , , ,  | コメント(0) | トラックバック(0) はてなブックマークへ はてなブックマークでの登録数

コメント

トラックバック

トラックバックリンク:
http://ja.verbmode.net/trackbacks?article_id=21

(leave url/email »)

   コメントのマークアップヘルプ 前のコメント