ラズパイ4のメンテナンス

閲覧数: 37(0)

海外からの接続用として大活躍しているラズベリーパイなのですが、以前使っていたバージョン3から現在は4へアップグレードしておりまして、そのメンテナンス情報をまとめておきます。稼働するOSはUbuntu 18.04 LTSで、アプリケーションとしてはSoftEtherVPNとZabbix Agentが稼働しています。まずはOSから。MacOSでの作成方法です。参考にしたサイトは「こちら」です。

RASPI4自体は64bitOS対応ですが、SoftEtherVPNのARM対応は、公式サイトでは32bit版しか提供されないため、ソースからコンパイルする以外は、ここで導入するOSは32bit版を選択する必要があります。Ubuntuの「公式サイト」からダウンロードしておきます。使用するイメージは「ubuntu-18.04-preinstalled-server-armhf+raspi2.img.xz」です。くどいようですが32bit版です。

sudo sh -c 'gunzip -c ubuntu-18.04-preinstalled-server-armhf+raspi2.img.xz | sudo dd of=/dev/disk2 bs=32m'

こんな感じのコマンドでSDカードに書き込みます。「/dev/disk2」の部分は実際の環境に合わせて変更が必要です。書き込みが完了したSDカードを使ってRASPIを起動すると、ポート22が開いているのでSSH接続出来ます。初回の接続は有線接続がおすすめです。初期起動の条件等は通常のUbuntuと同じです。次はアプリケーションの導入についてです。

まずは、ZABBIXの導入から。公式サイトでパッケージを選択しますが、32bitに対応した、ZABBIX 5.0 LTS + RASPI(4) + Ubuntu 18.04 LTSというズバリの組み合わせは存在しません。選択するのは、5.0 LTS + Rasberry Pi OS + 9 (Stretch)という組み合わせです。これで32bit版のリポジトリが入手できます。以下のコマンドが表示されるので、指示に従ってリポジトリを導入し、その後ZABBIX-AGENTを導入します。

# wget https://repo.zabbix.com/zabbix/5.0/raspbian/pool/main/z/zabbix-release/zabbix-release_5.0-1+stretch_all.deb
# dpkg -i zabbix-release_5.0-1+stretch_all.deb
# apt update 

次はSoftEtherVPNの導入です。公式サイトから、Linux + ARM EABI(32bit)の組み合わせで表示されるバージョンをダウンロードします。今回は「SoftEther VPN Server (Ver 4.34, Build 9745, rtm)」を使用しました。ダウンロードしたファイルをtarで解凍してできるvpnserverフォルダでmakeして実行ファイルを作成します。make類は事前にインストールが必要です。最低限、makeとgccの追加導入が必要です。

様々なサイト、果ては2チャンネルにまで、RASPIでは、ここでmakeが失敗するのでソースからコンパイルするしか方法が無いかのように書かれていますが、前述したように、RASPIのOSを32bit版にしておけば、エラーは発生せず、全く問題なく実行ファイルを作成することが出来ます。64bit環境で32bit版をmakeしようとすると、以下のようなエラーが出ます。どうしても64bit環境で実行したい場合はソースからコンパイルするしか方法はありません。

Preparing SoftEther VPN Server...
ranlib lib/libcharset.a
ranlib lib/libcrypto.a
ranlib lib/libedit.a
ranlib lib/libiconv.a
ranlib lib/libncurses.a
ranlib lib/libssl.a
ranlib lib/libz.a
ranlib code/vpnserver.a
gcc code/vpnserver.a -fPIE -O2 -fsigned-char -lm -ldl -lrt -Wl,--no-warn-mismatch -lpthread -L./ lib/libssl.a lib/libcrypto.a lib/libiconv.a lib/libcharset.a lib/libedit.a lib/libncurses.a lib/libz.a -o vpnserver
code/vpnserver.a: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
Makefile:18: recipe for target 'i_read_and_agree_the_license_agreement' failed
make[1]: *** [i_read_and_agree_the_license_agreement] Error 1

実行ファイル作成が成功したらvpnserverフォルダ自体を/usr/local/下に移動し、パーミションを744等に変更するのと同時に、所有者をrootへ変更します。管理が便利なように「VPNのサービス化」を参考にしてサービス化します。最終的には、以下のようになりました。

[Unit]
Description=SoftEther VPN Server
After=network.target auditd.service
ConditionPathExists=!/usr/local/vpnserver/do_not_run

[Service]
Type=forking
EnvironmentFile=-/usr/local/vpnserver
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
KillMode=process
Restart=on-failure

# Hardening
PrivateTmp=yes
ProtectHome=yes
ProtectSystem=full
ReadOnlyDirectories=/
ReadWriteDirectories=-/usr/local/vpnserver
CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_BROADCAST CAP_NET_RAW CAP_SYS_NICE CAP_SYS_ADMIN CAP_SETUID

[Install]
WantedBy=multi-user.target

64bitと32bitの性能差が気になると思いますが、現在の環境で、欧州から10MB/s以上のスループットが出ているので、余程大量の接続を処理する必要性が無いのであれば、そもそもラズパイなので32bit環境でも十分だと思います。

カテゴリー公開, 閑話(IT)タグ, , ,
Re:EC2 t2.nanoの設定

いろいろ悩んだ結果「AWS(EC2)」と「WebARENA」のS/W住み分けを次のように決めました。  続きを読む

テザリングでVPN
blank

外出中はiPadのSSHアプリでコンソールからマルチクラウドの管理を行なっています。「以前」はvSS  続きを読む

VPNのサービス化
blank

マルチクラウド化してしまって、いちいちターミナル接続設定をするのが面倒で、一旦踏み台にするVPNサー  続きを読む

年始の大事件?
blank

「年末の大事件?」に引き続き、年始にも大事件を起こしてしまいました。「サイト開設以来の危機」や、年末  続きを読む

zabbix 4.0
blank

昨日の「ラズパイ」に続いて他のサーバーもZABBIXエージェントのバージョンアップを行います。AWS  続きを読む

サイト開設以来の危機
blank

2015年にサイトを開設して以来の危機に遭遇してしまいました。と言っても自分のオペレーションミスから  続きを読む

スポンサーリンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください