GNU/Linux >> Linux の 問題 >  >> Linux

Ubuntu 20.04 での SFTP のセットアップと SSH の防止

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 noAllowTcpForwarding 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 アクセスを防止する方法を学習しました。

御時間ありがとうございます。問題やフィードバックに直面した場合は、下にコメントを残してください。


Linux
  1. Ubuntu20.04にsftpサーバーをインストールしてセットアップする方法

  2. SFTPを許可してSSHを禁止する方法は?

  3. Ubuntu20.04にOpenVPNサーバーをインストールしてセットアップする

  1. Ubuntu18.04でMySecureShellSFTPサーバーをセットアップする方法

  2. Ssh – Ssh / scp / sftpユーザーをディレクトリに制限しますか?

  3. UbuntuおよびDebianベースのディストリビューションへのOpenSSHのインストールと設定

  1. Ubuntu14.04のGuiSsh?

  2. Ubuntu12.04VPSにDiscourseをインストールしてセットアップする方法

  3. Ubuntu20.04にSuricataIDSをインストールしてセットアップする方法