グローバルIPがなくても外部からLANにアクセスしたい
前回、VPSサーバを借りることで、グローバルIPアドレスがない環境でNASを外部からアクセスできるようにする方法を紹介しました。VPSサーバをVPNサーバにして、NASをVPNクライアントとして常時接続しておく方法です。
今回は、NAS以外のLANにある端末もVPN経由でアクセスできるようにすることを目指します。状況としては下図のような状況で、出先でノートPCから家にあるPCへアクセスすることを目指します。
このためには、以下の4つの設定をする必要があります。
1. VPN接続したクライアントが192.168.1.*あてのアクセスを VPNへアクセスするように設定する
2. VPN内で192.168.1.*のアドレスはNASに送られるように設定する
3. NASはVPNから届いた192.168.1.*宛の通信を、LANに流すようにする。またLANから届いた10.8.0.*宛の通信をVPNに流すようにする
4. LAN内のPCから10.8.0.*にアクセスしようとした場合、NASへパケットを渡すようにしなければいけない
1. VPN接続したクライアントが192.168.1.*あてのアクセスを VPNへアクセスするように設定する
VPNに接続したクライアントは、前回した設定ではすべての通信をVPNを通してするわけではなく、10.8.0.*宛の通信のみをVPN経由で行うようになります。そのため、192.168.1.*にアクセスしようとすると、VPN経由ではなく普通にインターネットに192.168.1.*を探しにいってしまいます。
192.168.1.*のアクセスもVPNを通すようにするために、サーバの設定ファイルに
push "route 192.168.1.0 255.255.255.0"
という記述を追加します。これで、192.168.1.*宛の通信がVPNを通るようになります。
2. VPN内で192.168.1.*のアドレスはNASに送られるように設定する
前回、VPNサーバの設定ファイルに
username-as-common-name
client-config-dir ccd
という二行を足しましたが、そこにさらに次を追加します。
route 192.168.1.0 255.255.255.0
その上で(nasというユーザ名で、NASが接続している時)、前回さくせいした
ファイルに、
iroute 192.168.1.0 255.255.255.0
という一行を追加します。こうすることで、192.168.1.*宛のパケットが、NASに向かうようになります。
3.NASはVPNから届いた192.168.1.*宛の通信を、LANに流すようにする。またLANから届いた10.8.0.*宛の通信をVPNに流すようにする
IPフォワードという機能を有効にする必要があります。
こちらは、参考にしたページを紹介させていただきます。
Linuxでiptablesとかフォワーディングとか - mokky14's IT diary
ASUSTOR NASでも上記のページと同じ方法で、IPフォワードを有効にすることができました。
4. LAN内のPCから10.8.0.*にアクセスしようとした場合、NASへパケットを渡すようにしなければいけない
基本、192.168.1.* というアドレスから、10.8.0.*といったアドレスへ通信を行おうとしたら、デフォルトゲートウェイであるルータにまずはパケットを送ります。そのため、ルータが10.8.0.*宛のパケットを受け取ったら、NASヘ転送するように設定する必要があります。
ルータの設定の仕方は、ルータのメーカによって名称が違うようですが、例えばAterm(NEC)ならば、「静的ルーティング」という機能を使います。宛先アドレス「10.8.0.0/24」のゲートウェイをNASのアドレスを指定してあげることで、10.8.0.0/24宛のパケットをNASへまわすことができるようになります。
1〜4の設定をすることで、VPN接続したクライアントからLAN内のマシンにアクセスできるようになります。macの画面共有などVPN経由で試して見ましたが、ばっちり動作しました。
自宅サーバとして使用する基本
AS3102TはApacheなどの基本的なサーバとしての機能は、Webインターフェース(AMD)で設定することができます。
公式のサポートページなど色々説明がありましたので、参考にしながら設定すれば基本的な機能は使うことができます。
それ以上に色々しようと思った場合は、端末にSSHでアクセスできるようにして(ADMのサービスから端末を選択、SSHサービスを有効にする)、コマンドラインから各種設定を行うことで実現できます。
ASUSTOR NASのOSはAMDと書かれておりますが、カスタマイズされたLinuxのようです。ただ、通常のディストリビューションとは色々違うので、苦労します。
entware-ng
apt-getのようなパッケージ管理ツールですが、ASUSTOR NASではentware-ngというものが利用できます。entware-ngはApp Centralからインストールできます。まずはこれをインストールします。その後、SSHでログインし、色々必要なパッケージをインストールします。
(とりあえず必要なコマンド)
opkg update リストをアップデート
opkg list インストール可能なパッケージの一覧
opkg insall インストール
gccや、makeなどもこちらからインストールしないと使用できません。
インストールしたものは、基本/opt/binに格納されるようです。
場合によっては(元々入っているApacheで動かしているcgiからコマンドをよびだした時とか)、/opt/binにパスが通っていなくてエラーになることもあったので注意が必要です。
あともう一点注意点ですが、entware-ngではopkg installでインストールしても、ヘッダーファイルがインストールされません。
Using gcc (native compilation) · Entware-ng/Entware-ng Wiki · GitHub
にありますように、ヘッダーは別途インストールする必要があります。
初めまして
数年前、RAIDの復旧をミスしてデータを全ロストしてから、しばらくNASを使用していませんでした。しかし、クラウドストレージも使いにくく子供の写真なども増えてきて、やっぱNASが必要と今年初めに NASを新調しました。
4Kテレビや4Kビデオカメラを活かしたくて、4KのHDMI出力がついたASUSTOR 3102TというNASを買い、ANアンプに接続して使用しています。
書き込み速度などのNASとしての基本性能は上々と思いますが、なかなかHDMI出力を活かしたマルチメディアサーバとしては使えていません。なんとなく勿体無く思い、折角だし自宅サーバとして、活用してみようと思い立ち、色々したことを中心にこのブログにまとめていきたいと思います。