- blogs:
- cles::blog
2021/02/25

SoftEther を CentOS 8 にインストール


久しぶりに SoftEther を CentOS 8 にインストールしてみました。
これも Dokcer 化しても良かったのですが、ネットワーク周りとかいろいろと面倒なことになりそうなので、これは直接に VM にインストールしてしまうことにしました。
手順としてはこんな感じでしょうか。
dnf -y groupinstall "Development Tools"
dnf -y install readline-devel ncurses-devel openssl-devel
wget https://jp.softether-download.com/files/softether/v4.34-9745-rtm-2020.04.05-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.34-9745-rtm-2020.04.05-linux-x64-64bit.tar.gz
tar zxvf softether-vpnserver-v4.27-9668-beta-2018.05.29-linux-x64-64bit.tar.gz
chmod 700 vpnserver
pushd vpnserver
make i_read_and_agree_the_license_agreement
cat << EOS > ./adminip.txt
192.168.0.0/16
EOS
popd
mv vpnserver /usr/local/bin
cat << EOS > /etc/systemd/system/softether.service
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStartPre=/sbin/ip link set dev ens224 arp off promisc on
ExecStop=/usr/local/vpnserver/vpnserver stop
[Install]
WantedBy=multi-user.target
EOS
systemctl daemon-reload
systemctl enable softether.service
systemctl status softether.service
cat << EOS > /etc/firewalld/services/softether.xml
<service>
<short>Softether</short>
<description>Softether VPN Server</description>
<port protocol="tcp" port="443"/>
<port protocol="tcp" port="5555"/>
<port protocol="udp" port="443"/>
<port protocol="udp" port="5555"/>
</service>
EOS
firewall-cmd --reload
firewall-cmd --add-service=softether
firewall-cmd --runtime-to-permanent
nmcli connection show ens224 connection.zone
nmcli connection up ens224
† AES-NI に対応させるとか、リージョンロックを外すとか
上記だけでも普通に使うことはできますが、スマートカードとか証明書対応したい場合にはさらに以下の手順が必要です。
最近の OpenSSL は AES-NI が有効になっているので、もしかしたら以前やっていた AES-NI 対応は意味がないかもしれません。ちなみに Intel のライブラリは CPUID で GenuineIntel かどうかを見ているので、CPU が AMD の場合には AuthenticAMD を認識できるようにしてやる必要もあります。
具体的な手順としては以下のような感じになります。
wget https://software.intel.com/sites/default/files/article/181731/intel-aesni-sample-library-v1.2.zip
wget https://jp.softether-download.com/files/softether/v4.34-9744-beta-2020.03.20-tree/Source_Code/softether-src-v4.34-9744-beta.tar.gz
wget https://raw.githubusercontent.com/el1n/OpenWRT-package-softether/master/softethervpn/patches/102-regionunlock.patch
unzip intel-aesni-sample-library-v1.2.zip
cat << EOS >./intel_aes_lib.patch
--- Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/src/intel_aes.c.org 2010-10-01 17:37:14.000000000 -0400
+++ Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/src/intel_aes.c 2021-02-20 04:49:34.126103061 -0500
@@ -293,17 +293,30 @@
* ECX = 'l' 'e' 't' 'n'
*/
+// See: https://github.com/rrnewton/intel-aes/blob/master/cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/src/intel_aes.c
+// AuthenticAMD
+
+ int intel = 1;
+ int amd = 1;
if (memcmp((unsigned char *)&cpuid_results[1], "Genu", 4) != 0 ||
memcmp((unsigned char *)&cpuid_results[3], "ineI", 4) != 0 ||
memcmp((unsigned char *)&cpuid_results[2], "ntel", 4) != 0)
- return no;
+ intel = 0;
- __cpuid(cpuid_results,1);
+ if (memcmp((unsigned char *)&cpuid_results[1], "Auth", 4) != 0 ||
+ memcmp((unsigned char *)&cpuid_results[3], "enti", 4) != 0 ||
+ memcmp((unsigned char *)&cpuid_results[2], "cAMD", 4) != 0)
+ amd = 0;
- if (cpuid_results[2] & AES_INSTRCTIONS_CPUID_BIT)
- return yes;
+ if (intel || amd)
+ {
+ __cpuid(cpuid_results,1);
- return no;
+ if (cpuid_results[2] & AES_INSTRCTIONS_CPUID_BIT)
+ return yes;
+ }
+ else
+ return no;
}
EOS
sed -i "s/\r//g" Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/src/intel_aes.c
patch -p0 --ignore-whitespace < intel_aes_lib.patch
pushd ./Intel_AESNI_Sample_Library_v1.2/intel_aes_lib
./mk_lnx_lib64.sh
popd
cat << EOS > ./enable_aesni.patch
--- src/makefiles/linux_64bit.mak.org 2021-02-20 03:15:08.467625594 -0500
+++ src/makefiles/linux_64bit.mak 2021-02-20 03:15:57.523605859 -0500
@@ -66,9 +66,9 @@
OPTIONS_LINK_DEBUG=-g -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz
-OPTIONS_COMPILE_RELEASE=-DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64
+OPTIONS_COMPILE_RELEASE=-DUSE_INTEL_AESNI_LIBRARY -DNDEBUG -DVPN_SPEED -DUNIX -DUNIX_LINUX -DCPU_64 -D_REENTRANT -DREENTRANT -D_THREAD_SAFE -D_THREADSAFE -DTHREAD_SAFE -DTHREADSAFE -D_FILE_OFFSET_BITS=64 -I./src/ -I./src/Cedar/ -I./src/Mayaqua/ -O2 -fsigned-char -m64
-OPTIONS_LINK_RELEASE=-O2 -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz
+OPTIONS_LINK_RELEASE=-O2 ../Intel_AESNI_Sample_Library_v1.2/intel_aes_lib/lib/x64/intel_aes64.a -fsigned-char -m64 -lm -ldl -lrt -lpthread -lssl -lcrypto -lreadline -lncurses -lz
INSTALL_BINDIR=/usr/bin/
INSTALL_VPNSERVER_DIR=/usr/vpnserver/
EOS
tar zxvf softether-src-v4.34-9744-beta.tar.gz
cd v4.34-9744/
patch -p1 < ../102-regionunlock.patch
patch -p0 < ../enable_aesni.patch
./configure
make
cp -af ./bin/vpnserver/* /usr/local/vpnserver
systemctl restart softether.service
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/12314
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
- シェルスクリプトで最新のフ... (1)
- 情報処理安全確保支援士の登... (1)
- どうしてみんな firewalld で... (1)
- Windows のディスクのプロパ... (1)
- Teams を複数起動させる( ba... (1)
閲覧数が多いエントリ
1 . Thunderbird のメッセージをスレッド化しないようにする(7437)
2 . Word で数式がグレーアウトされていて挿入できないときは(7346)
3 . Windows 10 で勝手にログアウトされないようにする(5443)
4 . Firefox でパスワードが保存されるページとされないページの違い(4077)
5 . awk で指定した n カラム目以降を出力する(3688)
2 . Word で数式がグレーアウトされていて挿入できないときは(7346)
3 . Windows 10 で勝手にログアウトされないようにする(5443)
4 . Firefox でパスワードが保存されるページとされないページの違い(4077)
5 . awk で指定した n カラム目以降を出力する(3688)
cles::blogについて
Referrers