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

WindowsにServerとClient

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

Clientの設定

SoftEther VPN Clientをダウンロードする。
インストールするソフトウェアで”SoftEther VPN Client”を選択する。
新しい接続を作成を実行し、仮想LANカードを作成する。
仮想LANカードにIPを設定する。(現在利用しているのとは別ネットワーク)
新しい接続を作成。ダイナミックDNSのIPを指定し、ポートを443に仮想HUBを自動で表示される。
サーバーで作成したユーザー、パスワードを入力する。
高度な通信設定で、コネクション(8本)&(SSL接続)&(データ圧縮)を指定する。
接続し、スタートアップ接続を指定する。

常時起動しているPCは、接続中の画面とエラー画面を非表示にチェックし、
再接続の時間を、3600秒(1時間)へ設定する。

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