RasberryPi と遊ぼう〜セキュリティ強化編〜

セキュリティを強化する

Firewallのインストールなど、セキュリティ強化を施していきます。


ufw

Debian系のLinuxで、お手頃にインストールできるFirewallが ufw です。
インストール。

sudo apt install ufw

systemctlでステータスを確認。
インストールは終了したが、おやすみ中です(inactive)。

$ systemctl status ufw ○ ufw.service - Uncomplicated firewall Loaded: loaded (/lib/systemd/system/ufw.service; enabled; preset: enabled) Active: inactive (dead) Docs: man:ufw(8)

インストールは終了しましたが、おやすみ中です(inactive)。

続いてルールを確認します。 何も許可されていない。

$ sudo ufw status verbose Status: inactive

現時点では何も設定が行われていません。

外部からの接続を全て拒否します。

sudo ufw default deny incoming

自分からの通信は全て許可します。

sudo ufw default allow outgoing

個別にsshのポートを開放します。
このとき、IPアドレスを範囲指定して、ローカルIPアドレス(192.168.1.1〜192.168.1.254までのアドレス)のみを許可するようにします。(IPv6も同様)

$ sudo ufw allow from 192.168.1.0/24 to any port 22 Rules updated $ sudo ufw allow from 240b:12:621:7500::/64 to any port 22 Rules updated (v6)

ufw を enable状態にして、ufwサービスを起動します。
その後、ufw のステータスを確認し、port番号22番が192.168.1.1〜254の範囲で使用可能であることを確認します。

$ sudo ufw enable $ systemctl start ufw $ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22 ALLOW IN 192.168.1.0/24 22 ALLOW IN 240b:12:621:7500::/64

想定通りの設定になっています。 mac 側から sshを再接続し、port 22が有効であることを確認して終了。


ClamAV

いわゆるEPP的な、アンチウイルスやマルウェア防御、振る舞い監視、脅威検知などを統合的に行うソフトを導入。ChatGPTに質問したところ、ClamAVがいいんじゃない?ということなのでインストールします(やや脳死)。

sudo apt install clamav -y

定義ファイルの更新をしようとしたところ、エラーが発生しました。

$ sudo freshclam ERROR: Failed to lock the log file /var/log/clamav/freshclam.log: Resource temporarily unavailable ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log). ERROR: initialize: libfreshclam init failed. ERROR: Initialization error!

/var/log/clamav/freshclam.logが掴まれているっぽいです。
明示的にサービスを停止してfreshclamを再実行し、再度サービスを立ち上げます。

$ sudo systemctl stop clamav-freshclam $ sudo freshclam Sat Sep 6 22:39:50 2025 -> ClamAV update process started at Sat Sep 6 22:39:50 2025 Sat Sep 6 22:39:50 2025 -> daily.cvd database is up-to-date (version: 27755, sigs: 2076486, f-level: 90, builder: raynman) Sat Sep 6 22:39:50 2025 -> main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr) Sat Sep 6 22:39:50 2025 -> bytecode.cvd database is up-to-date (version: 337, sigs: 81, f-level: 90, builder: raynman)

手順が前後してしまいましたが、clamav-daemon(clamd)もインストールします。
その後、systemctl enable でclamav-freshclam を自動起動するように変更します。

$ sudo apt install clamav-daemon -y $ sudo systemctl enable clamav-freshclam sudo systemctl start clamav-freshclam

スキャンを行います。

$ sudo clamscan Loading: 15s, ETA: 0s [========================>] 8.71M/8.71M sigs Compiling: 4s, ETA: 0s [========================>] 41/41 tasks /home/takuyan/.bash_history: OK /home/takuyan/.bash_logout: OK /home/takuyan/.sudo_as_admin_successful: Empty file /home/takuyan/.dmrc: OK /home/takuyan/.bashrc: OK /home/takuyan/.profile: OK /home/takuyan/.Xauthority: OK /home/takuyan/.xsession-errors.old: OK /home/takuyan/.xsession-errors: OK /home/takuyan/.lesshst: OK ----------- SCAN SUMMARY ----------- Known viruses: 8708214 Engine version: 1.0.9 Scanned directories: 1 Scanned files: 9 Infected files: 0 Data scanned: 0.02 MB Data read: 0.01 MB (ratio 2.00:1) Time: 20.406 sec (0 m 20 s) Start Date: 2025:09:06 22:40:47 End Date: 2025:09:06 22:41:08

成功。ほぼまっさらなので当たり前ですが、問題はありません。 本来ならscanを自動化したいところですが、常時RasberryPiを起動しているわけではないので、今のところ手動実行のみにします。 そのうち、1時間に一回とか自動実行するようにスクリプトを組むかも(組まないかも)


RKHunter

RKHunterはセキュリティ監査ツール の一つで、特に rootkit、バックドア、ローカルエクスプロイトの検出を目的としたツールです。 念の為インストールしておきます。

sudo apt install rkhunter -y

confファイルの変更を行います。

$ sudo nano /etc/rkhunter.conf ALLOW_SSH_ROOT_USER=no

confファイルが長いので、一旦 SSH_ROOT_USERだけnoに変更して、後でもう一回見直すことにします。
sudo rkhunter --updateがうまく動作しないので、以下のコマンドで一旦お茶を濁します。

プロパティデータベースのアップデートを行います。

$ sudo rkhunter --propupd [ Rootkit Hunter version 1.4.6 ] File updated: searched for 179 files, found 140

続いてチェックを行います。

sudo rkhunter --check

脆弱性がありそうなところが見えるので適宜締めていきます。

参考サイト

ラズパイにファイアウォールを設定する(ufw) RaspberryPi OSをインストールするときの一連のやるべきこと

コメント

このブログの人気の投稿

【python】PySide6 におけるウィンドウとかダイアログボックス内のアイテムの自動調整

脆弱性評価システムを作る〜CVSSとは〜

dict型オブジェクトを内包するlistオブジェクトのコピー