chroot jailでSFTPを使用する方法 - TechRepublic

chroot jailでSFTPを使用する方法 - TechRepublic

Linuxデータセンターサーバーで、ユーザーがSFTP経由でファイルを送受信する必要がある場合は、chroot jailによるシステムのセキュリティ保護を検討することをお勧めします。これにより、SFTPを使用する必要があるユーザーは特定のディレクトリに閉じ込められ、サーバーのディレクトリ構造にアクセスできなくなります。

どうやってやるんですか?chroot jailを使います。やり方を説明しましょう。

参照: Windows 10 セキュリティ: ビジネス リーダー向けガイド (Tech Pro Research)

必要なもの

必要なのは、稼働中のLinuxサーバーとsudo権限を持つユーザーだけです。これで準備完了です。

新しいグループを作成する

まず最初に、SFTPユーザー用の新しいグループを作成します。ターミナルウィンドウを開き、次のコマンドを実行します。

sudo groupadd sftponly

ユーザーの追加と変更

次に、この新しいグループにユーザーを追加する必要があります。新しいユーザーを作成してグループに追加する必要がある場合は、useraddコマンドを使用して次のように実行できます。

sudo useradd -g sftponly -s /bin/false -m -d /home/USERNAME USERNAME

ここで、USERNAME は追加するユーザーの名前です。

上記のコマンドは、ユーザーのシェルとして/bin/falseを割り当てるため、SSH経由でのログインを不可能にします。新しいユーザーを追加したら、次のコマンドでパスワードを設定してください。

sudo passwd USERNAME

ここで、USERNAME は追加したユーザーの名前です。

グループに追加したいユーザーがすでにいる場合は、次のコマンドで追加できます。

sudo usermod -aG sftponly -s /bin/false USERNAME

USERNAME は追加するユーザーで、シェルが変更されます。ただし、ユーザーがSSHログインを必要とする場合、変更後はSSHログインができなくなりますのでご注意ください。その場合は、SFTP専用の新しいユーザーを作成することを検討してください。

ユーザーのホームディレクトリの権限を変更する必要があります。これを行うには、以下のコマンドを実行します。

sudo chown root: /home/USERNAME
sudo chmod 755 /home/USERNAME

ユーザーのディレクトリがrootの所有になったため、ファイルやディレクトリを作成できなくなります。これを回避し(ファイルのアップロードとダウンロードを可能にするため)、以下のコマンドで、ユーザーがアクセスできる新しいサブディレクトリを(ホームディレクトリ内に)作成してください。

sudo mkdir /home/USERNAME/{ftp_up,ftp_down}
sudo chmod 755 /home/USERNAME/{ftp_up,ftp_down}
sudo chown USERNAME:sftponly /home/USERNAME/{ftp_up,ftp_down}

: ftp_up と ftp_down には任意の名前を付けることができます。

SSHの設定

次にSSHを設定する必要があります。以下のコマンドを実行します。

sudo nano /etc/ssh/sshd_config

そのファイルで、次の行を探します。

Subsystem sftp /usr/lib/openssh/sftp-server

その行を次のように変更します。

Subsystem sftp internal-sftp

ファイルの一番下までスクロールして、次の内容を追加します。

Match Group sftponly
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no

ファイルを保存して閉じます。以下のコマンドでSSHデーモンを再起動します。

sudo systemctl restart sshd

テスト

これで、新しい設定を実際にテストできます。新しく作成したユーザー(または既存のユーザー)のいずれかで次のコマンドを使用してログインします。

sftp USERNAME@SERVER_IP

ここで、USERNAMEはユーザー名、SERVER_IPはホスティングサーバーのIPアドレスです。認証に成功したら、pwdコマンドを実行して現在の作業ディレクトリを確認します。/(図A)が表示されそのユーザーはそのディレクトリ外のいかなる場所へのアクセスも許可されません。

次に、 ls コマンドを発行して、ユーザーがアクセスできる新しく作成されたディレクトリを確認します (図 B )。

これで完了です。これで、ユーザーが特定のディレクトリにのみアクセスできるようにするSFTPの設定が完了しました。そのサーバー上でSFTPを使用する必要があるすべてのユーザーをロックダウンすれば、準備完了です。

Tagged: