昨日設定したGallery3だが、ポート80のhttpだとユーザー名やパスワードは平文で暗号化もされずそのまま送られるし、衝撃的だったのは、ブラウザでデータを保存しているディレクトリを直接指定して見ると中身が丸見えだった(;´Д`)
ユーザー名とパスワードの意味が一切なし。
そういやWebDAVで設定した時にSSLの設定は完了しているので、どうせならSSL通信を行うよう設定する。
そしてディレクトリの直接指定をしても不可視化するように設定を変更しなおしてみた。
昨日の記事は25日の13時に修正済みなので、はじめから行う場合は【VPS】さくらのVPSにGallery3をインストールする【フォトアルバム】で設定してもらえば大丈夫だと思います。
その前に設定しちゃったよ!って人は下記設定を行なってください。
このままだとファイルが駄々漏れ
実は、ただGallery3をインストールしただけだとGallery3にログインしていなくてもGallery3の中を簡単に覗くことが出来る。
http://ホスト名/gallery3/var/albums
にアクセスすると、Gallery3にログインしていなくても中は丸見え。
セキュリティも何もあったものではない。
しかも、
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になり表示されなくなっているはずだ。
Apacheのバージョン表示もされなくなった。
これでGallery3にログインしない限り写真を見ることは出来ない。
アプリでのアクセス
vigalleryを起動し、add Galleryをタップ。
Url:に
https://ホスト名/gallery3/index.php
と入力。
ユーザー名とパスワードは初期設定で決めたものを入力し、addをタップ。
Display Nameの入力は任意。
変更したかったら入力しよう。
これですべて終了。
セキュリティレベルも大幅に上がり、実用に耐えうるものになった。
ちゃんとしたSSL証明書欲しくなってきた
ここまで証明書を多用するなら、ちゃんと証明機関から認定されたSSL証明書が欲しくなってきたなぁ。
でもドメイン取らないと取れないからなぁ。
どうしようか迷い中。
>こんばんは。
2日連続での設定記事ありがとうございました。
httpd.confの設定しておかないとディレクトリ構成丸見えですね…
自分はセキュリティ対策したついでにhttpd.confいじっていたの忘れてました。
自分も安いドメインと1年間無料のSSL証明書取るか、このままいくか悩んでます。
SSL証明を取るには有料無料どちらでもドメインが必要なんですよね。
どうしようか悩んでますw
>ますますiPhoneでも出来ることが増えてきて楽しいです。
ところで、今回のセキュリティですが、albums自体は見えなくなりますが、ファイルを直で指定すると見えちゃいますね。
https://ホスト名/gallery3/var/albums/xxxxxxxx.JPG
のように。
ファイル名がわからない限りは問題ないのでしょうが、やっぱりプライベートな写真はアップしない方がいいのかもしれませんね。
>うわ!ほんとだ。
直で指定したら結局見えますね(;´Д`)
ディレクトリをWebDAVみたいにユーザー名とパスワードでログインしないと
見られないようにすればいいかもしれないですが、
アプリが使えなくなりそうですね(-_-;)
うーむ。こりゃ困りましたな。