メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

Clear LinuxでSFTPサーバの設定

Intel社が開発を進めているLinuxディストリビューションClear Linuxで、SFTPサーバやファイルサーバを立ててみた。今回は第一弾としてClear LinuxのインストールとSFTPサーバの構築までのメモ。
数日前に見た海外のITニュース系サイトにて、ベンチマークテストの結果が他のLinuxディストリビューションを圧倒していたという記事が気になり、Clear Linuxを試用してみた。
https://arstechnica.com/gadgets/2020/02/linux-distro-review-intels-own-clear-linux-os/
 
 
セキュアで堅牢なClear Linux
Clear LinuxはIntel社が持つオープンソースプラットフォーム上で開発され、2015年に開催されたOpenStack Summitで初めて紹介された。
Clear Linuxはクラウドでの利用を想定し設計されており、起動プロセスの高速化やメモリー消費の低減などを含めIntel社製のマイクロプロセッサ向けにパフォーマンスを最適化されているだけでなくセキュリティも強化されたものとなっている。週に数回の頻度でローリングリリースモデルに従ってアップデートされている。
Clear LinuxはRedHatやUbuntu等のような汎用のLinuxディストリビューションを意図して開発されたものではなく、DevOpsやAIアプリケーション開発やクラウド環境等に使用できるように設計されているが、当記事の内容のようにファイルサーバやFTPサーバとして利用する事も可能である。
 
 
他のディストリビューションとの違い
Clear Linuxは、システムをユーザエリア(ユーザの領域)とシステムエリア(OSの領域)に分離したステートレスデザインを採用している。
/etc、/var、/usr/local、/home等のディレクトリとその配下のディレクトリはユーザエリアに属し、これらのディレクトリ内のファイルはユーザが管理する。ユーザエリアのディレクトリ内にはシステム関連のファイルは最小限しか無い。
/usrディレクトリ(/usr/local以外)とその配下のディレクトリはシステムエリアに属し、ユーザによって/usrディレクトリの配下に書き込みされたファイルはシステムのアップデートの際に削除され、システムファイルの整合性を維持する。
 
 
インストーラの入手
Clear Linuxのサイト内に記載されている「DOWNLOAD CLEAR LINUX OS」からダウンロードサイトにアクセス。
デスクトップ版やサーバ版やコンテナ版などが用意されている。ユーザ登録等は不要で試用期間は無し。
当記事ではサーバ版の.isoファイルをダウンロードし、VirtualBoxで使用した。
https://www.clearlinux.org/downloads.html
 
 
当方の環境
ホスト機:macOS 14.1.2 / MacBook Pro 2020 / RAM: 16GB / CPU: Intel Core i5 2.0GHz
Virtualbox:7.0.10 r158379
ゲスト機:Clear Linux 40430 (clear-40430-live-server.iso)


VirtualBoxの設定
VirtualBoxはバージョン7.0.10を使用。
Clear Linuxの起動の際にコンソール画面のサイズが大きくなる。PCのモニターの解像度によってはコンソール画面の下部が見切れる事がある為、環境によってはGraphics Controllerの設定はVMSVGAからVBoxVGAに変更しても良い。
環境によってはClear Linuxのインストーラの起動に躓いて真っ黒な画面のまま止まる事が有る為、EFIは有効にする。

[General]
Operating System:Other Linux (64-bit)

[System]
Base Memory:2048MB
Processors:1
Boot Order:Hard Disk
EFI:Enabled
Acceleration:VT-x/AMD-V, Nested Paging, PAE/NX, KVM Paravirtualization

[Display]
Video Memory:16MB
Graphics Controller:VBoxVGA
Remote Desktop Server:Disabled
Recording:Disabled

[Storage]
Controller:IDE
IDE Primary Device 0:clear-40430-live-server.vdi
IDE Secondary Device 0:clear-40430-live-server.iso

[Audio]
Disabled

[Network]
Adapter 1:Intel PRO/1000 MT Desktop (Bridged Adapter,en0: Wi-Fi)

[USB]
USB Controller:OHCI


Clear Linuxのインストール
1.Clear Linuxにログイン
VirtualBoxの仮想マシンのスタートアイコンをクリックし、Clear Linuxのインストールを開始する。
LiveCDからClear Linuxの起動が開始し、ログインプロンプトが表示されたらrootでログイン。
ここでrootアカウントのパスワード設定が求められる為、パスワードを設定する。
ただし、ここで設定したrootパスワードはClear Linuxのインストール完了後は使用出来ず、rootアカウントが必要な場合は別途設定が必要になる点に注意。
rootアカウントのパスワードの設定後、clr-installerコマンドを叩きClear Linuxのインストールに進む。


 
2.Timezoneの設定
Clear Linuxのインストーラが立ち上がり、以下の画像の画面が表示される。
設定は大きく分けると「[R] Required options」と「[A] Advanced options」の2つから成り、まずは「[R] Required options」の「Choose Timezone」から始める。
Timezoneの設定は「Choose Timezone」を選択しEnterキーを叩く。
「Asia/Tokyo」を選択した状態でTabキーを叩いてConfirmを選択し、Enterキーを叩きTimezoneの設定から抜ける。


 
3.CUIの表示文字コードの設定
Choose Languageの設定に進む。「Choose Langiage」を選択しEnterキーを叩く。
残念ながらCUI環境では日本語はサポートされてない為、英語とスペイン語と中国語から選ぶ事となる。
自分の環境では英語(en_US.UTF-8)を使用する事から英語が選択された状態でTabキーを叩いてConfirmを選択し、Enterキーを叩きChoose Languageの設定から抜ける。


 
4.キーボードの設定
Configure the Keyboardの設定に進む。「Configure the Keyboard」を選択しEnterキーを叩く。
日本語を使用したい場合は「jp106」を選択した状態でTabキーを叩いてConfirmを選択し、Enterキーを叩きキーボード設定から抜ける。


 
5.インストール先ディスクの設定
Configure Installation Mediaの設定に進む。
ここではClear Linuxのインストール先のディスクを選択する。今回はVirtualBox環境にデプロイする為「VBOX HARDDISK sda [Entire Disk]」を選択する。インストール方法としてSafe InstallartionとDestructive InstallationとAdvanced Installationの3つから選択する事になるが、VirtualBox内の仮想HDDの真っさらな状態からパーティション設定をインストーラにおかませで進める為、「Safe Installation」を選択した状態でTabキーを叩いてConfirmを選択し、Enterキーを叩きインストール先のディスクの設定から抜ける。


 
6.ユーザの追加設定
Manage Userの設定に進む。「Manage User」を選択した状態でEnterキーを叩く。


 
Manage Userの追加ユーザの一覧の画面に遷移し、ユーザの追加設定が可能となる。
Tabキーを叩いて「Add New User」を選択し、Enterキーを叩く。


 
Add New Userの画面に遷移する。
・User Name:ユーザの氏名もしくは任意の文字列を入力する。
・Login:ログインユーザ名を入力する。
・Password:パスワードの文字列を入力する。
・Confirm:Password欄で入力したパスワードの文字列を入力する。
suやsudoコマンドで管理者権限付きでコマンドを実行するのであれば「Administrator」にチェックを入れる。
上記の設定を終えたらTabキーを叩いてConfirmを選択し、Enterキーを叩く。

Manage Userの追加ユーザの一覧の画面に戻ったら、これ以上ユーザの追加をしない場合はConfirmを選択しEnterキーを叩いてManage Userから抜ける。
更にユーザを追加したい場合はTabキーを叩いて「Add New User」を選択し、Enterキーを叩く。
Add New Userの画面に遷移し、当項目の手順を再度実施しユーザを追加する。
追加したユーザに管理者権限を与えない場合は「Administrator」を選択した状態でShiftキーを叩き、チェックを外す必要が有る。
 

7.Telemetryの設定
Telemetryの設定に進む。
Clear Linuxで言うTelemetryは、システム診断の情報を匿名でIntel社に送信する機能を指す。テレメトリーの情報をIntel社へ送信したくない場合はNoを選択する。
ただし、Noを選択しても情報の収集自体は行われている点に注意。(収集するけど送信しない)


 
8.IPアドレスの設定
Telemetry設定を終えたところで「[R] Requided options」の設定内容は完了。
続いて「[A] Advanced options」の設定に進む為、右矢印キーを叩いて「[A] Advanced options」を選択する。
Clear LinuxのIPアドレスを静的に設定する場合は「Configure Network Interfaces」を選択しEnterキーを叩く。
DHCPで動的にIPアドレスをアサインする場合は当設定を無視して次に進む。
ただし「Configure Network Interfaces」欄にIPアドレスが表示されていない場合はDHCPでIPアドレスのアサインが失敗している為、Clear Linuxを一旦落としてVirtualBoxの設定を見直し、再度Clear Linuxを立ち上げる。


 
IPアドレスを静的に設定する際はConfigure Network Interfaces」を選択しEnterキーを叩いた後、Tabキーを叩いてインターフェース名を選択し再度Tabキーを叩く。


 
IPアドレス入力の画面に遷移する。
矢印キーで「[X] Automatic/dhcp」を選択しShiftキーを叩いてチェックを外すとIPアドレス欄などで文字の入力が可能になる。空欄の各項目を入力した後はTabキーを叩いてConfirmを選択し、Enterキーを叩く。


 
以下の画像のようにネットワークへの接続テストが開始する。
接続テストが完了するまで待つ。
接続テストが終わったらTabキーを叩いて「Main Menu」を選択し、IPアドレスの設定から抜ける。


 
9.Proxyの設定
Proxyの設定が必要な場合は「Proxy」を選択しEnterキーを叩く。
Proxy設定の画面内にてHTTP Proxy:欄内にProxyの文字列を入力し、Tabキーを叩いてConfirmを選択し、Enterキーを叩いてProxyの設定から抜ける。
Proxyの設定が不要な場合は当設定を無視して「Select Additional Bundles」を選択する。


 
Test Network Settingsは上記のIPアドレスの設定にてネットワークへの接続テストを実施した為に不要。
その下のAdditional Bundlesを選択しEnterキーを叩く。


 
10.インストールする追加パッケージ群の設定
Select Additional Bundlesの画面に遷移する。
矢印キーを叩いて以下の中から要件および利用目的に応じてインストールしたい追加機能を選択し、Shiftキーを叩いてチェックを入れる。当項目で選択するのは追加パッケージである為、何も選択せず次に進める事も出来る。
自分の場合はnetwork-basicとsysadmin-basicのみチェックを入れた。

・R-extras:Common set of prebuilt R libraries
・cloud-control:Run a cloud orchestration server
・containers-basic-dev:Build the containers-basic bundle
・desktop-apps:Applications for the desktop
・desktop-autostart:UI that automatically starts on boot
・dev-utils:Utilities to assist application development
・editors:Popular text editors (terminal-based)
・gimp:GNU Image Manipulation Program
・go-basic:Build and run go language programs
・java-basic:Build and run java language programs
・libreoffice:LibreOffice - Free Office Suite
・machine-learning-basic:Build machine learning applications
・network-basic:Network utilities and settings
・os-clr-on-clr:Run any Clear Linux dev. Process
・packages-utils:Utilities for creating, building, and managing packages
・perl-basic:Run perl language programs
・pidgin:Multi-protocol instant messagging (IM) client
・python3-basic:Run python language programs
・sysadmin-basic:Common utilities to manage a system
・user-basic:captures most console work flows
・user-basic-dev:Packages to build the user-basic bundle


 
11.ホスト名の設定
ホスト名の設定に進む。
「Assign Hostname」を選択した状態でEnterキーを叩く。
Hostname欄内にホスト名を入力した後、Tabキーを叩いてConfirmを選択し、Enterキーを叩きホスト名の設定から抜ける。


 
12.カーネルの追加設定
起動時などにカーネルにパラメータを渡したい場合は、「Kernel Command Line」の設定に進む。
Add Extra Arguments欄とRemove Arguments欄に必要であればパラメータを入力し、Tabキーを叩いてConfirmを選択し、Enterキーを叩きカーネルの追加設定から抜ける。
当設定が不要な場合は「Kernel Command Line」の設定は無視して良い。


 
13.カーネルの選択
起動するカーネルの指定が有れば、「Kernel Selection」の設定に進む。
「Kernel Selection」を選択した状態でEnterキーを叩く。
NativeとLTS Latestのどちらかを選択するが、デフォルトではLTS Latestが選択されている。
当設定が不要な場合は「Kernel Selection」の設定は無視して良い。


 
14.ソフトウェアパッケージのダウンロード設定
ソフトウェアパッケージをIntel社ではなく別のサイトからインストールしたい場合は「Swupd Mirror」の設定に進む。「Swupd Mirror」を選択した状態でEnterキーを叩く。
Mirror URL欄にURLを入力し、Tabキーを叩いてConfirmを選択し、Enterキーを叩いてソフトウェアパッケージのダウンロード設定から抜ける。
当設定が不要な場合は「Swupd Mirror」の設定は無視して良い。


 
15.OSの自動アップデートの設定
自動でOSをアップデートさせたい場合は「Automatic OS Update」の設定に進む。
「Automatic OS Update」を選択した状態でEnterキーを叩く。
デフォルト設定では「Yes [Enable, Default]」が選択されている。
OSの自動アップデートが不要な場合は「No [Disable]」を選択し、Tabキーを叩いてConfirmを選択し、Enterキーを叩いてOSの自動アップデートの設定から抜ける。
当設定が不要な場合は「Automatic OS Update」の設定は無視して良いが、Clear Linuxのインストール完了直後はOSのアップデートが動いてパッケージのインストールが出来ない点に要注意。


 
16.設定内容をYAML形式でファイルに保存
上記までの設定内容をYAML形式で保存したい場合は、「Save Configuration Settings」の設定に進む。
不要であればTabキーを叩いて「Install」を選択し、Enterキーを叩いて保存画面から抜ける。
当設定が不要な場合は「Save Configuration Settings」の設定は無視し「Install」に進む。


 
 
Clear Linuxのインストール開始
「Confirm Installation」のウインドウが表示され、ウインドウ内にパーティション設定が表示される。
内容に問題が無ければTabキーを叩いて「Confirm Install」を選択しEnterキーを叩きインストールを進める。
パーティション設定を変更したい場合は上記の「Configure Installation Media」に戻り、「Advanced Installation」を選択しパーティションの設定を行う。


 
「Confirm Install」を選択するとすぐにインストールが開始される。
上記の「10.インストールする追加パッケージ群の設定」にて選択する項目が多ければ多いほど、インストールに要する時間は多くなる。
ちなみに、当手順のとおりnetwork-basicとsysadmin-basicのみの場合は5分程でインストールが完了したが、選択するパッケージ群の内容にもよるが、もう3つ追加したら20分程長くなった。
「Complete」が表示され「Reboot」と「Exit」の選択が可能になったらインストールは完了となる。


 
 
Clear Linuxのインストール完了
Clear Linuxのインストールが完了。お疲れ様でした。
「Installation Steps Complete」が表示され、「Reboot」と「Exit」の両方が選択可能となった。
「Reboot」を選択するとClear Linuxは再起動されるのだがインストール時に使用した.isoファイルがマウントされたままの状態で再起動し.isoの内容が読み込まれる為、Clear Linuxを一旦落とす為「Exit」を選択しEnterキーを叩く。


 
CLIが表示されたらshutdown -h nowコマンドを叩いてClear Linuxを一旦落とす。
VirtualBoxの設定に戻り、System設定のウインドウ内のBoot Orderの設定に入りOpticalのチェックを外す(又はOpticalの位置をHard Diskの下に移動する)。
続いてStrage設定のウインドウ内のStorage Devices欄にある.isoファイルを選択し、Attribute欄内のCDのアイコンをクリックしRemove Disk from Virtual Driveを選択し.isoファイルを取り外す。
その後再度Clear Linuxを立ち上げる。


 
 
パッケージのインストール
Clear Linuxはインストール直後からsshdは有効になっている為、Clear Linuxへのssh接続は可能。
Clear Linuxの再起動の完了後、ターミナルを立ち上げClear Linuxにsshログインする。
 
Clear Linuxではツールのインストールの際はswupdコマンドを使用する。
自分の環境で稼働しているOpenBSDや他のLinuxディストリビューションではvimを使用しているのだがインストール直後の状態ではvimはインストールされていない為、swupd bundle-add vimコマンドを打ちvimをインストール。

$ sudo swupd bundle-add vim
Password: 
Loading required manifests...
Downloading packs (13.57 MB) for:
 - vim
Finishing packs extraction...
 [100%]

Validate downloaded files
 [100%]

No extra files need to be downloaded
 [100%]

Installing files...
 [100%]

Calling post-update helper scripts
Successfully installed 1 bundle
$

 
 
NTPの設定
Clear Linuxの時刻同期のデフォルト設定で使用されるNTPサーバ(133.243.238.243 1.clearlinux.pool.ntp.org)ではなく日本国内の公開NTPサーバを使用したいという事で、NTPサーバの設定を実施。
Clear Linuxではntpdやchronydではなくsystemd-timesyncd が実装されている。管理者側でNTPサーバの指定をする場合、以下の手順を踏んでNTPの設定を行う。
デフォルト設定のNTPサーバ以外を利用したい場合は、timesyncd.confファイルを作成しNTPサーバのIPアドレスを指定する。

$ sudo vi /etc/systemd/timesyncd.conf
[Time]
NTP=210.173.160.27
FallbackNTP=133.243.238.163

$ 

設定が完了したら、restartオプションを付けてsystemd-timesyncdを再起動させる。
再起動後、systemd-timesyncdサービスの状態を確認する。設定したNTPサーバに接続し、時刻同期が出来ている事が分かる。

$ sudo systemctl restart systemd-timesyncd 
$ 
$ sudo systemctl status systemd-timesyncd 
* systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; preset: disabled)
     Active: active (running) since Mon 2023-12-04 20:34:27 JST; 3s ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 466 (systemd-timesyn)
     Status: "Contacted time server 210.173.160.27:123 (210.173.160.27)."
      Tasks: 2 (limit: 2306)
     Memory: 1.3M
     CGroup: /system.slice/systemd-timesyncd.service
             `-466 /usr/lib/systemd/systemd-timesyncd

Dec 04 20:34:27 jpmtkvmsv99 systemd[1]: Started systemd-timesyncd.service.
Dec 04 20:34:27 jpmtkvmsv99 systemd-timesyncd[466]: Contacted time server 210.173.160.27:123 (210.173.160.27).
Dec 04 20:34:27 jpmtkvmsv99 systemd-timesyncd[466]: Initial clock synchronization to Mon 2023-12-04 20:34:27.756526 JST.
$ 

時刻同期が正常に行われているか確認する手段として、以下のコマンドも使用出来る。
出力内容(System clock synchronized: yes)より、正常に時刻の同期が出来ている事がわかる。

$ sudo timedatectl status
               Local time: Mon 2023-12-04 20:35:53 JST
           Universal time: Mon 2023-12-04 11:30:53 UTC
                 RTC time: Mon 2023-12-04 11:30:52
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no
$ 

 
 
SFTPの設定
OpenSSHサーバはClear Linuxのインストール直後の段階で既にインストール済みだが設定ファイル自体は存在しない為、他のシステムから拝借する事とする。
今回は家で絶賛稼働中であるOpenBSDからsshd_configファイルをClear Linuxに転用した。
/etc/ssh/sshd_configファイルを新規に作成し、コメントアウト行を含め以下の9行を貼り付けた。

# override default of no subsystems
#Subsystem      sftp    /usr/libexec/sftp-server
Subsystem       sftp    internal-sftp
# Example of overriding settings on a per-user basis
Match User ftpuser
        AllowTcpForwarding no
        X11Forwarding no
        ChrootDirectory /home/ftpuser
        ForceCommand internal-sftp

SFTPサーバとして公開するディレクトリに試験用の空っぽのファイルREADME.txtを作成した。

$ sudo touch /home/ftpuser/README.txt
$
$ sudo ls /home/ftpuser/
README.txt
$ 

続いて公開ディレクトリ/home/ftpuserのパーミッションの設定。
/home/ftpuserディレクトリの所有グループをftpuser、所有者をrootで設定した。

$ doas chown root /home/ftpuser
$ doas chgrp ftpuser /home/ftpuser

SFTPサーバの設定を終えたところで、MacBook ProからWLAN経由でSFTPサーバにアクセスを試行。
FTPクライアントはCyberduckを使用。
Cyberduckを立ち上げて新規接続から入り、接続方式は「SFTP (SSHによる暗号化FTP)」を選択。
FTPサーバのIPアドレスやポート番号やユーザ名、パスワードを入力し接続ボタンをクリックすると、Clear Linuxに構築したSFTPサーバに接続する。
 
Clear Linuxでは/etc/ssh/sshd_configファイルの編集後にsshdを再起動させなくてもSFTPサーバにアクセスする事が出来る。Clear Linuxではsshd.serviceではなくsshd.socketである事が関係しているのだろうか? systemdがTCPポート22をListenしていて接続要求が有ったらsshdが動いて設定ファイルを読み込む...という流れかも知れないが、この辺に関しては後で確認する。
 
以下の画像内右側のCyberduckのウインドウ内にて、上記で作成したテスト用のREADME.txtが見えて、SFTPサーバに接続出来た事がわかる。
また、/home/ftpuserディレクトリが/ディレクトリに見えている事もわかる。
左側のウインドウは、VirtualBoxのコンソール画面でneofetchコマンドの実行結果である。
 

 
 
今回はここまで。
HDDのパーティション設定はインストーラにお任せで進めた為に、意外とサクッと終える事が出来た。設定し忘れの設定必須項目が有ると「Install」の選択が出来ない等、思っていた以上に親切な印象。
Clear Linuxのインストール直後のOSの起動はRHELやUbuntuより少しだけ速い程度だったが、初回以降のOSの起動は爆速でベンチマークテストでの評判の片鱗を体験する事が出来た。
今回はSFTPサーバの構築と接続確認までだが、次回はファイルサーバとしてSambaをインストールし接続確認およびファイル操作まで進めたい。
 

2023/12/9追記
MacBook Pro(2020,Intel版)では今のところ問題無く動いているが、MacBook Air(2011)ではバージョン34000あたり以降はVirtualBoxのコンソール画面の表示のチラつきが頻繁に発生する。コマンドを入力しEnterキーを叩くと画面がチラつき、酷い時は1〜2秒間程VirtualBoxのコンソール画面の中が真っ白になる。
画面のチラつきが気になる場合はsshでログインする、もしくはClean Linuxの古いバージョンを使用する。
 
2023/12/10追記
Clear Linux* Projectのドキュメントについて。
トップページの真ん中らへんに有るDocumentationのGuides、Tutorials、Referencesのリンクを踏んでもトップページに戻される。
マウスカーソルを当てて表示されるURLにwwwを追加するとアクセス出来る。
ドキュメントやチュートリアル等のページの正しいURLは以下のとおり。
https://www.clearlinux.org/clear-linux-documentation/guides/index.html ガイド
https://www.clearlinux.org/clear-linux-documentation/tutorials/index.html チュートリアル
https://www.clearlinux.org/clear-linux-documentation/reference/index.html リファレンス
 
2023/12/18追記
2023/12/10の追記の内容について。トップページからGuides、Tutorials、Referencesのリンク先に直接飛べる事を確認済み。
 
 
参照サイト
https://www.clearlinux.org/ Clear* Linux Project
https://www.clearlinux.org/downloads.html Clear* Linux Download
https://cdn.download.clearlinux.org/releases/ Clear* Linux Download 過去バージョン含む
https://www.clearlinux.org/clear-linux-documentation/ Clear Linux Documentation
 
https://arstechnica.com/gadgets/2020/02/linux-distro-review-intels-own-clear-linux-os/ Linux distro review: Intel’s own Clear Linux OS - ars Technica
https://www.ionos.com/digitalguide/server/know-how/clear-linux-os/ Clear Linux - Digital Guide IONOS
https://bitwalk.blogspot.com/2021/02/linux-clear-linux-os.html Linux ディストロ探訪 (26) 〜 Clear Linux OS 〜
https://distrowatch.com/ Distrowatch.com