AWS

【AWS】EC2インスタンスにSFTP専用ユーザーを作成する方法!

「EC2インスタンスでSFTPユーザーを作りたいんだけど、どうやればいいの?」と思ったことはありませんか?

この記事では、既存のguestuserがいる環境で新しいSFTP専用ユーザーを作成する手順を、ステップごとに分かりやすく説明します!

技術的な知識があまりなくても、しっかりフォローできるように解説していきますよ。

さっそく始めましょう。

SFTPとは?

まず最初に、SFTPって何?というところからお話しします。

SFTP(SSH File Transfer Protocol)は、SSHプロトコルを使って安全にファイルを転送するための仕組みです。

これに特化したユーザーを作ることで、ファイルのやり取りを安全に、かつ効率的に行うことができます。

この専用ユーザーは通常のSSHアクセスとは違い、サーバー内に制限された環境でのみファイル操作が可能です。

新しいSFTP専用ユーザーを作成する理由

サーバーに既存のguestuserがいるのに、なぜ新しいユーザーを作る必要があるのでしょうか?

それは、セキュリティと管理の効率化が理由です。

例えば、複数のユーザーが同じサーバーにアクセスする場合、それぞれのアクセス権限を分けておくことで、

ファイル操作のトラブルやセキュリティリスクを最小限に抑えられます。

特に、SFTP専用ユーザーはファイル転送に特化しているため、サーバーの他の部分にはアクセスできません。

ユーザーを作成する準備

新しいユーザーを作成する前に、EC2インスタンスにログインできるようにしておきましょう。

SSHでサーバーにアクセスし、sudo権限が必要になります。

これが整ったら、次に進みましょう。

新しいユーザーを追加する

では、具体的に新しいSFTP専用ユーザーを作成してみましょう。

まずは、sftpuserという名前の新しいユーザーを作成します。

sudo adduser sftpuser

続いて、そのユーザーのパスワードを設定します。

sudo passwd sftpuser

最後に、このユーザーのシェルを/sbin/nologinに設定することで、SSHログインを無効にします。

sudo usermod -s /sbin/nologin sftpuser

これでユーザーは作成されましたが、まだ終わりではありません。

ディレクトリの設定

次に、SFTPユーザーが使用するディレクトリを設定します。

sudo mkdir -p /home/sftpuser/uploads

そして、このディレクトリに適切なアクセス権を設定します。

sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo chown sftpuser:sftpuser /home/sftpuser/uploads

これで、sftpuser/home/sftpuser/uploadsにファイルをアップロードできるようになります。

SSHの設定を変更する

ユーザーとディレクトリを設定したら、次はSSHの設定を行います。

まず、/etc/ssh/sshd_configファイルを編集します。

sudo nano /etc/ssh/sshd_config

ファイルの末尾に以下の内容を追加して、sftpuser専用の設定を行います。

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

この設定により、sftpuserはSFTP専用の環境に制限され、その他のSSH機能は無効化されます。

SSHサービスの再起動

設定を保存したら、SSHサービスを再起動します。

sudo systemctl restart sshd

再起動後、設定が反映され、sftpuserがSFTPで接続できるようになります。

SFTPユーザーの接続をテストする

すべての設定が完了したら、実際にSFTPユーザーで接続してみましょう。

sftp sftpuser@your-ec2-ip

無事に接続できたら、成功です!

アップロード専用ディレクトリにアクセスできるかどうかも確認してください。

セキュリティ上の注意点

新しいユーザーを追加すると、必然的にセキュリティ面が心配になります。

不要なユーザーがサーバーにアクセスしないよう、定期的なログの確認や、強力なパスワードの設定を忘れないようにしましょう。

また、必要があればユーザーを無効化するか削除することも簡単です。

sudo userdel sftpuser

まとめ

今回の手順をしっかりと踏んでいけば、EC2インスタンスにSFTP専用ユーザーを安全に作成することができます。

ファイル転送の効率化セキュリティ強化を同時に達成できるので、ぜひ活用してみてくださいね。

他にも疑問があれば、気軽に質問してください!

-AWS