Gallery3をSSL化してみた

昨日設定したGallery3だが、ポート80のhttpだとユーザー名やパスワードは平文で暗号化もされずそのまま送られるし、衝撃的だったのは、ブラウザでデータを保存しているディレクトリを直接指定して見ると中身が丸見えだった(;´Д`)
ユーザー名とパスワードの意味が一切なし。

そういやWebDAVで設定した時にSSLの設定は完了しているので、どうせならSSL通信を行うよう設定する。
そしてディレクトリの直接指定をしても不可視化するように設定を変更しなおしてみた。

昨日の記事は25日の13時に修正済みなので、はじめから行う場合は【VPS】さくらのVPSにGallery3をインストールする【フォトアルバム】で設定してもらえば大丈夫だと思います。

その前に設定しちゃったよ!って人は下記設定を行なってください。

このままだとファイルが駄々漏れ

実は、ただGallery3をインストールしただけだとGallery3にログインしていなくてもGallery3の中を簡単に覗くことが出来る。

http://ホスト名/gallery3/var/albums

にアクセスすると、Gallery3にログインしていなくても中は丸見え。
セキュリティも何もあったものではない。

GallerySSL

しかも、

https://ホスト名/gallery3/var/albums

でのSSL通信でも当たり前だが今までの設定だと仕様上容赦なく見ることが出来る。
これではとても使いものにならないので、実用性に耐えるようカスタマイズしてみた。

Apacheの設定

直接URL指定でalbumsディレクトリの内容が表示されないように、ディレクトリの不可視化をする。
ついでにApacheのバージョン表示もしないよう変更。

httpd.confを開く。

[root@ ~]# vi /etc/httpd/conf/httpd.conf エンターキー

44行目の

ServerTokens OS

ServerTokens Prod

に変更。

331行目の

Options Indexes FollowSymLinks

のIndexesを削除し、

Options FollowSymLinks

にする。

554行目の

Options Indexes MultiViews FollowSymLinks

のIndexesを削除し、

Options MultiViews FollowSymLinks

に変更する。

行数がわかりにくければ、コマンドモードの状態で

:set number

と入力すると、左側に行数が表示される。

変更したら:wqで保存して終了する。

Apache(httpd)の再起動

httpd.confの変更をhttpdに適用させるため、Apacheを再起動する。

[root@ ~]# /etc/rc.d/init.d/httpd restart エンターキー

これでhttpd.confの変更はhttpdに適用された。

ファイアウォール(iptables)の設定を変更

【セキュリティ】さくらVPSにファイアウォールを適用する。【iptables】

の設定ではhttpのポート80を塞いでいるので、それを使用するためiptablesの設定を変更してポート80を開放したが、また塞ぐ(;´Д`)

[root@ ~]# vi /etc/sysconfig/iptables エンターキー

でiptablesの設定ファイルを編集。

# HTTP 80, HTTPS 443, mail 465, SSH 10022, Subsonic 4040, AirVideo 45631

を消し、

# HTTPS 443, mail 465, SSH 10022, Subsonic 4040, AirVideo 45631

に書き換え、その下の行の、

-A FIREWALL -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

を消し、:wqで終了する。

iptablesの再起動

変更を適用させるため、iptablesを再起動する。

[root@ ~]# /etc/rc.d/init.d/iptables restart エンターキー

これで変更が適用された。

アクセスしてみよう

ブラウザで

http://ホスト名/gallery3/

にアクセスしてみてもエラーで見られなくなっているはず。

https://ホスト名/gallery3/

でアクセスしてみるとログイン画面が現れるはず。
さらに、

https://ホスト名/gallery3/var/albums

にアクセスしてみてもForbiddenになり表示されなくなっているはずだ。

GallerySSL 1

Apacheのバージョン表示もされなくなった。
これでGallery3にログインしない限り写真を見ることは出来ない。

アプリでのアクセス

vigalleryを起動し、add Galleryをタップ。

Gallery3 16

Url:に
https://ホスト名/gallery3/index.php

と入力。
ユーザー名とパスワードは初期設定で決めたものを入力し、addをタップ。
Display Nameの入力は任意。
変更したかったら入力しよう。

Gallery3

これですべて終了。
セキュリティレベルも大幅に上がり、実用に耐えうるものになった。

ちゃんとしたSSL証明書欲しくなってきた

ここまで証明書を多用するなら、ちゃんと証明機関から認定されたSSL証明書が欲しくなってきたなぁ。
でもドメイン取らないと取れないからなぁ。
どうしようか迷い中。

Gallery3をSSL化してみた」への4件のフィードバック

  1. まさ

    >こんばんは。
    2日連続での設定記事ありがとうございました。
    httpd.confの設定しておかないとディレクトリ構成丸見えですね…
    自分はセキュリティ対策したついでにhttpd.confいじっていたの忘れてました。

    自分も安いドメインと1年間無料のSSL証明書取るか、このままいくか悩んでます。

    返信
    1. 葛葉 キョウジ(管理人) 投稿作成者

      SSL証明を取るには有料無料どちらでもドメインが必要なんですよね。
      どうしようか悩んでますw

      返信
  2. Anonymous

    >ますますiPhoneでも出来ることが増えてきて楽しいです。
    ところで、今回のセキュリティですが、albums自体は見えなくなりますが、ファイルを直で指定すると見えちゃいますね。
    https://ホスト名/gallery3/var/albums/xxxxxxxx.JPG
    のように。
    ファイル名がわからない限りは問題ないのでしょうが、やっぱりプライベートな写真はアップしない方がいいのかもしれませんね。

    返信
  3. 葛葉キョウジ

    >うわ!ほんとだ。
    直で指定したら結局見えますね(;´Д`)
    ディレクトリをWebDAVみたいにユーザー名とパスワードでログインしないと
    見られないようにすればいいかもしれないですが、
    アプリが使えなくなりそうですね(-_-;)

    うーむ。こりゃ困りましたな。

    返信

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)