Ubuntu 20.04 で SFTP をセットアップし、SSH を防止します。 SFTP (Secure File transfer Protocol) は、暗号化された SSH 接続を使用してファイルをサーバーに安全に転送する方法です。 SSH を使用するすべてのサーバーでは、デフォルトで SFTP が有効になっています。
このガイドでは、特定のユーザーのディレクトリへの SFTP アクセスを制限し、SSH アクセスを防止する方法を学習します。
このセットアップは、Ubuntu 20.04 OS を実行している仮想マシンでテストされています。したがって、このチュートリアルは、Ubuntu を使用するすべてのサーバーで機能するはずです。
前提条件
sudo 権限によるサーバーへの SSH アクセス。
ステップ 1:新しいユーザーを作成する
特定のディレクトリで特定のアクションを実行するための SFTP アクセス権を持つ新しいユーザーを作成します。
sudo adduser username
パスワードと、設定または無視できるその他のオプションの詳細を設定するよう求められます。
SSH キー ベースのログインを使用する場合は、Ubuntu で SSH アクセスをセットアップする方法を確認してください。
ステップ 2:SFTP アクセスをセットアップする
SFTP アクセスを設定するには、適切なディレクトリ権限を構成する必要があります。作成しようとしている新しいディレクトリの親ディレクトリは、他のユーザーではなく、root によって所有されている必要があります。
たとえば、/sftp/folder
という名前のディレクトリを作成する場合 、sftp
ディレクトリは root が所有する必要があります そして folder
ディレクトリは特定のユーザーが所有する必要があります 誰がアクセスしているのか
ディレクトリを作成します。
sudo mkdir -p /sftp/folder
正しい権限を設定してください。
sudo chmod 755 /sftp sudo chown root:root /sftp sudo chmod -R 755 /sftp/folder sudo chown username:username /sftp/folder
ステップ 3:SSH アクセスを防止し、SFTP アクセスを制限する
これで、SSH 構成を変更して、ユーザーの SSH アクセスを防止し、ユーザーが特定のディレクトリのみにアクセスするように制限できます。
SSH 構成ファイルを編集します。
sudo nano /etc/ssh/sshd_config
以下をファイルの最後に追加してください。
Match User username ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Match User
指定されたユーザーのみに次のコマンドを適用するように SSH サーバーに指示します。ForceCommand internal-sftp
ログイン時に SSH サーバーに SFTP サーバーを強制的に実行させ、SSH アクセスを防止します。PasswordAuthentication yes
このユーザーのパスワード認証を許可します。 SSH キーベースのログインを使用する場合、値をno
に設定することで、パスワードベースの認証を防ぐことができます .ChrootDirectory /sftp
ユーザーが/sftp
を超えるものへのアクセスを許可されないようにする ディレクトリ。AllowAgentForwarding no
、AllowTcpForwarding no
、およびX11Forwarding no
ポート転送、トンネリング、X11 転送をそれぞれ無効にします。
CTRL + X
をヒット 続いて Y
そして ENTER
ファイルを保存して終了します。
これで、SFTP アクセスのみを許可し、ユーザーの SSH ログインを防止する構成が整いました。
変更を有効にするために SSH サービスを再起動してください。
sudo systemctl restart sshd
複数のユーザー名のアクセス設定の詳細については、この Chroot セットアップ ガイドに従ってください。
ステップ 4:SFTP の設定を確認する
SSH コマンドで SFTP の詳細を使用してサーバーにログインしてみてください。 SSH へのアクセスは拒否されます。
ssh [email protected]_ip
以下のような出力が表示されます。
Output This service allows sftp connections only. Connection to server_ip closed.
sftp コマンドを使用して検証します。
sftp [email protected]_ip
これで、サーバーにログインし、以前に構成したディレクトリにアクセスできるはずです。
Output Connected to server_ip sftp>
ls
を使用 ディレクトリを一覧表示するコマンドを実行すると、folder
という名前のディレクトリが表示されます 権限を作成して構成しました。
sftp> ls
Output folder
結論
これで、SFTP をセットアップし、特定のディレクトリを介したユーザーへの SSH アクセスを防止する方法を学習しました。
御時間ありがとうございます。問題やフィードバックに直面した場合は、下にコメントを残してください。