myQNAPcloudの仕組みを考察。より安全に利用する(前編)
myQNAPcloudをより安全に利用する(前編)
今年のGW前後でしょうか?QNAPのNASはQlockerというマルウェアに狙われ、一部の方のデータが人質にされてしまう(暗号化されてしまい、身代金が要求される)事件が発生しました。私のNASは幸いにも被害がなかったのですが、いったいどこから侵入してデータを暗号化したのか?私のNASは安全なのか?という疑問は私の中で残ったままでした。
NASに対して攻撃するためには、当然インターネットからNASにアクセスできる必要があり、その方法の一つとしてmyQNAPcloudという仕組みが提供されています。果たしてこの仕組みは安全なのか?より安全に利用するためにはどうしたらいいのか?を考察してみます。
※結論から言うと安全です。ご自身の「NASの使い方」に合わせて設定することでより安全に利用することができます。
考察に必要な事前知識についてもまとめていきます。雑にまとめますが、大枠では間違ってないと思います(ツッコミ歓迎)
前編で必要な知識について整理していく、後編で実際にmyQNAPcloudについて考察します。
ネットワーク上の他の機器にアクセスする。とは?
MACアドレスとIPアドレス
泥臭いところですが、この部分の説明を省いて話ができなさそうなので、この部分からまとめていきます。ネットワークケーブルを用いて通信をする場合、MACアドレス、IPアドレスを使って通信します。
MACアドレスは、Ethernetカード自体に割り当てられた識別記号で、世界中を探し回っても同じMACアドレスとなる機器は1つしかありません。
IPアドレスは、MACアドレスを人間にもわかりやすくした識別記号で、192.168.11.100といったような数字で表されます。
身の回りのものでいうと、住所で考えてみるのがわかりやすいと思います。
MACアドレスは、絶対的な場所を示す、GPSでの位置情報。
IPアドレスは、住所のようなものです。
ある特定の場所を示す場合、例えば「新宿」や「銀座」という地名は日本中至る所にありますが、GPSの位置情報で表すと数ある新宿の中でも1カ所だけを示すことができる。といった感じです。
ネットワークアクセスの仕組み
まず最初に、192.168.11.100は「192.168.11.201」というアドレスをどの機器が持っているかを調べるために、ARPという問い合わせを行います。これは、ネットワークにつながっている機器全てに対して「192.168.11.201というアドレスを使っていますか?使っていたら返事を下さい」という問い合わせ内容になります。
この問い合わせに対して、192.168.11.201というアドレスを使っている機器は「私がそのアドレスを使っています。MACアドレスは、01:23:45:67:89:aeです。」と返答します。
この返答を受け取ったのち、192.168.11.100の機器は、192.168.11.201宛てのデータを01:23:45:67:89:aeに向けて送信します。
ここで押さえておきたいポイントは「ARPをネットワークにつながっている機器すべてに送信する」というポイントです。このような通信をブロードキャスト通信といいます。
機器が多くなればなるほど、通信が多くなればなるほどこのアドレス解決のためのARP通信が多くなってしまいます。そして、しまいにはブロードキャスト通信ばかり発生してまともな通信もできなくなってしまうので、実際には「ネットワークを分割して使用する」ということを行います。
ネットワークアドレス
ネットワークを分割するためには、ネットマスクを使用します。
このようなネットワーク設定の場合について考えてみます。192.168.11.100という機器は、ネットマスク255.255.255.0に設定されています。この場合のネットワークアドレスは、IPアドレス「192.168.11.100」とネットマスク「255.255.255.0」の論理積を取って(IPアドレスに対して、ネットマスクで1になっている部分のみが残ります。)192.168.11.0がネットワークアドレスとなります。
図の右側の方だと、ネットワークアドレスは「192.168.12.0」になります。
ネットマスクはこちらのように、255.255.255.0と記述することもあれば、192.168.11.100/24のように先頭から1が続くビット数で表現する場合もあります。
このようにネットワークを分割することで、192.168.11.xの機器にしかブロードキャストパケットが送信されないようになり、また、同じく192.168.12.xの中でしかブロードキャストパケットが送信されなくなります。
じゃあ、192.168.11.100は、192.168.12.201のアドレス解決ができないので、通信ができないのか?というと、その通りで、2つのネットワークをつなげるために「ルーター」を使います。
「ルーター」の役割は「宛先不明のパケットを受け取って、それを適したネットワークに転送する」ことです。これをルーティングといいますが、ルーティングするのでルーターです。
IPアドレスを手動で設定したことがある人は「デフォルトゲートウェイ」という言葉を見たことがあると思います。デフォルトゲートウェイは「宛先がわからなかった場合にとりあえずパケットを投げつける先」という意味合いです。
なので、通常インターネットへの入り口(家庭内ネットワークから別のネットワークへの接続点)となるルーターを示していることが多いと思います。
ポート番号
IPアドレスとMACアドレスを使って、目的のネットワーク機器と通信をすることができます。ただこれ、現実に置き換えて言うと「家を特定した。その家の主人と話したいのだけど、どうしたらわからない。」という状態です。
ご主人に話をしたいのであれば、ちゃんと「ご主人」に話をしなくてはいけません。「その家の誰に話したいか?」=「ネットワーク機器のどのサービスにデータを送りたいか?」を指名するために必要な情報が「ポート番号」です。
例えば通常は、80だったり8080でウェブサーバーが稼働していることが多いです。sshであれば22番。telnetであれば23番、ftpであれば20/21番といった形で決まっています。
IPアドレスとあわせて簡単に表現する場合は、192.168.11.100:80といった形でポート番号を表現することがあります。
インターネットルーター
ルーターは基本的に双方向の通信を行います。ただし、インターネットとの境界にルーターを置いてしまうと、インターネットから自宅内への通信ができてしまいます。そこで、市販されているWiFiルーターなどは「NAT」という仕組みをサポートしています。これは、簡単に言ってしまうと「自宅→インターネットへの通信は通すけど、インターネット→自宅といった通信は基本的には通しません」という動きをします。
また逆に、wordpressなどを使ってインターネットに向けてサービスを行い場合は、ルーターに対して「ポートフォワード」を設定してあげる必要があります。「ポートフォワード」とは、インターネットからルーターの特定のポートにアクセスが発生した場合に、自宅ネットワーク内の特定の機器にデータをそのまま転送する設定です。
これにより、通常は「インターネット→自宅への通信は通しません」という動きをするものの特定のポートへのアクセスであった場合はそのアクセスをそのままNASに転送する(=インターネットからアクセスできる)ことができるようになります。
なお、「ポートフォワード」は、
1. 通常UPnPで自動的に設定する方法と、
2. ルーターで手動でせて設定する方法
の2つの方法で設定が可能です。
コメント
コメントを投稿