LoginSignup
8
18

More than 5 years have passed since last update.

VyOSでプライベートIPの自宅ネットワークにリモートアクセスしたい!(環境構築編)

Last updated at Posted at 2017-08-14

我が家はマンション専用プロバイダと契約していることもあり、DHCPでプライベートIPアドレス(10.XXX.YYY.ZZZ/22)がマンション側で管理している機器から振ってくる。そのため、外部から自宅にリモートアクセスするには別のグローバルIPがもらえるプロバイダとの契約しかないと思っていた。
しかし、その打開策を考えたので今回はそのネットワーク環境を構築していく。

ネットワーク図

自宅VPN_ネットワーク図.jpg
簡単な説明としては、さくらクラウドにVyOS(グローバルIP付き)を一台立てて、それと自宅のVyOSをVPN(OpenVPN)で接続する。また、外部から接続する場合は、さくらクラウドのVyOSにVPN(L2TP over IPsec)で接続する。これによって、リモートでのSSHアクセス等が可能になる。
その構築を「環境構築編」,「OpenVPN編」,「L2TP over IPsec編」と3つの記事で説明する。

環境構築編

本記事では、さくらクラウド及び自宅のVyOSの環境構築について説明する。中級者向けでサクサク書きます。

さくらクラウドのVyOS

※アカウント等を持っていない方は登録の上、利用をお願いします。
以下のようにVyOSの環境構築をしていく。

サーバ追加

スクリーンショット 2017-08-14 22.38.46.png

サーバプラン:1GB / 1仮想コア
ディスクプラン:20GB SSDプラン
パスワード等は任意

最後に[作成]ボタンを押す!

VyOS設定

eth0やdefault gateway等の設定は初期では入っているので、それを確認(show configuration)した上で以下のコマンドを入力。
VyOSユーザガイドを参考すると良いです。

※ さくらクラウドのwebコンソールを使って、set service ssh port 22だけ設定し、他はPCでSSH接続で作業した方が早いです。

# 設定モードに入る
configure

# eth0にNATの設定を行う
set nat source rule 100 outbound-interface eth0
set nat source rule 100 translation address masquerade

# リモート管理用にSSHを有効にする
set service ssh port 22

# タイムゾーンの設定
set system time-zone Asia/Tokyo

# 変更のコミットおよび設定保存
commit
save

設定後、念のため外部との接続性を確認

$ ping example.com

自宅のVyOS

自宅のVyOSを用意するために、今回はマンションのネットワークに繋がった汎用サーバ(Ubuntu16.04)上にKVMでVyOSを作成する。作成したVyOSはbridge接続を利用して自宅のルータとして動作させる。

KVMの環境構築

  • 必要パッケージのインストール
$ sudo apt-get install qemu-kvm libvirt-bin virtinst
  • Network Managerの無効化
    Network Managerはbridgeに対応していないため無効化する。
$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service
  • virbrの無効化
    KVMにVMを立てるとvirbr接続になるが、今回はbridge接続なので無効化する。
$ sudo virsh net-destroy default
$ sudo virsh net-autostart default --disable

ここらで一旦再起動。。。。

  • /etc/network/interfacesの編集
    自身の環境に応じてネットワークのaddress等の設定をする。 以下、/etc/network/interfacesの例
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
up /sbin/ifconfig eth0 promisc up

auto eth1
iface eth1 inet manual
up /sbin/ifconfig eth1 promisc up

auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_stp off
bridge_maxwait 1

auto br1
iface br1 inet static
address 192.168.10.2
network 192.168.10.0
netmask 255.255.255.0
broadcast 192.168.10.255
gateway 192.168.10.1
bridge_ports eth1
bridge_stp off
bridge_maxwait 1

networkingの再起動

$ sudo systemctl restart networking.service

VyOS仮想マシンをKVM上に構築

vyos.ioからVyOSのイメージをダウンロードする。また、作成場所は任意だが今回は/kvmディレクトリに作る。

$ mkdir /kvm
$ cd /kvm
$ wget http://packages.vyos.net/iso/release/1.1.7/vyos-1.1.7-i586.iso
$ chmod 644 vyos-1.1.7-i586.iso
  • vyos用の仮想ディスクファイルをストレージ2GBとして作成
$ qemu-img create -f qcow2 /var/lib/libvirt/images/vyos.qcow2 2G
  • イメージを利用して仮想マシンを起動していく
    (メモリ512MB,CPUコア数1,bridge1・2接続の指定)
$ virt-install \
  --name=vyos \
  --disk path=/var/lib/libvirt/images/vyos.qcow2 \
  --vcpus=1 \
  --ram=512 \
  --cdrom=/kvm/vyos-1.1.7-i586.iso \
  --network bridge=br0 \
  --network bridge=br1 \
  --os-type=linux \
  --os-variant=debiansqueeze
  • 起動後はユーザー名:vyos、パスワード:vyosでログインし、対話インストールを行い、一旦シャットダウンする。
$ intall system
---対話モードによるインストール---
$ power off

VyOS基本設定

KVM上のVyOSの設定を行っていく。

  • KVMのVyOS仮想マシンを起動して、コンソールログイン
$ virsh
$ list --all
$ start vyos
$ console [vyos仮想マシンのID(list --allで一番左に出る数字)]

ユーザー名:vyos、パスワード:vyosでログインする。

# 設定モードに入る
configure

# ホスト名を任意で設定
set system host-name vyos

#WAN側のIPアドレスの設定(今回はdhcp)
set interface ethernet eth0 address dhcp

#LAN側のIPアドレスの設定(外部からアクセスしたいネットワーク用)
set interface ethernet eth1 address 192.168.10.1/24

# eth0にNATの設定を行う
set nat source rule 100 outbound-interface eth0
set nat source rule 100 translation address masquerade

# リモート管理用にSSHを有効にする
set service ssh port 22

# タイムゾーンの設定
set system time-zone Asia/Tokyo

# 変更のコミットおよび設定保存
commit
save
  • 接続性を確認
--マンションGWルータへのping--
$ ping 10.xxx.yyy.1

--リモートでアクセスしたい機器へのping--
$ ping 192.168.10.xxx

--(重要)さくらクラウドのVyOSのグローバルIPにもpingで確認--
$ ping [さくらクラウドのVyOSのグローバルIP]

今回はここまで。次回は自宅VyOSとさくらクラウドVyOS間のOpenVPNについて書きます。

8
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
18