開発運用

Ubuntuサーバーのユーザー管理

Ubuntuサーバーにおけるセキュリティと保護の基本: ユーザー管理

Ubuntuは、オープンソースであり、非常に人気のあるLinuxディストリビューションです。多くの企業や個人が、Webサーバー、データベースサーバー、開発環境、さらにはセキュリティ重視のシステムでUbuntuを使用しています。セキュリティの維持は、特にサーバー環境において極めて重要であり、ユーザー管理はその中心的な役割を果たします。本記事では、Ubuntuサーバーにおけるセキュリティの基本概念と、ユーザー管理の方法について詳述します。

1. ユーザー管理の重要性

Ubuntuシステムにおいて、ユーザー管理はセキュリティの最初の防衛線です。システムにアクセスできる人物やプロセスを適切に制御することは、サーバーやデータの不正アクセスを防ぐために不可欠です。ユーザーには特定の権限が与えられ、これを管理することでシステムの安全性を確保できます。

2. 基本的なユーザー管理コマンド

Ubuntuでは、ユーザーを管理するためのコマンドがいくつか用意されています。主なコマンドとしては、useraddusermoduserdelpasswdなどがあります。

2.1 useradd コマンド

useraddコマンドは、新しいユーザーをシステムに追加するために使用されます。例えば、新しいユーザー「exampleuser」を作成するには、次のコマンドを実行します。

bash
sudo useradd exampleuser

このコマンドは、指定されたユーザー名で新しいユーザーを作成します。ただし、ホームディレクトリを作成するオプションや、デフォルトのシェルを設定するオプションもあります。例えば、次のように指定できます。

bash
sudo useradd -m -s /bin/bash exampleuser

これにより、ユーザー「exampleuser」のホームディレクトリが作成され、/bin/bashがシェルとして設定されます。

2.2 usermod コマンド

usermodコマンドは、既存のユーザーの属性を変更するために使用されます。たとえば、ユーザーのグループを変更したり、パスワードを変更したりすることができます。ユーザー「exampleuser」を管理者グループに追加する場合、次のように実行します。

bash
sudo usermod -aG sudo exampleuser

これにより、「exampleuser」はsudoグループに追加され、管理者権限を持つようになります。

2.3 userdel コマンド

userdelコマンドは、システムからユーザーを削除するために使用されます。例えば、ユーザー「exampleuser」を削除するには、次のコマンドを実行します。

bash
sudo userdel exampleuser

さらに、そのユーザーのホームディレクトリを削除するには、-rオプションを追加します。

bash
sudo userdel -r exampleuser

3. パスワード管理

パスワードはユーザーアカウントのセキュリティを保護する重要な要素です。Ubuntuでは、passwdコマンドを使用してユーザーのパスワードを設定および変更することができます。

3.1 パスワードの設定

ユーザーのパスワードを設定するには、次のようにpasswdコマンドを使用します。

bash
sudo passwd exampleuser

このコマンドを実行すると、exampleuserの新しいパスワードを入力するよう求められます。

3.2 パスワードポリシー

セキュリティを強化するためには、強力なパスワードポリシーを設定することが重要です。Ubuntuでは、/etc/login.defsファイルを編集することで、パスワードの最小長や有効期限などのポリシーを設定できます。例えば、次のように変更することができます。

bash
PASS_MIN_LEN 12

これにより、パスワードの最小長を12文字に設定することができます。

4. グループ管理

Ubuntuでは、ユーザーはグループに属することで権限を得ます。グループ管理を適切に行うことで、ユーザーがアクセスできるリソースを制限し、セキュリティを強化できます。

4.1 グループの作成

新しいグループを作成するには、groupaddコマンドを使用します。

bash
sudo groupadd examplegroup

4.2 ユーザーをグループに追加

ユーザーを特定のグループに追加するには、usermodコマンドを使用します。たとえば、ユーザー「exampleuser」をグループ「examplegroup」に追加するには、次のコマンドを実行します。

bash
sudo usermod -aG examplegroup exampleuser

5. sudo の設定

sudoは、システム管理者権限を一時的にユーザーに付与するための重要なツールです。ユーザーにsudo権限を付与することで、重要な管理タスクを実行できるようになりますが、そのアクセスを適切に制限することが必要です。

5.1 sudo 権限の付与

sudo権限を持つユーザーは、/etc/sudoersファイルで管理されています。通常、sudoグループに追加されたユーザーはsudo権限を持つことができます。ユーザーをsudoグループに追加するには、次のコマンドを使用します。

bash
sudo usermod -aG sudo exampleuser

また、sudoersファイルを直接編集して、特定のコマンドのみを許可することもできます。sudo visudoコマンドを使用して、sudoersファイルを編集できます。

bash
sudo visudo

ここで、特定のユーザーに特定のコマンドのみを実行させるよう設定できます。

5.2 sudo の使用制限

不要な権限を与えないためにも、必要最小限の権限をユーザーに付与することが重要です。sudoの権限を過剰に与えないように注意しましょう。

6. ログイン試行の制限

Ubuntuでは、特定のユーザーがログインを試みた回数を制限することで、ブルートフォース攻撃を防ぐことができます。この機能を提供するのがpam_tally2というモジュールです。

6.1 ログイン試行回数の制限

/etc/pam.d/common-authファイルに設定を追加することで、ログイン試行の回数を制限できます。たとえば、次のように設定します。

bash
auth required pam_tally2.so deny=3 onerr=fail

この設定により、3回連続してログインに失敗した場合、そのユーザーのアカウントはロックされます。

7. SSHアクセスのセキュリティ強化

SSHはリモート接続に使われる一般的なプロトコルですが、セキュリティを強化するためにいくつかの設定が必要です。

7.1 パスワード認証の無効化

パスワード認証を無効にすることで、SSH接続におけるセキュリティリスクを低減できます。/etc/ssh/sshd_configファイルを編集し、次の設定を行います。

bash
PasswordAuthentication no

その後、SSHサービスを再起動します。

bash
sudo systemctl restart ssh

7.2 公開鍵認証の使用

公開鍵認証を使用することで、SSH接続のセキュリティを大幅に強化できます。公開鍵認証を設定するには、リモートサーバーの~/.ssh/authorized_keysファイルに公開鍵を配置します。

8. セキュリティアップデートの自動化

システムを最新の状態に保つことは、セキュリティの最も基本的な対策です。Ubuntuでは、自動的にセキュリティアップデートをインストールするよう設定することができます。

8.1 unattended-upgrades の設定

unattended-upgradesを使用することで、セキュリティアップデートを自動的にインストールできます。まず、パッケージをインストールします。

bash
sudo apt install unattended-upgrades

その後、/etc/apt/apt.conf.d/50unattended-upgradesファイルを編集して、自動アップデートを有効にします。

まとめ

Ubuntuサーバーのセキュリティを維持するためには、ユーザー管理、パスワード管理、グループ管理、sudo設定、SSHのセキュリティ強化、そしてセキュリティアップデートの自動化が重要です。これらの基本的なセキュリティ管理を行うことで、システムを不正アクセスから守り、安全に運用することができます。

Back to top button