【Ubuntu講座番外編】現場で役立つ!セキュリティ強化と自動化の「裏ワザ」総まとめ

Linux

【番外編】「動く」から「守る」へ。プロのUbuntu運用術

世界シェアNo.1のLinux OS「Ubuntu(ウブントゥ)」をマスターする短期集中連載、今回は特別編となる「番外編(付録)」をお届けします。

これまでの全3回で、Ubuntuの基礎、APTコマンド、そしてNginxとDockerによるモダンなWebサーバー構築までを学びました。
これだけでも十分に「サーバーを作れる人」にはなりましたが、実務の現場では「作った後(運用)」の方が遥かに長い時間を過ごすことになります。

今回は、連載中には尺の都合で紹介しきれなかった、しかし現場では絶対に欠かせない「セキュリティ設定」「バックアップの自動化」「ログの調査方法」「SSL化」といった実用的なテクニックを、辞書代わりに使えるレベルで徹底解説します。

コウ君

先生!DockerでWebサーバーを立ち上げて満足してましたけど、よく考えたら「鍵(SSL)」がかかってないし、バックアップも取ってないことに気づきました…。
これじゃ怖くて公開できないですよね?
Ubuntuでのやり方を教えてください!

リナックス先生

その「怖さ」に気づけたのは成長の証よ。
サーバー構築は「動いたら終わり」じゃなくて「動いてからが本番」なの。
今日はUbuntu特有の便利なツールを使い倒して、あなたのサーバーを鉄壁の要塞に仕上げるわよ!

目次:今回学ぶ「現場の必須スキル」

  1. セキュリティ編: SSHのポート変更と鍵認証、UFWの応用設定
  2. 自動化編: Cron(クーロン)を使った定期バックアップ
  3. トラブルシューティング編: journalctlによるログ解析
  4. SSL化編: NginxでのLet’s Encrypt導入
  5. 付録: Ubuntuコマンド チートシート

1. セキュリティ編:SSHとファイアウォールの強化

VPSを借りてインターネットに公開した瞬間から、あなたのサーバーは世界中のハッカー(ボット)から攻撃を受け続けています。
「初期設定」のままで放置するのは、鍵を開けたまま外出するようなものです。

SSHポートの変更とRootログイン禁止

攻撃者の99%は、SSHの標準ポートである「22番」を狙ってきます。
これを変更するだけで、無駄な攻撃ログを劇的に減らすことができます。

設定ファイルを開きます。

sudo vi /etc/ssh/sshd_config

以下の箇所を修正します。

# 1. ポート番号の変更(例:22222番など、被らない番号にする)
#Port 22
Port 22222

# 2. Rootでの直接ログインを禁止(一般ユーザーで入ってsudoを使う)
#PermitRootLogin yes
PermitRootLogin no

# 3. パスワード認証を禁止(公開鍵認証の設定が終わってからやること!)
#PasswordAuthentication yes
PasswordAuthentication no

保存したら、設定を反映させます。

sudo systemctl restart sshd

注意: ポートを変更したら、必ずファイアウォール(UFW)でもそのポートを許可しないと、自分が閉め出されてしまいます!

UFW(Uncomplicated Firewall)の応用

第3回で少し触れたUFWですが、もう少し賢い使い方があります。

SSHポートの許可(新しい番号):

sudo ufw allow 22222/tcp

総当たり攻撃(ブルートフォース)対策:
「allow」の代わりに limit を使うと、「30秒間に6回以上接続してきたらブロックする」という制限をかけることができます。
SSHにはこれを使っておくのがベストプラクティスです。

sudo ufw limit 22222/tcp

状態の確認:
番号付きでルールを確認し、不要なものを削除する際にも使います。

sudo ufw status numbered
# 削除する場合
sudo ufw delete [番号]

2. 自動化編:Cronで寝ている間に仕事をさせる

サーバー管理者が毎日手動でバックアップを取るのは不可能です。
Linuxには Cron(クーロン) という、「決まった時間にコマンドを実行してくれる目覚まし時計」のような機能があります。

Cronの設定方法

以下のコマンドで設定ファイルを開きます。

crontab -e

初めて実行すると「エディタは何を使う?」と聞かれます。一番簡単な nano(通常は1番)を選んでおけばOKです。

書き方のルール

分 時 日 月 曜日 コマンド の順で記述します。

例:毎日深夜3時に、Webサイトのデータをバックアップする

0 3 * * * tar -czf /home/kou/backup_$(date +\%Y\%m\%d).tar.gz /var/www/html
  • 0 3 * * * : 毎日3時00分に実行。
  • tar -czf ... : 指定したフォルダを圧縮して保存するコマンド。
  • $(date +\%Y\%m\%d) : ファイル名に日付(例:20260115)を自動で入れる魔法の記述。

これで、あなたは寝ていてもサーバーが勝手に仕事をしてくれるようになります。

3. トラブルシューティング編:journalctlの流儀

「Nginxが起動しない!」「Dockerが動かない!」
そんな時、RHEL系では /var/log/messages を見るのが定番でしたが、Ubuntu(Systemd採用のモダンLinux)では journalctl(ジャーナルコントロール) を使うのが現代の流儀です。

基本の使い方

全てのエラーログを見る(赤字で表示):

sudo journalctl -p err

特定のサービスのログだけ見る(例:Nginx):

sudo journalctl -u nginx

リアルタイムで監視する(tail -f と同じ):

sudo journalctl -f

今日のログだけ見る:

sudo journalctl --since "today"

ログファイル(テキスト)を直接開くよりも、検索やフィルタリングが圧倒的に楽です。
Ubuntuでトラブルが起きたら、まずは「ジャーナルを見る」ことを習慣にしましょう。

4. SSL化編:NginxでのLet’s Encrypt

第12回(LAMP講座)ではApacheでのSSL化をやりましたが、Nginxの場合はコマンドが少し違います。
Ubuntu + Nginxの環境で、無料でHTTPS化する手順です。

1. 必要なツールのインストール

Ubuntuでは、CertbotのNginx用プラグインが用意されています。

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

2. 証明書の取得と設定

以下のコマンドを実行するだけで、Nginxの設定ファイルを自動で書き換えてくれます。

sudo certbot --nginx

メールアドレスの入力や、対象ドメインの選択画面が出ます。
最後に「HTTPからHTTPSへリダイレクトしますか?」と聞かれたら、Redirect(2番)を選びましょう。

これで、Nginxの設定ファイル(/etc/nginx/sites-available/default など)の中にSSLの設定が自動的に追記され、鍵マークがつくようになります。

5. 【保存版】Ubuntuコマンド チートシート

最後に、Ubuntuを運用する上で「これだけは覚えておけ!」というコマンドを辞書形式でまとめました。
困った時にここを見返してください。

パッケージ管理(APT/Snap)

コマンド 意味
sudo apt update ソフトのカタログ情報を更新する(必須)。
sudo apt upgrade インストール済みのソフトを最新版にする。
sudo apt install [ソフト名] ソフトをインストールする。
sudo apt remove [ソフト名] ソフトを削除する(設定ファイルは残る)。
sudo apt purge [ソフト名] 設定ファイルごと完全に削除する。
sudo apt autoremove 不要になった依存パッケージを掃除する。
apt search [キーワード] ソフトを検索する。
sudo snap install [ソフト名] Snap形式(最新版アプリなど)でインストールする。

サービス管理(Systemd)

コマンド 意味
sudo systemctl start [サービス名] サービス(Nginxなど)を起動する。
sudo systemctl stop [サービス名] サービスを停止する。
sudo systemctl restart [サービス名] 設定変更後などに再起動する。
sudo systemctl enable [サービス名] サーバー再起動時に自動起動するように設定する。
sudo systemctl status [サービス名] 動いているか確認する(Active: runningならOK)。

ネットワーク・調査

コマンド 意味
ip a 自分のIPアドレスを確認する(ifconfigの現代版)。
df -h ディスク容量を確認する。
free -h メモリ使用量を確認する。
htop CPUやメモリの使用率をグラフィカルに表示する(要インストール)。
ufw status ファイアウォールの状態を確認する。

まとめ:学び続けるエンジニアへ

以上で、Ubuntu講座の全日程+番外編が終了です。
ここまで読み進めたあなたは、ただ「コマンドを写経する人」から、「意味を理解してサーバーを管理できるエンジニア」へと進化しています。

Ubuntuは、世界で最も進化の速いOSの一つです。
これからも新しい機能や便利なツールが次々と登場することでしょう。
しかし、今回学んだ「APT」「Systemd」「ログの読み方」「セキュリティの基本」といった土台があれば、どんな新技術にも対応できるはずです。

あなたのサーバーが、トラブルなく安定して稼働し続けることを願っています。
そして、もしまた新しい技術の壁にぶつかったら、いつでも「Linux工房」に戻ってきてください。

リナックス先生

サーバー構築に「完璧なゴール」はないわ。
毎日が改善、毎日が勉強よ。
でも、今のあなたならきっと楽しめるはず。
さあ、ターミナルを開いて、世界を変えるようなサービスを作りに行きなさい!

▼学んだ知識を実践するための推奨VPS

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント