本記事の構成および論理分析には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 usernameusername の部分は任意の名前に変えます。作成したユーザーで SSH ログインできることを確認してから、root による直接ログインを無効にします。/etc/ssh/sshd_config を編集して次の行を変更します。
PermitRootLogin no変更後、SSH サービスを再起動して設定を反映します。
sudo systemctl restart sshdSSH 鍵認証を設定してパスワードログインを無効にする
パスワードだけの認証は、自動化された総当たり攻撃に対して脆弱です。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鍵認証とファイアウォールを設定した後でも、攻撃の試みは記録として残ります。ログを定期的に確認することで、異常なアクセスパターンに気づけます。すべての行を読む必要はなく、Failed や Invalid という文字が大量に続いていないかを確認するだけで十分です。
まとめ|最初に整えておく 5 つの設定
第 16 回で確認したポイントをまとめます。
- 一般ユーザーの作成と root ログイン無効化:
adduser+usermod -aG sudoで作成し、sshd_configでPermitRootLogin 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 がなぜ安全なのかを整理していきます。










