第16回|安全に、安心して使い続けるための基本設定(VPS/Linux)|やさしい UNIX & Linux

* 当サイトでは、コンテンツの一部に広告を掲載しています。

System Note $ cat /proc/ai-disclosure

本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。

第16回|安全に、安心して使い続けるための基本設定(VPS/Linux)|やさしい UNIX & Linux

やさしい UNIX & Linux | 第16回

目次

トラブルを「減らす」ための設定

第 15 回では、トラブルが起きたときの対処手順を整理しました。ログを読む・バックアップから戻す・再起動して状態をリセットする、という流れです。

この回では、そもそもトラブルを起こしにくくするための「守りの設定」を取り上げます。VPS はインターネットに常時接続しているため、設定が甘いままだと不正アクセスを受けるリスクがあります。難しい設定ではなく、最初に一度整えておくべき基本事項です。

なぜセキュリティ設定が必要か

自分のパソコンは使わないときに電源を切ります。VPS は違います。24 時間・365 日、インターネットに接続した状態で動き続けます。これは便利な一方で、外部から常に「入口が見えている」状態でもあります。

VPS を起動した直後から、SSH へのブルートフォース攻撃(パスワードを総当たりで試みる攻撃)が自動的に届くことがあります。これは特定の攻撃者が狙っているわけではなく、インターネット上を自動的に巡回するプログラムによるものです。設定を整えておけば、こうした攻撃は効果を持ちません。

一般ユーザーを作成して root ログインを制限する

第 13 回で説明したとおり、root は Linux で最も強い権限を持つユーザーです。誤操作の影響が大きいため、普段の作業は一般ユーザーで行い、管理者権限が必要なときだけ sudo を使うのが基本です。

一般ユーザーの作成と sudo 権限の付与は、次のコマンドで行います(Ubuntu の場合)。

adduser username
usermod -aG sudo username

username の部分は任意の名前に変えます。作成したユーザーで SSH ログインできることを確認してから、root による直接ログインを無効にします。/etc/ssh/sshd_config を編集して次の行を変更します。

PermitRootLogin no

変更後、SSH サービスを再起動して設定を反映します。

sudo systemctl restart sshd

SSH 鍵認証を設定してパスワードログインを無効にする

パスワードだけの認証は、自動化された総当たり攻撃に対して脆弱です。SSH 鍵認証に切り替えると、秘密鍵ファイルを持つ端末からしかログインできなくなります。

鍵ペアの生成は、自分のパソコン側(サーバーではなく)のターミナルで行います。

ssh-keygen -t ed25519

生成された公開鍵(~/.ssh/id_ed25519.pub)をサーバーに登録します。

ssh-copy-id username@サーバーのIPアドレス

鍵認証でログインできることを確認したら、/etc/ssh/sshd_config でパスワード認証を無効にします。

PasswordAuthentication no

変更後は再度 sudo systemctl restart sshd で反映します。パスワード認証を無効にする前に、必ず鍵認証でのログインが動作していることを確認してください。ここを誤ると自分もログインできなくなります。

ファイアウォールで必要な通信だけを許可する

Linux サーバーには多数の通信ポートがありますが、最初に必要なのは SSH(ポート 22)と、Web サーバーを動かすなら HTTP(ポート 80)・HTTPS(ポート 443)だけです。Ubuntu では ufw(Uncomplicated Firewall)を使って簡単に設定できます。

sudo ufw allow ssh
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable

有効化すると、許可したポート以外への通信はすべてブロックされます。設定の確認は次のコマンドで行います。

sudo ufw status

注意点として、ufw enable を実行する前に SSH が許可されていることを必ず確認します。SSH を許可せずに有効化すると、以降の SSH 接続がすべてブロックされてアクセス不能になります。

システムを定期的にアップデートする

OS やソフトウェアには、定期的にセキュリティ上の問題(脆弱性)が発見され、修正パッチが提供されます。更新を後回しにすると、既知の脆弱性を突いた攻撃を受けるリスクが高まります。

sudo apt update && sudo apt upgrade

月に一度程度を目安に実行する習慣をつけておくと、安全な状態を維持できます。アップデート後に再起動が必要な場合は sudo reboot を実行します。

ログの確認習慣を持つ

第 15 回で説明したとおり、ログはサーバーの診断記録です。SSH への不正アクセス試行は /var/log/auth.log に記録されます。

sudo tail -f /var/log/auth.log

鍵認証とファイアウォールを設定した後でも、攻撃の試みは記録として残ります。ログを定期的に確認することで、異常なアクセスパターンに気づけます。すべての行を読む必要はなく、FailedInvalid という文字が大量に続いていないかを確認するだけで十分です。

まとめ|最初に整えておく 5 つの設定

第 16 回で確認したポイントをまとめます。

  • 一般ユーザーの作成と root ログイン無効化adduser + usermod -aG sudo で作成し、sshd_configPermitRootLogin no を設定
  • SSH 鍵認証の設定ssh-keygen で鍵を生成し、ssh-copy-id で登録。鍵認証確認後に PasswordAuthentication no を設定
  • ファイアウォール(ufw)の設定:SSH・HTTP・HTTPS のみ許可して ufw enable。有効化前に SSH の許可を必ず確認
  • 定期アップデートapt update && apt upgrade を月 1 回程度実行してセキュリティパッチを適用
  • ログの確認習慣/var/log/auth.log を定期的に確認し、異常なアクセスパターンを早期に把握

これらの設定は、一度整えておけば以後の運用が大きく楽になります。安全な土台の上にあってこそ、Linux の学習や実験を安心して進められます。

次回予告

第 16 回では、VPS を安全に運用するための 5 つの基本設定を確認しました。

第 17 回では、SSH という仕組みそのものを改めて深掘りします。第 13 回で「SSH を使って接続する」手順を確認しましたが、今回は「SSH とはどのような仕組みか」という内側の話です。公開鍵・秘密鍵の仕組み、暗号化の考え方、SSH がなぜ安全なのかを整理していきます。

さらに学びたいあなたへ

用途ごとに選ぶ Linux のおすすめ本

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe マスター

Macintosh Color Classicから始まった旅は、長いWindows時代を経て、Windows10のサポート終了をきっかけにUNIXの世界へ戻ってきました。UNIX Cafeでは、UNIX・Linux・そしてMacな世界を、むずかしい言葉を使わず、物語のように書いています。プログラミングは、アイデアをコンピューターに伝えるための言葉です。簡単な単語と文法を覚えれば、誰でもコマンドを使えます。ぜひ一度、やさしいプログラミングの世界をのぞいてみてください。

Created by UNIX Cafe

目次