CentOS 7 minimalからPacketix VPNへ接続する。
CentOS7でPacketix VPN Clientを使って動作させるまでの手順を記載します。
基本的にはこの記事のコード部分をCLIで実行するだけです。
前提
- CentOS 7 minimal
作業内容
必要なパッケージをインストール
yumを使って必要なパッケージをインストールします。
sudo yum groupinstall "development tools"
sudo yum install bzip2-devel gdbm-devel libffi-devel \
libuuid-devel ncurses-devel openssl-devel readline-devel \
sqlite-devel tk-devel wget xz-devel zlib-devel
Packetix VPN Client
Packetix VPNを公式からダウンロードします。wgetを使います。
ダウンロードと解凍
yum install wget
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.32-9731-beta/softether-vpnclient-v4.32-9731-beta-2020.01.01-linux-x64-64bit.tar.gz
tar xfz softether-vpnclient-*-linux-x64-64bit.tar.gz
インストール
cd vpnclient
make
# Yesの1を3回入力
# 元のディレクトリへ移動
cd ../
# ダウンロードしたものを削除
rm softether-vpnclient-*-linux-x64-64bit.tar.gz
ソフトウェアの移動と権限の変更
# ディレクトリ移動
sudo mv vpnclient /usr/local/.
# 権限変更
chmod 600 /usr/local/vpnclient/*
chmod 700 /usr/local/vpnclient/vpncmd
chmod 700 /usr/local/vpnclient/vpnclient
# vpncmdを実行してヘルスチェック
/usr/local/vpnclient/vpncmd
# 3を押す。
# ヘルスチェック
VPN Tools>check
# 設定画面終了
VPN Tools>exit
Firewallの設定
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --zone=public --add-port=992/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5555/tcp --permanent
sudo firewall-cmd --reload
VPN Clientを起動
vpncmdを使うために、vpnclientを起動します。
sudo /usr/local/vpnclient/vpnclient start
https://www.itcore.jp/tips/softether_client.php
サービス化など
http://harukarium.sblo.jp/article/184766762.html
VPN Clientで設定
vpncmdでNicカードを作ります。また、vpnの接続先を設定します。XXX
を適宜修正してください。
# Nicを作成
sudo /usr/local/vpnclient/vpncmd /client localhost /cmd NicCreate vpns
# SERVERの設定
sudo /usr/local/vpnclient/vpncmd /client localhost /cmd AccountCreate vpn_th /SERVER:XXX.XXX.XXX.XXX:XXXX /HUB:VPN-Hub /USERNAME:user_name /NICNAME:vpns
# SERVERに接続するためのパスワードを入力
sudo /usr/local/vpnclient/vpncmd /client localhost /cmd AccountPasswordSet vpn_th /TYPE:standard
インターフェースの設定
以下を実行してネットワークアダプタ用のファイルを作成します。
# 一旦vpnclient停止
# ファイルの命名規則は/etc/sysconfig/network-scripts/ifcfg-vpn_設定した名前
# NM_CONTROLLED=”no”にしないとエラー
# http://frym.jp/?p=1377
sudo cat << '_EOT_' | sudo tee /etc/sysconfig/network-scripts/ifcfg-vpn_vpns
BOOTPROTO=none
PEERDNS=no
DEVICE=vpn_vpns
ONBOOT=yes
USERCTL=no
NM_CONTROLLED=no
IPADDR=192.168.XXX.XXX
NETMASK=255.255.255.0
_EOT_
ネットワークの再起動と確認
# ネットワーク再起動
sudo systemctl restart network
# ステータス閲覧
sudo systemctl status network
# デバイスのダウン
# sudo ifdown vpn_vpns
# デバイスのアップ
# sudo ifup vpn_vpns
# ネットワークログ確認
sudo journalctl -xe
サービス化
vpnclientの起動と終了をサービス化します。
sudo cat << '_EOT_' | sudo tee /etc/systemd/system/vpnclient.service
[Unit]
Description=SoftEther VPN Server
Before=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnclient/vpnclient start
ExecStop=/usr/local/vpnclient/vpnclient stop
_EOT_
sudo systemctl start vpnclient
sudo systemctl enable vpnclient
sudo systemctl status vpnclient
開始と終了
開始
# ネットワークの再起動
sudo systemctl restart network
# クライアントの起動(手動)
# sudo /usr/local/vpnclient/vpnclient start
# vpnの接続
sudo /usr/local/vpnclient/vpncmd /client localhost /cmd AccountConnect vpn_th
確認
# 動作しているか起動中のデバイスの表示
sudo nmcli device show vpn_vpns
# 接続先のPingで確認
ping 192.168.XXX.XXX
終了
# 切断
sudo /usr/local/vpnclient/vpncmd /client localhost /cmd AccountDisconnect vpn_th
# 停止(手動)
# sudo /usr/local/vpnclient/vpnclient stop