![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
現在、外部のレンタルサーバーでMySQLサーバーを動かし、そのDBに、VPNを介してインターネットを通してやり取りする専用の業務アプリを作り、そのアプリで様々な業務上の作業を行っています。
そこで、ふと思ったのですが、この外部のサーバーとのやり取りはMySQLとの通信だけです。VPNを利用する意味はあるのか?と思いました。
ファイルサーバーやアプリケーションサーバーなどいろいろな用途に使われる場合は、通信のプロトコルやポートなど様々なので、すべてを包括的にトンネル化するVPNが有用だと思いますが、例えば、特定のプロトコルでしか通信しない場合、そのプロトコルで暗号化されていれば、問題ないのかな?と考えました。
実際どうなんでしょうか。
もちろん、接続を開始する段階の「認証」は別で考える必要がありますが。
詳しい方、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
#1の回答者ではありませんが、
HTTPSでPHPで書かれたサイトを通したMySQLに接続した場合について#1さんの回答について考察してみます。
PHPというと、mod_phpをApacheに組み込んでいるのかと思ったのでその辺りの設定もちょっと触れます。
端的に言えば、ちゃんとSSLを使えば(1) - (3)を満たすでしょう。そして、(1) - (3)を満たす場合の安全性はVPNを使っている場合と同等でしょう。SSLというと通信内容の暗号化に目が行きがちですが、SSLの肝はむしろなりすましの防止にあると自分は思います。
(1)通信路の暗号化
SSLv3/TLSv1以上でしか接続しないようになっていて、弱い暗号を使っていなければ、SSLのライブラリーに脆弱性がない限り大丈夫でしょう。
Apacheを使っているなら、この辺りの設定をして、最新のApache、OpenSSLを使うとよいでしょう。
http://httpd.apache.org/docs/2.2/ssl/ssl_howto.h …
(2)接続先の認証(正しいサーバーと接続しているか)
クライアント側のコードでちゃんとサーバーの証明書をverifyするように書いてあればよいでしょう。
ちなみに、前述のとおり証明書をverifyしないとSSLを使う意味がありません。DNS cache poisoningなど様々な方法で偽のサーバーに接続させられ、機密情報を偽のサーバーに送ることとなるでしょう。
余談ですが、クライアントの方はサーバーの証明書のverifyに加えて(3)のためにクライアント証明書をサーバーに提供するように設定しておく必要があります。
(3)クライアントの認証
サーバー側のコードでちゃんとクライアントの証明書をverifyするように書いてあればよいでしょう。
例えば、もしApacheを使っているならこの辺りの設定が必須ですね。
http://httpd.apache.org/docs/2.2/ssl/ssl_howto.h …
ちなみに、クライアント認証がないとインターネット上の任意の攻撃者がサーバーに任意のHTTP requestを投げられます。そして、PHPのライブラリーなどに脆弱性がある場合や、よく知られたパスにプログラムが置いあった場合などに部外者から攻略されるリスクが有ると思います。
(4)MySQL等の脆弱性をついた攻撃への対処
これはSSLを使って防げるものではないですが、VPNにした場合と安全性は変わらないと思います。
PHPのプログラムやPHPのライブラリーに脆弱性があった場合、内部犯によって不正にデータベースの閲覧や改竄をされる可能性があると思います。
ただ、クライアント証明書など様々な方法でアクセスコントロールをして、権限がない人がそのページにアクセス出来ないようにしておくことで権限がある一部の人しか攻略のチャンスが無いようにはできると思います。
それでも本当に攻撃したい場合は権限がある人に攻撃プログラムを実行させたり、その人が昼食に行っている間に攻撃したりという可能性もあるでしょうが、そこら辺は社員へのセキュリティ教育で何とかするところでしょうね。
というわけで、ちゃんとSSLを使えばVPNを使う必要はないと思いますが、#1さんもおっしゃっている通り、ちゃんとするのが難しいですね。
ありがとうございます。
いろいろ ”ちゃんと” やるのは大変そうですね・・・。
そこまでのエキスパートでなければ
素直にVPNを利用した方がいいのかもしれませんね・・・。
勉強になりました。
No.4
- 回答日時:
そういった発想であれば、暗号化の一つであるSSL通信をさせる方法もありますが、その際にWebサーバへ中継しSSL認証させる方法、その他SSL-VPNネットワークを張る方法、VPNネットワークでもキャリア型VPN(フレッツVPNワイドやKDDI IP-VPN等)を利用する方法もあります。
VPNもセキュリティ確保でのデータ送信する一つの方法ですので、用途に併せ選択して頂ければと存じますが、DBサーバのクエリを回線上乗せる場合には、セキュリティ管理はくれぐれも軽視しない方が良いですよ。
個人情報や会社機密情報など、責任問題となる場合もあります。
VPNネットワークでも、コストによりセキュリティ拡充構成とセキュリティが不十分な構成もありますので、VPN(特にIPSEC-VPN)以外での構築となると、Webサーバ中継型https暗号化認証といった構築なども考慮した方が良いかと存じます。
ありがとうございました。
そうなんです、クエリを回線上に乗せるので
それも心配なんです。
現在利用している専用サーバーのVPNが高すぎて
代替案を検討してましたが、
難しいそうです・・・。
No.2
- 回答日時:
こんにちは。
外国のホスティング業者等では、MySQL用のポート(IP#3306)を外部接続可能にしているところが多数ありますが、日本だとそのようなサービスを見たことはありません。
お客様のサービス用に、自社管理サーバ(顧客専用Webサーバとして運用)のMySQLポートを外部(顧客業務アプリ)に公開しています。
セキュリティ対策については、ファイアウォールでポートを変更し、対向IPを固定した程度です。
以前はVPN環境でしたが、ご指摘の通りインターネットVPNでは速度が出ないため、現在の形式になりました。
セキュリティの専門家が見たら問題ありかと思いますが、客先には好評で、普通に運用されているようです。
ありがとうございます。
MySQLと直接ではなく、間にPHPを挟んだ場合は、セキュリティ的にはどうでしょうか?
そのphpとのhttp通信をSSLにした場合など。
一般的な業務アプリは、どのようにしてセキュリティを保っているのか
とても興味があります。
No.1
- 回答日時:
MySQL等とインターネット経由で直接接続する際は、通信路の暗号化も含めて、以下に注意する必要があります。
(1)通信路の暗号化
(2)接続先の認証(正しいサーバーと接続しているか)
(3)クライアントの認証
(4)MySQL等の脆弱性をついた攻撃への対処
上記が完璧であれば、理論的には、VPNなしに直接接続してもよいことになります。
しかし、現実にはそれは煩雑であるという理由から、MySQL等を直接インターネットに公開することは、あまり行われないのだと思います。MySQL等がそのような想定の設計になっていない可能性もありますし。
ということで、理論的には可能だが、現実には課題があるというのが結論です。
ありがとうございます。
実際には、MySQLと直接ではなく、間にPHPを挟んでいます。
特定のPHPファイルにhttpでアクセスし、Apacheがphpを動かしてやり取りします。
そのhttpの通信をSSLにするれば、通信自体の暗号化はクリアなのかなと思います。
この場合は、ご指摘いただいた注意点(1)から(4)のうち(4)は取り除かれるでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- VPN フリー wi-fi は安全ですか 自宅での wi-fi VPNを使用したら良い? 2 2022/05/31 04:12
- その他(セキュリティ) 役所など、情報系システムのセキュリティが弱くても業務システムに問題ないか 3 2022/11/02 16:38
- VPN VPNに接続すると、インターネットに接続できなくなります。 1 2022/06/19 22:51
- その他(インターネット接続・インフラ) アプリ利用者を特定し、裁判に 2 2022/06/09 21:43
- Wi-Fi・無線LAN ローソンで wi-fi 接続できませんでした スマホは OPPO A 73です 何がいけなかったか 4 2022/05/31 03:53
- その他(インターネット接続・インフラ) IPアドレスについて 2 2022/10/23 14:48
- VPN 無料のwifiはなぜ危険性高い? VPN プライベートDNSモードにすれば安全? 2 2022/06/04 18:23
- VPN VPNは設定した方がいいですか? VPNには常時接続するべき? 1 2023/05/25 17:43
- iPhone(アイフォーン) au→docomoのahamoへ キャリアメール引き継ぎたいです。 myauからアドレス持ち運びサー 1 2023/06/03 10:53
- その他(コンピューター・テクノロジー) 「プロトコル」の定義について 5 2023/04/16 13:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
社内ネットワークの1台だけ接...
-
Notesが使えない
-
コンピューター名とホスト名の...
-
サーバーってどこにあるの?
-
社内サーバーやサーバー内のフ...
-
リモートデスクトップの接続履...
-
Windows 10 homeでリモートデス...
-
時刻表示修正を自動的にするには?
-
リモートデスクトップ 同時接続数
-
インターフェースサーバーとは...
-
サーバーマネージャーが消えた
-
ネットワーク上のRPSってなんな...
-
他人のアドレスでメールってで...
-
ftpコマンドのput,mputの上書き...
-
サービスIPって何ですか?
-
ipconfigで、DNSが複数みえる
-
サーバールームは事務用スペー...
-
NTT-ME からの請求額
-
パス区切り文字(¥と/)
-
「OLEサーバーが登録されて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
社内ネットワークの1台だけ接...
-
Notesが使えない
-
サーバーってどこにあるの?
-
インストールしたてのVirtualBo...
-
コンピューター名とホスト名の...
-
VPNにしたらODBCがSqlServerを...
-
リモートデスクトップの接続履...
-
社内サーバーやサーバー内のフ...
-
一台を親機(サーバー)として...
-
DHCPからIPアドレスの取得が出...
-
サーバー(ActiveDirectory)へ...
-
VPN接続をすれば学外からCinii...
-
リモートデスクトップ 同時接続数
-
Windows 10 homeでリモートデス...
-
会社内ネットワークにログイン...
-
パソコン内部時計の修正
-
プロキシ接続しているはずなの...
-
PS4 APEX 「サーバーへの切断が...
-
リモートデスクトップで認証エラー
-
FTPと情報漏えい
おすすめ情報