0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Systemd で Sonicwall NetExtener を使う

Last updated at Posted at 2020-10-30

Sonicwall の SSL VPN クライアント を Systemd 経由で接続、切断ができるようにしました。

Unitファイルを作成

File: $HOME/.config/systemd/user/netextender.service

[Unit]
Description=SonicWall NetExtender VPN Client

[Service]
Type=forking
ExecStart=%h/bin/netext start
ExecStop=%h/bin/netext start

[Install]
WantedBy=default.target

開始スクリプトを作成

File: $HOME/bin/netext

# !/bin/bash
CONF=$HOME/.vpn

function start() {
  # Start netExtender
  /usr/sbin/netExtender <$CONF &
  exit 0
}

function stop() {
  PID=$(pgrep netExtender)
  if [ -z "$PID" ]; then
    echo "netExtender not running."
    exit 2
  fi

  # send SIGTERM Signal
  kill -s SIGTERM $PID > /dev/null 2>&1

  while :; do
    pgrep netExtender > /dev/null
    if [ $? -ne 0 ]; then
      echo "netExtender stopped"
      break
    fi
    sleep 1
  done
  exit 0
}

case $1 in
"start")        prepare_start && start; break;;
"stop")         stop; break;;
esac

接続情報

テキストファイルに次の接続情報を記述します。

  1. VPNサーバー:ポート
  2. ユーザ名
  3. パスワード
  4. ドメイン

$HOME/.vpn に接続情報を記述します。

$ cat <<EOF > ~/vpn
vpn.example.com:4433
takeume2
hogehoge
LocalDomain
EOF

パーミッションを設定します。

$ chmod 0600 ~/vpn

Systemd をリロードして反映します。

$ systemctl --user daemon-reload

使い方

  • systemctl --user status netextender : ステータス確認
  • systemctl --user stop netextender : 切断
  • systemctl --user start netextender : 接続する

接続する

$ systemctl --user stop netextender
$ systemctl --user status netextender
● netextender.service - SonicWall NetExtender VPN Client
   Loaded: loaded (/home/takeume2/.config/systemd/user/netextender.service; indirect; vendor preset: enabled)
   Active: active (running) since Fri 2020-10-30 23:28:11 JST; 46min ago
  Process: 9393 ExecStart=/home/takeume2/bin/netext  (code=exited, status=0/SUCCESS)
 Main PID: 9394 (netExtender)
   CGroup: /user.slice/user-1000.slice/user@1000.service/netextender.slice/netextender.service
           ├─9394 /usr/sbin/netExtender
           ├─9399 pppd call sslvpn mtu 1280 mru 1280
           └─9466 /usr/sbin/nxMonitor

10月 30 23:28:10 lemur6 systemd[3608]: Client IP Address: 10.254.128.12
10月 30 23:28:10 lemur6 systemd[3608]: You now have access to the following 1 remote networks:
10月 30 23:28:10 lemur6 systemd[3608]:     10.0.0.0/255.0.0.0
10月 30 23:28:10 lemur6 systemd[3608]: NetExtender connected successfully. Type "Ctrl-c" to disconnect...
10月 30 23:28:11 lemur6 systemd[3608]: Started netExtender VPN Client

切断する

$ systemctl --user stop netextender
$ systemctl --user status netextender
● netextender.service - SonicWall NetExtender VPN Client
   Loaded: loaded (/home/takeume2/.config/systemd/user/netextender.service; indirect; vendor preset: enabled)
   Active: inactive (dead) since Sat 2020-10-31 00:19:30 JST; 16s ago
  Process: 9393 ExecStart=/home/takeume2/bin/netext (code=exited, status=0/SUCCESS)
 Main PID: 9394 (code=exited, status=0/SUCCESS)

10月 31 00:19:24 lemur6 pppd[9399]: Terminating on signal 15
10月 31 00:19:30 lemur6 pppd[9399]: Connection terminated.
10月 31 00:19:30 lemur6 pppd[9399]: Modem hangup
10月 31 00:19:30 lemur6 pppd[9399]: Exit.
10月 31 00:19:30 lemur6 nete[9393]: SSL VPN logging out...
10月 31 00:19:30 lemur6 nete[9393]: SSL VPN connection is terminated.
10月 31 00:19:30 lemur6 nete[9393]: Exiting NetExtender client
10月 31 00:19:30 lemur6 systemd[3608]: Stopped netExtender VPN Client

自分用メモ

  • ~/.netExtender.log にログが出力されるので Systemd の User モードにした。
  • 自動起動しても Network Unreachable になる。Systemd User モードの場合の、依存関係がよくわからない。
  • 実行用ユーザを作って systemd から起動したほうが良さげ。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?