今回は、LinuxMintのセキュリティを強化した内容をまとめています。
前回はLinuxMintのインストールまで行いました。

Linux は Windows よりもウイルスの被害は少ないですが、メール添付ファイルのスキャンやWindows の共有フォルダを守る用途などで必要になる場合があります。
あと、自分の Linux 環境を守るというよりは、他のユーザー(Windows ユーザー)に感染を広げないために使われるケースが多いらしいです。
いずれにしても、やらないよりやっておいた方が良いと思います👍
目次
- 1 Linux系のシステム管理やセキュリティ設定はターミナル操作で
- 2 パッケージ情報を最新化する
- 3 リモートアクセスの事前確認
- 4 ファイアウォール(UFW)で受信拒否/送信許可
- 5 Linux Mint 全体(OSとソフト)を自動更新する設定
- 6 ClamAV(クラムエーブイ)のインストールと基本説明
- 7 ClamAV 定義ファイルの自動更新サービス(freshclam)
- 8 オンアクセス監視の対象と動作(ブロック有効)を設定
- 9 起動時のクイックスキャンと週1回フルスキャンを設定
- 10 ログ肥大化対策(logrotate:weekly + rotate 4)
- 11 動作テスト(EICAR:安全なテスト文字列)
- 12 日常運用のヘルスチェック
- 13 まとめ
Linux Mint は Ubuntu をベースにした初心者向けのディストリビューション1です。
GUI(グラフィカルな画面操作)が充実しているため、普段の利用はマウス操作で十分ですが、Linux 全般ではシステム管理やセキュリティ設定の多くを「ターミナル」で行うのが基本です。
(本記事は Linux Mint 22.2 を対象に説明します)

ターミナルを表示させるにはいくつかの方法があります。
- 一番簡単:画面下パネルの「ターミナル」をクリック
- アイコンを消している場合:スタートメニュー → アプリケーション → システム → ターミナル
- ショートカットキー:Ctrl + Alt + T
ターミナルはこんな感じだよっ!ってのがコレ↓↓↓です。

以下の操作はすべて「ターミナル」で行います。
Linux Mint が利用しているソフトの一覧(APTのパッケージデータベース)が最新の状態になります。
これを最初に 1 回やっておけば、その後の「apt install」で常に最新のソフトが入ります。
sudo apt update
この後に続けて設定を行う場合、改めて「apt update」を繰り返す必要はありません。
ただし数日あけてから再び作業する場合は、もう一度実行してください。
リモートアクセス(SSH)が有効だと外部から侵入されるリスクがあるため、使わないなら最初に閉じておくのが鉄則です。
LinuxMintのデフォルトでは OpenSSH サーバー(sshd)はインストールされていませんが、念のため確認しておきます。
以下を入力してEnterキーを押下します。
systemctl status ssh
結果に[Unit ssh.service could not be found.]と表示されている場合は正常です。
次の項に進みます。
もし動作していた場合は以下のような表示になるはずです。
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-09-22 14:05:32 JST; 1h 12min ago
Main PID: 1234 (sshd)
Tasks: 1 (limit: 18984)
Memory: 5.6M
CPU: 120ms
CGroup: /system.slice/ssh.service
└─1234 /usr/sbin/sshd -D
動作停止後の確認方法は、以下を入力してEnterキーを押下します。
●一時的に止める場合(再起動すると復活する場合あり)
sudo systemctl stop ssh
●恒久的に止める場合(再起動しても起動しない)
sudo systemctl disable ssh
動作を停止させたら再確認のために再度入力します。
systemctl status ssh
そうしたら以下のように出力されます。
○ ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; disabled; preset: enabled)
Active: inactive (dead)
この出力は、
- ssh サービス(リモートログイン用プログラム)は インストールされている。
(ssh.service) - サービスの定義は読み込まれているが、自動起動は無効化されている。
(Loaded: loaded … disabled) - 現在は停止して動作していない。よって、今の状態では外部からリモートアクセス(sshログイン)はできない。
(Active: inactive (dead))
という内容です。
外部からの不要なアクセスは遮断され、内部からの通信だけが許可される安全な状態になります。
以下を1行ずつ入力してEnterキーを押下します。
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw status verbose
そうしたら以下のように出力されます。
Status: active
Default: deny (incoming), allow (outgoing), disabled (routed)
この出力は、
- UFW が有効化されている(ファイアウォールが動作中)
(Status: active) - 外部から入ってくる通信はすべて拒否。
(Default: deny (incoming)) - 内部(自分のPC)から外に出る通信は許可。
(Default: allow (outgoing)) - ルーティング(Mint を中継して別のネットワークに流す機能)は 無効。
(disabled (routed))
という内容です。
つまり、「自分からインターネットへは普通にアクセスできるけど、外からの不正アクセスは遮断されている」状態です。
Linux Mint 本体とインストール済みソフトが自動的に最新状態へ更新され、セキュリティ修正も自動的に適用されるようになります。
この設定は 最初に 1 回行えば十分で、その後は自動でアップデートが実行されるため、毎回同じコマンドを入力する必要はありません。
以下を1行ずつ入力してEnterキーを押下します。
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
すると「パッケージの設定」画面に切り替わるので<はい>にしてEnterキーを押下します。

以下を入力してEnterキーを押下します。
cat /etc/apt/apt.conf.d/20auto-upgrades
“1”なっている項目は有効です。出力された内容が全て“1”なら有効化済みです。
※環境によっては「APT::Periodic::Download-Upgradeable-Packages “1”;」の表示が無い 場合があります。但し、
Update-Package-Lists “1”;更新可能なパッケージの情報は毎日取得する。
Unattended-Upgrade “1”;利用可能な更新があれば、自動的にインストールする。
なので、表示されなくても自動更新されるので大丈夫です。
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::Unattended-Upgrade "1";
Linux Mint に ClamAV2 がインストールされ、ウイルススキャンが利用可能になります。
ClamAV はデフォルトでは入っていないため、このステップが必須です。
以下を入力してEnterキーを押下します。
sudo apt install -y clamav clamav-daemon
確認のため、以下を入力してEnterキーを押下します。
clamscan --version
成功時の出力例(正常にインストールされていればバージョン番号が表示されます。)
ClamAV 1.4.3
ClamAV のウイルス定義ファイルが数時間ごとに自動更新され、新しいウイルスにも即座に対応できるようになります。
この設定も一度行えば以降は自動で繰り返されます。
以下を1行ずつ入力してEnterキーを押下します。
sudo systemctl enable clamav-freshclam
sudo systemctl start clamav-freshclam
systemctl status clamav-freshclam
出力例
● clamav-freshclam.service - ClamAV virus database updater
Active: active (running) since Mon 2025-09-22 10:11:05 JST; 1h 23min ago
Main PID: 1234 (freshclam)
…
lines 1-23
この「line 1-23」などは出力内容が長い場合に表示されます。
[q]キーを押して通常のターミナル表示に戻します。
また、この出力は、
- freshclam が動作中
(Active: active (running)) - 動き始めてからの経過時間
(1h 23min ago) - 実行中のプロセス番号
(Main PID)
という内容です。
この設定を行うと、ホームディレクトリ全体が監視対象となり、感染ファイルを開こうとした瞬間にスキャンされ、ブロックされます。
以下を入力してEnterキーを押下します。
sudo nano /etc/clamav/clamd.conf
画面表示が変わります。

この画面の下の方に追記します。
以下は追記例です。
1行ずつ入力してEnterキーを押下します。
●監視対象に「/home」以下すべてを含める という意味です。
「/home」は通常、ユーザーのデータ(ダウンロード・ドキュメント・デスクトップなど)が置かれる場所なので、感染リスクの高い領域をすべて監視します。
OnAccessIncludePath /home
●「/home/ユーザー名/.cache」を監視から除外 します。
「.cache」はアプリのキャッシュ用ディレクトリで、大量にアクセスが発生するため監視すると重くなりがちです。除外することで動作の軽快さを保ちます。
OnAccessExcludePath /home/*/.cache
●「/tmp」と「/var/tmp」を監視から除外 します。
これらはシステムやアプリが一時的に大量のファイルを作る場所なので、監視対象にすると負荷が高くなります。一般ユーザーが直接使うことは少なく、感染リスクも低めなので除外します。
OnAccessExcludePath /tmp
OnAccessExcludePath /var/tmp
●感染ファイルが見つかったときにブロックする という意味です。
「no」の場合は検知だけ(警告は出すが開けてしまう)。「yes」にすると、ウイルスファイルを実行しようとした瞬間にアクセスを止めるので、実害を防げます。
OnAccessPrevention yes
入力すると以下のようになります。

[Ctrl]+[O(オー)]キーを押下して保存します。
画面下に「書き込むファイル」が表示されます。

[Enter]キーを押下して確定します。

[Ctrl]+[X]キーでnanoを終了し、通常のターミナル表示に戻します。
私はここで画面が固まったので電源長押しで再起動しました。
nanoの設定を確認しましたが、反映されているようなのでターミナルで設定の続きをやりました。
この設定を行うと、PCを起動した直後に「/home」を短時間スキャンして、新たな脅威がないか即座に確認できます。さらに週1回のフルスキャンを自動実行。もし電源OFFで逃しても、次回起動時に補完実行されます。
常時常駐するより軽量で、Linux Mint で現実的な運用方法ですが、個人の好みもあるのでおまかせします。
●起動時クイックスキャン
以下を入力してEnterキーを押下します。
sudo nano /etc/systemd/system/clamav-quickscan.service
画面表示が変わるので、以下の内容を貼り付けます。
[Unit]
Description=ClamAV quick scan at startup (/home only)
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/usr/bin/ionice -c3 /usr/bin/nice -n 19 /usr/bin/clamscan -r -i /home --log=/var/log/clamav/quickscan.log
SuccessExitStatus=0 1
[Install]
WantedBy=multi-user.target

[Ctrl]+[O(オー)]キーを押下して保存します。
画面下に「書き込むファイル」が表示されます。

[Enter]キーを押下して確定します。

[Ctrl]+[X]キーでnanoを終了し、通常のターミナル表示に戻します。
有効化します。
以下を1行ずつ入力してEnterキーを押下します。
sudo systemctl daemon-reload
sudo systemctl enable clamav-quickscan.service
動作確認します。
systemctl status clamav-quickscan.service
出力例です。
● clamav-quickscan.service - ClamAV quick scan at startup (/home only)
Loaded: loaded (/etc/systemd/system/clamav-quickscan.service; enabled)
Active: inactive (dead)
lines 1-3/3(END)
「lines 1-3/3(END)」などが表示されている場合、[q]キーを押して通常のターミナル表示に戻します。
●週1回フルスキャン
以下を入力してEnterキーを押下します。
sudo nano /etc/systemd/system/clamav-fullscan.service
以下の内容を貼り付けます。
[Unit]
Description=ClamAV full scan (weekly)
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/bin/ionice -c3 /usr/bin/nice -n 19 /usr/bin/clamscan -r -i / \
--exclude-dir="^/proc" --exclude-dir="^/sys" --exclude-dir="^/dev" \
--exclude-dir="^/run" --exclude-dir="^/tmp" --exclude-dir="^/var/tmp" \
--log=/var/log/clamav/fullscan.log
SuccessExitStatus=0 1

[Ctrl]+[O(オー)]キーを押下して保存します。
画面下に「書き込むファイル」が表示されます。

[Enter]キーを押下して確定します。

[Ctrl]+[X]キーでnanoを終了し、通常のターミナル表示に戻します。
タイマーを作成します。
sudo nano /etc/systemd/system/clamav-fullscan.timer
以下の内容を貼り付けます。
日曜日のAM10時にフルスキャンするスケジュールですが、PCの電源が入っていないと実行できません。
その為、次回PCを起動したタイミングで実行させるようにします。
[Unit]
Description=Run ClamAV full scan weekly (with persistence)
[Timer]
OnCalendar=Sun 10:00
Persistent=true
Unit=clamav-fullscan.service
[Install]
WantedBy=timers.target

[Ctrl]+[O(オー)]キーを押下して保存します。
画面下に「書き込むファイル」が表示されます。

[Enter]キーを押下して確定します。

[Ctrl]+[X]キーでnanoを終了し、通常のターミナル表示に戻します。
有効化します。
以下を1行ずつ入力してEnterキーを押下します。
sudo systemctl daemon-reload
sudo systemctl enable --now clamav-fullscan.timer
動作確認します。
systemctl status clamav-fullscan.timer
出力例
● clamav-fullscan.timer - Run ClamAV full scan weekly (with persistence)
Loaded: loaded (/etc/systemd/system/clamav-fullscan.timer; enabled)
Active: active (waiting) since Mon 2025-09-22 10:20:01 JST; 1min 20s ago
Trigger: Sun 2025-09-28 03:00:00 JST; 5 days left
Triggers: ● clamav-fullscan.service
lines 1-7/7(END)
「lines 1-7/7(END)」などが表示されている場合、[q]キーを押して通常のターミナル表示に戻します。

この設定を行うと、ClamAV が出力するログ(clamav.log, quickscan.log, fullscan.log)が、無限に追記されてディスク容量を圧迫するのを防げます。週1回ローテーションし、最新4世代を残して古いものを自動削除。古いログは自動的に圧縮(.gz)され、保存容量も軽くなるのでディスク容量を圧迫せずに運用できます。
以下を1行ずつ入力してEnterキーを押下します。
sudo mkdir -p /var/log/clamav
sudo chown clamav:adm /var/log/clamav
何も表示されなければ正常です。
次に logrotate の設定ファイルを編集します。
sudo nano /etc/logrotate.d/clamav
以下の内容を貼り付けます。。
一般的によく設定されている「毎週(Weekly)ローテーションで最新の4世代(rotate 4)保持。最新ではない古いログは圧縮保持し、期間経過後に削除。」にします。
毎日ログを取って7日間保持する場合は、
・Weekly → daily
・rotate 4 → rotate 7
という風に変更します。
/var/log/clamav/*.log {
weekly
rotate 4
compress
missingok
notifempty
create 640 clamav adm
sharedscripts
postrotate
systemctl reload clamav-daemon > /dev/null 2>&1 || true
endscript
}

[Ctrl]+[O(オー)]キーを押下して保存します。
画面下に「書き込むファイル」が表示されます。

[Enter]キーを押下して確定します。

[Ctrl]+[X]キーでnanoを終了し、通常のターミナル表示に戻します。
動作確認します。
強制的に logrotate を実行して挙動を確認できます。
sudo logrotate -f /etc/logrotate.d/clamav
その後、ログディレクトリを確認。
ls -l /var/log/clamav
出力例
-rw-r----- 1 clamav adm 12345 9月 23 10:00 clamav.log
-rw-r----- 1 clamav adm 6789 9月 23 10:00 quickscan.log
-rw-r----- 1 clamav adm 4567 9月 23 10:00 fullscan.log
-rw-r----- 1 root adm 123 9月 16 03:00 clamav.log.1.gz
実際の出力↓↓↓

「.1.gz」などがあればローテーション+圧縮が成功しています。
データ容量が少ないので特に問題ありませんが、多い場合はスキャンで起動時がもたつく可能性があります。
その場合は他のタイミングや手動操作に変更してみましょう。
この操作を行うと、ClamAV が正しく動作しているかを安全に確認できます。テストファイルは即座に削除またはブロックされ、ログに記録されます。
まずはディレクトリの表示を確認します。
ls ~

ディレクトリが日本語の場合と英語の場合で次の「ダウンロード」が部分的に異なります。
英語の場合はダウンロードをDownloadに変換して下さい。
以下を1行ずつ入力してEnterキーを押下します。
●日本語の場合
以下を入力してEnterキーを押下します。
ダウンロードが英語の場合、「その様なファイルやディレクトリはありません」と表示されます。
また、ディレクトリが日本語なのに、ダウンロードをDownloadsにすると同じ表示になりますので注意です。
echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > ~/ダウンロード/eicar.com
「~/ダウンロード」ディレクトリに「eicar.com」が作成されます。
ファイルの存在確認をします。
ls -l ~/ダウンロード/eicar.com
出力例はこんな↓↓↓感じです。
-rw-r--r-- 1 user user 68 9月 23 10:15 /home/user/ダウンロード/eicar.com
ClamAV でスキャンします。
clamscan ~/ダウンロード/eicar.com
出力例
「FOUND」と表示されれば、検知できている証拠です。
/home/user/ダウンロード/eicar.com: Eicar-Test-Signature FOUND
----------- SCAN SUMMARY -----------
Known viruses: 8734567
Engine version: 0.103.2
Scanned files: 1
Infected files: 1
Data scanned: 0.00 MB
Time: 0.001 sec (0 m 0 s)

テストが終わったら必ずテストファイルを削除しておきます。
rm ~/ダウンロード/eicar.com
この確認を行うと、ClamAV の定義更新サービス(freshclam)とオンアクセス監視(clamonacc)が正常に稼働しているかを把握できます。これを時々チェックすることで「知らない間に止まっていた」を防げます。
●ClamAV 定義更新サービス(freshclam)
以下を1行ずつ入力してEnterキーを押下します。
systemctl status clamav-freshclam
出力例はこんな↓↓↓感じです。
● clamav-freshclam.service - ClamAV virus database updater
Loaded: loaded (/lib/systemd/system/clamav-freshclam.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-09-22 10:11:05 JST; 1h 23min ago
Main PID: 1234 (freshclam)
Tasks: 1 (limit: 19034)
Memory: 12.0M
CPU: 5.432s

「lines 1-23」などが表示されている場合、[q]キーを押して通常のターミナル表示に戻します。
この出力は、
- サービスがシステムに登録され、自動起動も有効
(Loaded: loaded … enabled) - 現在動作中
(Active: active (running)) - 最後に実行してからの時間
(since … 1h 18min ago) - 実行中プロセスの番号
(Main PID)
という内容です。
あとは、ClamAV で「スキャンが動かなくなる/急にエラーになる3」ことが過去に何度か報告されていますので、以下に日常で確認すべき項目を記載しておきます。
●自動更新が動いているか
以下を入力してEnterキーを押下します。
systemctl status unattended-upgrades
Active: active (running) → 自動更新サービスが動作中
●起動時クイックスキャンの設定確認
以下を入力してEnterキーを押下します。
systemctl status clamav-quickscan.service
「Loaded: … enabled」→ 自動起動に登録済み
実行後は「inactive (dead)」と出ても正常(1回限り実行型だから)
●週1フルスキャンのタイマー確認
以下を入力してEnterキーを押下します。
systemctl status clamav-fullscan.timer
「Active: active (waiting)」 → 正常に待機中
「since …」 → 最後に実行した日時
「Trigger:」 → 次回実行予定日時
●ログ確認(検出結果)
以下は、一度も動いていないとファイルそのものが作られていませんので「~そのようなファイルやディレクトリはありません」と表示されます。
作られた後に実行してみて下さい。
・クイックスキャンのログ
tail -n 20 /var/log/clamav/quickscan.log
・フルスキャンのログ
tail -n 20 /var/log/clamav/fullscan.log
「FOUND」が無ければ検出なし、問題なし。
この仕組みを利用すれば、ファイルにアクセスされた瞬間にスキャンとブロックが働きます。
ただし Windows Defender のように「挙動監視」や「ネットワーク監視」までは行わないため、厳密には「リアルタイム保護」ではなく、リアルタイムに近い監視と理解するのが正確です。
お疲れ様です。
見てくれてありがとね(・ω・)ノシ
- Linux は Windows や macOS と同じ「オペレーティングシステム(OS)」ですが、1社が独占開発しているわけではなく、世界中のコミュニティや企業が協力して発展させています。
このため、Linux には用途や方針ごとに分かれた「ディストリビューション(配布版)」が多数存在します。
代表的なディストリビューションは以下の通りです。
Ubuntu:初心者から企業利用まで幅広く使われる定番
Debian:安定性重視。Ubuntu のベースになっている
Fedora / Red Hat:最新技術を積極採用。企業向けサポートあり
Arch Linux:自分で一から構築する上級者向け
Linux Mint:Ubuntu をベースに、Windows 風の操作感を重視した初心者向け ↩︎ - ClamAV(クラムエーブイ) はオープンソースの無料ウイルス対策ソフトです。Linux サーバーやメールゲートウェイで広く利用され、ウイルス・マルウェア・トロイの木馬などを検出します。商用製品ほど多機能ではありませんが、Linux 環境で無料で導入できる代表的なセキュリティ手段です。 ↩︎
- スキャンが動かなくなった典型的な原因
1)ウイルス定義ファイル(シグネチャ)の更新失敗
2)バージョン非互換
3)設定ファイルのエラー
4)システム環境の更新による影響 ↩︎