UbuntuでVPNサーバーを立ち上げたときのメモ。
参考
以下のサイトに従う。
- clientからの接続にはアカウント名に@VPN(HUB名)をつける。
- ubuntuでは自動起動にはsysv-rc-confを使う。
やりたいこと
普通にVPNサーバー立ち上げるだけならば参考URLで十分なのだが、このままだとVPNサーバー自体にsshで入れない。
そのため、以下を実現するためには追加で設定が必要である。
- VPNサーバー自体にsshで外から入る。
現状
- linuxの仕様上無理ぽ
マジか。。。
対処法
- 仮想NICを作ってブリッジしてうんたらかんたらするといけるらしい。
- まずはvpnサーバーのNetwork-managerを削除
- その後
sudo vim /etc/network/interfaces
で以下のように設定する。
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet manual
# VPN
auto br0
iface br0 inet static
address 192.168.1.XXX
netmask 255.255.255.0
gateway 192.168.1.X
dns-nameservers 192.168.1.X
bridge_ports eth0
bridge_maxwait 10
-
VPN管理ツールから仮想HUBをブリッジで作成。(tap-vtap)
-
さらに
sudo vim /etc/init.d/vpnserver
より
#!/bin/sh
### BEGIN INIT INFO
# Provides: vpnserver
# Required-Start: $local_fs $network
# Required-Stop: $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: SoftEther VPN 1.0 RC2
# Description: Start vpnserver daemon SoftEther VPN 1.0 Server
### END INIT INFO
DAEMON=/usr/local/bin/vpnserver/vpnserver
LOCK=/var/lock/vpnserver
. /lib/lsb/init-functions
test -x $DAEMON || exit 0
case "$1" in
start)
sleep 3
log_daemon_msg "Starting SoftEther VPN 1.0 Server" "vpnserver"
$DAEMON start >/dev/null 2>&1
touch $LOCK
log_end_msg 0
sleep 3
tap=tap_vtap
/sbin/brctl addif br0 $tap
;;
stop)
log_daemon_msg "Stopping SoftEther VPN 1.0 Server" "vpnserver"
$DAEMON stop >/dev/null 2>&1
rm $LOCK
log_end_msg 0
sleep 2
;;
restart)
$DAEMON stop
sleep 2
$DAEMON start
sleep 5
tap=tap_vtap
/sbin/brctl addif br0 $tap
;;
status)
if [ -e $LOCK ]
then
echo "vpnserver is running."
else
echo "vpnserver is not running."
fi
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
- 最後に再起動
sudo reboot
これでVPNサーバー自体にsshで入ることができる。