ちょっと必要があって自社のサーバーとVPSをVPN接続しようと思い、
簡単なのでSoftEtherを使うことにしました。
VPS側はNICが2本ありOSはUbuntuです。
SoftEtherのインストール方法はちまたに溢れているので割愛しますが、
インストールし起動してもNICにはIPが割り当てられません。
なので、固定で使いたい場合は”ip add”コマンドとかで追加してやる必要がありますが、
サーバーがなんかの理由で再起動したりしたときはまた手動で追加せねばいけません。
それはめんどくさすぎるのでスタートスクリプトをシェルで書いてサービス実行時に
シェルを実行させたら良い!っていう記事がいくつか見つかります。
でも、シェルすら作るのめんどいしブリッジタップの名前も変えねぇしな・・・
っていうズボラな筆者はスタートスクリプト側に書いちゃいました。
よかったらご参考にどうぞ
[Unit]
Description=SoftEther VPN Server
After=network.target auditd.service
[Service]
Type=forking
TasksMax=16777216
EnvironmentFile=-/etc/defaults/softether-vpnserver
ExecStart=/usr/libexec/softether/vpnserver/vpnserver start
ExecStartPost=/bin/sleep 3
ExecStartPost=/sbin/ip addr add 192.168.XXX.XXX/24 dev tap_vpn
ExecStartPost=/sbin/ip link set mtu 1280 dev tap_vpn
ExecStartPost=/sbin/ip route add 192.168.XXX.0/24 via 192.168.0.1 dev tap_vpn
ExecStartPost=/sbin/ip route add 192.168.XXX.0/24 via 192.168.0.1 dev tap_vpn
ExecStop=/usr/libexec/softether/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure
# Hardening
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=strict
RuntimeDirectory=softether
StateDirectory=softether
LogsDirectory=softether
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYSLOG CAP_SETUID
[Install]
WantedBy=multi-user.target
あとは仕上げに”systemctl daemon-reload”を実行してあげてください。
これでIP固定とMTUの値、Static routeが設定できちゃいます。
ほんとはStop時にIPを削除すべきだとか言われますが、
SfotEtherの仕様でStopするとブリッジタップも消えるので消さなくてもいいじゃんっていう
考え方なので好ましいか?と言われるとつっこみもあるかと思いますが、
動作には問題ないのでご家庭や社内のちょっとした環境では十分じゃないでしょうか。
当社ではVPN環境の構築も承っております。
お気軽にお問い合わせください!