SoftEtherをUbuntuとWinにインストール

Windows(サーバー)

公式サイトのSoftEther VPNのダウンロードから、
ダウンロードするソフトウェア:SoftEther VPN(Freeware)
コンポーネントを選択:SoftEther VPN Server
プラットフォームを選択:Windows
CPUを選択:Intel(x86 and x64)

SoftEther VPN Server and VPN Bridge (Ver xxx, Build xxx, rtm)
をダウンロード、インストール。

・最初の選択画面でSoftEther VPN Serverを選択。
(管理ツールも一緒インストールされる)

管理者パスワードを設定する。(ユーザーのパスワードとは別なので注意)
リモートアクセス VPN サーバーを選択する。
仮想HUB名を設定する。(特に変更の必要なし)
ダイナミック DNS ホスト名を変更する。
IPsec,L2TP,EtherIP,L2TPv3はチェックしない。
VPN Azureを有効にする。
ユーザーを作成する。
ローカルブリッジで、LANカードを選択する。
SoftEther VPN サーバー管理マネージャを起動し、”接続設定の編集”から、”管理者パスワードを保存しない”にチェックする。
接続設定名を変更し、”このコンピュータ(localhost)に接続(443ポート)”にチェックする。

途中からダイナミックDNSを有効にする場合、
サーバー管理マネージャ>接続>Config編集
DDnsClient>bool Disabled をfalseにする。

Windows(クライアント)

公式サイトのSoftEther VPNのダウンロードから、
ダウンロードするソフトウェア:SoftEther VPN(Freeware)
コンポーネントを選択:SoftEther VPN Client
プラットフォームを選択:Windows
CPUを選択:Intel(x86 and x64)

SoftEther VPN Client (Ver xxx, Build xxx, rtm)
をダウンロード、インストール。

・最初の選択画面でSoftEther VPN Clientを選択。
(管理ツールも一緒インストールされる)

1.新しい接続設定の作成
を実行し仮想LANカードを作成する。

2.仮想LANカードにIPを設定する。
現在利用しているのとは別ネットワークで、設定はIPアドレスとサブネットマスクだけでOK。例えば現在のネットワークが192.168.1.xだったら、仮想LANカードには192.168.2.xというように。

3.新しい接続設定の作成
を実行する。

・接続設定名:
適当に入力する。

ホスト名:
サーバーがあるLANのグローバルIP/サーバーのローカルIPというように記入する。

・ポート、ユーザー名、パスワード:
サーバーで設定した値を入力する。

・高度な通信設定:
コネクションを8本に変更する。
半二重モードを使用するにチェックする。
VPN Serverとの間の通信をSSLで暗号化するにチェックする。

・サーバー証明書を必ず検証する:
チェックする。
初回のみ、
固有証明書の登録をクリック>ファイルから証明書を読み込む
にて登録。(証明書の書き出しはサーバー管理マネージャ>接続>暗号化と通信関係の設定>エクスポート)

作成した接続設定の右クリックから、スタートアップ接続を指定する。

UbuntuにServer

wget http://jp.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/32bit_-_Intel_x86/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x86-32bit.tar.gz

tar -zxvf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x86-32bit.tar.gz

cd vpnserver

make

もしmakeで落ちるなら、
sudo apt-get install build-essential
を実行してみる。

sudo ./vpnserver start

仮想ブリッジの作成

まず、追加設定を読む。br0の仮想ブリッジは最終的には利用していない。

sudo apt-get install bridge-utils

/etc/network/interfacesの編集し、

ここでの設定した内容に以下を追加。

service networking restart

Win端末からSoftEther VPN Server Manager for Windowsを実行

接続名は適当
ホスト名はUbuntu側のIP
ポートは1194
であとはそのまま接続。

管理者パスワードを設定する指示があり、
簡易セットアップが開くので、リモートアクセスVPNサーバーにチェックして次へ。

仮想HUBを聞かれるのでそのままVPNで、
次のページに表示されるダイナミックDNS情報メモしておく。

次のIPsecはそのままOK。

次のVPN Azureは無効でもいいけど、ここでは有効にして、
ホスト名をメモしておく。

次のページでユーザ作成をおこなう。
ユーザ名を入力して、認証をパスワードにし、パスワードを入力してOK。

ローカルブリッジ設定を開き、仮想HUBを選択して、
新しいtapデバイスとのブリッジ接続で、追加する。
デバイス名は、ここではvpnとした。

以下のコマンドを実施(しなくても繋がった?)
sudo brctl addif br0 tap_vpn

Ubuntuにつなぐクライアントの設定

今回Winのクライアント.

仮想LANカードを作成しIPは192.168.103.2

新しい接続で、ホスト名にダイナミックDNSのIP、
或いはグローバルIPを入力。参考

ポートは1194

仮想HUBはVPN

ユーザ認証にubunt側で作成したユーザ情報を入力

とりあえずこれでつながる。

/etc/rc.local に vpnserver のスタートを追記しておく。

こちらも参考

追加設定

br0に違うセグメントのアドレス(103)を固定しているのに、
vpnserver側のセグメント(102)が見える。

少し考えて。

brctl showとすると、br0というブリッジができており、interfaceはtab_vpnとなっている。

そもそも、tapデバイスがvpnserver側の内部(ubuntu)と通信できない?と考え、
tap_vpnをブリッジ(br0)してbr0にipを固定していた。
(vpnserverの実際のnicとtapデバイスをブリッジ(br0)するという説明が多いので、後々調べる予定)

今回はvpnserver機だけクライアントから見えればいいので、もっと単純に考え、
tapデバイス(仮想lanカードのようなもの?)については、
softether側でsoftetherの仮想hubとtapデバイスでブリッジが作成されているのだから、
tapデバイスに103のセグメントで固定アドレスをすれば解決なのでは?

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
address 192.168.102.15
netmask 255.255.255.0
gateway 192.168.102.1
dns-nameservers 192.168.102.1
wpa-ssid xxx
wpa-ap-scan 1
wpa-key-mgmt WPA-PSK
wpa-psk xxx

auto tap_vpn
iface tap_vpn inet static
address 192.168.103.1
netmask 255.255.255.0

予想通り、これで繋がった。
ただ、これでもクライアントからvpnserver側のセグメント(102)が見える。

ip6を無効

/etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
sudo sysctl -p

APIPAの無効化

ネット上だとcentばかりでubuntuはほとんどなかったが、

/etc/networks
をコメントアウトすると表示が変わる。

sudo route del -net 169.254.0.0 netmask 255.255.0.0
かあるいは、
sudo route del -net link-local netmask 255.255.0.0
で消えた。

この時点でもvpnserver側のセグメント(102)が見えるが、
そもそも、クライアントからnet viewすると見えるので、
IP云々よりWinのブラウズリストの関係かと思う。

恐らく、WINSサーバがいなければブロードキャストで通信するので、
プロトコルを調べてufwで弾くことに。

ファイアーウォール(ufw)で設定

/etc/default/ufw
IPV6=no

重複ナンチャラがでるので、
sudo rm apache2-utils.ufw.profile
を削除。

sudo ufw status
状態確認

sudo ufw enable
有効化

sudo ufw reload
リロード

ufw delete 1
ルール削除の場合。

以下、ルール追加
sudo ufw limit from 192.168.102.0/24 to any port 22

sudo ufw allow 137/udp
(これをやらないとwinのブラウジングが止められる)

sudo ufw allow 138/udp
sudo ufw allow 139/tcp
sudo ufw allow 445/tcp
(sambaで必要)

137/UDPが原因だった。とりあえずこれで解決。

sudo ufw allow 80/tcp
sudo ufw allow 3000/tcp
(rails用)

ログのパス(syslogにでているけど)
/var/log/ufw.log

iptables: Chain already existsとエラーがでる場合。
sudo ufw disable
sudo iptables -F
sudo iptables -X
sudo ufw enable

ファイルのアクセス権限設定

ps -aux
で表示された、vpnserverのプロセスを落とす

vpnserverに移動する。
sudo chmod 600 *
sudo chmod 700 vpncmd
sudo chmod 700 vpnserver