【番外編】「動く」から「守る」へ。プロのUbuntu運用術
世界シェアNo.1のLinux OS「Ubuntu(ウブントゥ)」をマスターする短期集中連載、今回は特別編となる「番外編(付録)」をお届けします。
これまでの全3回で、Ubuntuの基礎、APTコマンド、そしてNginxとDockerによるモダンなWebサーバー構築までを学びました。
これだけでも十分に「サーバーを作れる人」にはなりましたが、実務の現場では「作った後(運用)」の方が遥かに長い時間を過ごすことになります。
今回は、連載中には尺の都合で紹介しきれなかった、しかし現場では絶対に欠かせない「セキュリティ設定」「バックアップの自動化」「ログの調査方法」「SSL化」といった実用的なテクニックを、辞書代わりに使えるレベルで徹底解説します。
先生!DockerでWebサーバーを立ち上げて満足してましたけど、よく考えたら「鍵(SSL)」がかかってないし、バックアップも取ってないことに気づきました…。
これじゃ怖くて公開できないですよね?
Ubuntuでのやり方を教えてください!
その「怖さ」に気づけたのは成長の証よ。
サーバー構築は「動いたら終わり」じゃなくて「動いてからが本番」なの。
今日はUbuntu特有の便利なツールを使い倒して、あなたのサーバーを鉄壁の要塞に仕上げるわよ!
目次:今回学ぶ「現場の必須スキル」
- セキュリティ編: SSHのポート変更と鍵認証、UFWの応用設定
- 自動化編: Cron(クーロン)を使った定期バックアップ
- トラブルシューティング編: journalctlによるログ解析
- SSL化編: NginxでのLet’s Encrypt導入
- 付録: 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


コメント