自宅外から自宅のネットワークにアクセスできるようにする。
概要:
VPNサーバーとして Softether をインストールし、VPN接続で 自宅外から SSH接続やネットワークドライブ(samba) へのアクセスを行えるようにする。
手順:
- bridge-utils のインストール
VPN接続でVPNサーバー自身(VPNサーバーをインストールした raspberry pi) にアクセスできるようにする為、仮想ブリッジを経由して物理NICアクセスする必要がある。- bridge-utils をインストールする
$ sudo apt install bridge-utils
- /etc/network/interfaces に設定を追加
$ sudo vi /etc/network/interfaces
auto br0 iface br0 inet manual bridge_ports eth0 <--- ブリッジ接続するポートを設定 bridge_maxwait 10
-
dhcpcd.conf でIPアドレスを設定する。
$ sudo vi /etc/dhcpcd.conf
denyinterfaces eth0 interface br0 static ip_address=192.168.1.91/24 static routers=192.168.1.1 static domain_name_servers=192.168.1.1 8.8.8.8
ブリッジ(br0) に IPアドレス等を設定する。
ブリッジ接続するポート(eth0) の 設定は削除(コメントアウト) し、
denyinterfaces で DHCP によるIPアドレスの割り当てが無いようにする。
denyinterfaces の 設定は、ポートの設定(他ポートも含む)よりも前に記述する。
- リブートする
$ sudo reboot
リブートして、ifconfig 等で設定を確認する。
- bridge-utils をインストールする
- SoftEther のインストール
- SoftEther ソフトウェアの URL 確認 (WEBブラウザで確認)
SoftEtherダウンロードセンターにアクセスする。
「コンポーネントを選択」で 「SoftEther VPN Server」 を選択
「プラットフォームを選択」で 「Linux」を選択
「CPU を選択」 で 「ARM EABI (32bit)」を選択
最新版のダウンロードファイルのURL を取得する。
( 右クリック して リンクのアドレス(URL)を コピーする )
- SoftEther ソフトウェアをダウンロードし、解凍する。
以降は root で作業を行う。
任意のディレクトリで、
$ su
# wget [取得した URL]
# tar zxvf [ダウンロードしたファイル名]
--> vpnserver ディレクトリができる。
- Make を実行
vpnserver ディレクトリに移動して make を実行する。
# cd vpnserver
# make
--> licence agreement を読み (1を選択)、同意 (1を入力) する。
( Ver 4.38 では 入力の要求は無かった。 2021.09/25 )
- vpnserverディレクトリを /usr/local に移動する。
# cd ..
# mv vpnserver /usr/local/
- パーミッションを変更
# cd /usr/local/vpnserver
# chmod 600 *
# chmod 700 vpncmd
# chmod 700 vpnserver
- 自動起動のサービスを作成する
# vi /etc/systemd/system/vpnserver.service[Unit] Description=SoftEther VPN Server After=network.target network-online.target [Service] User=root ExecStart=/usr/local/vpnserver/vpnserver start ExecStop=/usr/local/vpnserver/vpnserver stop Type=forking RestartSec=3s WorkingDirectory=/usr/local/vpnserver/ #ExecStartPost=/bin/sleep 10 ; brctl addif br0 tap_vlan [Install] WantedBy=multi-user.target
コメントアウトした行は、管理マネージャで tap を設定した後、コメントアウトを解除する。
- サービスを起動する
# systemctl start vpnserver
起動確認
# systemctl status vpnserver.service
- 自動起動を有効にする
# systemctl enable vpnserver.service
- リブートして、サービスを確認する
# reboot
$ sudo systemctl status vpnserver.service
- SoftEther ソフトウェアの URL 確認 (WEBブラウザで確認)
- 管理マネージャーの設定
- Windows PC に管理ソフトウェアをインストールする。
SoftEtherダウンロードセンターにアクセスする。
「コンポーネントを選択」で
「SoftEther VPN Server Manager for Windows」 を選択
「プラットフォームを選択」で
「Windows (.Zip package without installeers)」を選択
ダウンロードしたファイルを解凍し、vpnsmgr.exe を起動する。
- SoftEther VPN Server への接続設定
「新しい接続設定」をクリック
「接続設定名」 に接続先の 任意の名前を設定
「ホスト名」 に SoftEther VPN Server をインストールした raspberry pi のIPアドレスを設定
「ポート番号」に 443 を設定
「OK」 を押下
- SoftEtheer VPN Server へ接続
「接続」をクリック
管理者のパスワード設定ダイアログが開くので、パスワードを設定。
- 簡易セットアップ
SoftRther VPN Server / Bridge 簡易セットアップ ダイアログが開くので以下を設定。
「リモートアクセス VPN サーバー」にチェックして 「次へ」を押下
「はい」を押下
「仮想 HUB 名」を入力し、「OK」を押下。(Default は VPN)
「ダイナミック DNS ホスト名の変更」に任意の名前を設定し「閉じる」を押下
「L2TP over IPsec」 にチェックし、上で入力した仮想HUB名を選択。
事前共有鍵(9文字以内推奨)を決めてOKをクリックする。
「VPN Azure 無効にする」を選択して「OK」 を押下。
「VPN 接続を受け入れるためのユーザーの作成」で、「ユーザを作成する」を押下。
「ユーザー名」に任意の名前 を入力、
「認証方法」にパスワード認証 を選択、
「パスワード認証」にパスワード を設定して 「OK」を押下
確認画面で OK を押下する。
作成したユーザ名が表示されたら、閉じるを押下する。
「ローカルブリッジの設定」で、raspberry pi の LAN のポート名 (eth0 等)を選択して 閉じる を押下。
- ローカルブリッジの設定
「ローカルブリッジ設定」を押下
上で設定した仮想HUB を選択して、「ローカルブリッジの削除」を押下
「新しいローカルブリッジの定義」で
「仮想HUB名」を入力。(例えば VPN)
「作成する種類」で 「新しいtapデバイスとのブリッジ接続」を選択
「新しいtapデバイス名」を設定。(例えば、vlan)
「ローカルブリッジを追加」を押下。
「閉じる」を押下
「暗号化と通信関係の設定」を押下
「暗号化アルゴリズム名」を「DHE-RSA-AES256-SHA」に変更して「OK」を押下
- 自動起動のサービスの修正
$ sudo vi /etc/systemd/system/vpnserver.service
自動起動サービスの コメントを外す。
ローカルブリッジの設定で 「新しいtapデバイス名」を vlan 以外に設定した場合は、”tap_vlan" を "tap_[新しいtapデバイス名]” に変更する。
- raspberry pi をリブートする
管理マネージャを閉じ、raspberry pi をリブートし、tap が ブリッジされている事を確認する。
$ sudo reboot
$ brctl show br0
bridge name bridge id STP enabled interfaces br0 8000.5ea8b6f10493 no eth0 tap_vlan
- Windows PC に管理ソフトウェアをインストールする。
- ルータ設定
ルータのポートマッピングで、500/UDP, 4500/UDP を ラズベリーパイのIPアドレスにマッピングする。
設定方法は、各ルータのマニュアルを参照。
- ファイアウォール解放
ラズベリーパイのファイアウォール設定で、500/UDP, 4500/UDP を通過させるように設定する。
sudo ufw allow 500/udp
sudo ufw allow 4500/udp
- 通信確認
スマホ等からVPN 接続できることを確認する。
・android の場合の例 (4G 等で接続)
設定 - ネットワークとインターネット - VPN
で、右上の + をクリックし、VPNプロファイルの編集を行う。
(機種 や android バージョンによって 異なるかも)
名前 : 任意の名前
タイプ :L2TP/IPSec PSK
サーバーアドレス:ダイナミック DNS ホスト名 に設定した名前
IPSec事前共有鍵 :設定した 事前共有鍵
ユーザ名 :設定した ユーザ名
パスワード :設定した パスワード
等を設定して保存後、接続できる事を確認する。
(スマホは、4G 等の異なるネットワーク で接続していること。)
・Windows10 の場合の例 (テザリング等で接続)
設定 - ネットワークとインターネット - VPN
で、 +(VPN接続を追加する) をクリックし、VPN接続を追加する。
VPNプロバイダー :Windows(ビルトイン)
接続名 : 任意の名前
サーバー名またはアドレス:ダイナミック DNS ホスト名 に設定した名前
VPNの種類 :事前共有キーを使ったL2TP/Ipsec
事前共有キー :設定した 事前共有鍵
サインイン情報の種類 :ユーザー名とパスワード
ユーザ名 :設定した ユーザ名
パスワード :設定した パスワード
等を設定し、接続できる事を確認する。
(Windows は、テザリング等 の異なるネットワーク で接続していること。)
- LOG の所在
VPNサーバーインストールディレクトリ下に log ディレクトリがある。
接続できない場合等、server_log ディレクトリ内の log を確認して原因調査を行う。
/usr/local/vpnserver/server_log/vpn_********.log
0 件のコメント:
コメントを投稿