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

Debian11でSFTPのみのユーザーを作成する方法

SFTP(SSHファイル転送プロトコル)は、暗号化されたSSHトランスポートセッションを介してファイルにアクセス、管理、および転送するために使用される安全なファイルプロトコルです。セキュリティファーストは、システム管理者の経験則です。場合によっては、リモートユーザーがシステム上のファイルシステムにアクセスできるようにする必要がありますが、シェルの取得を許可したくない場合があります。これにより、セキュリティで保護されたチャネルを使用して、特定のファイルやディレクトリへのアクセスを制限できます。

このチュートリアルは、Debian 11システムでSFTPのみのアクセス(シェルアクセスなし)を設定するのに役立ちます。システム上にchroot環境を作成し、SFTPユーザーを特定のディレクトリのみに制限します。また、ユーザーへのSSHアクセスなしでSFTPのみのアクセスを許可します。

前提条件

  • 実行中のDebian11BullseyeLinuxシステム
  • シェルアクセス権を持つsudo特権アカウントが必要です

ステップ1–新しいユーザーを作成する

まず、sftpサーバーに接続するための新しいユーザーを作成します。次のコマンドは、 sftpuserという名前の新しいアカウントを作成します シェルアクセスなし。任意の名前または要件を使用できます。

sudo adduser --shell /bin/false sftpuser 

ステップ2–SFTPアクセス用のディレクトリを作成する

sftpのユーザーを作成しました。次に、sftpのchrootとして設定するディレクトリを作成します。この例では、 / var / sftpを作成します ディレクトリ。 chrootディレクトリとして設定するには、ディレクトリにroot所有権が必要です。そのため、sftpアカウントへの書き込みアクセス権を持つサブディレクトリを/ var/sftpの下に作成します。

次のコマンドを使用してディレクトリ構造を作成します。

sudo mkdir -p /var/sftp/files 

次に、ユーザーへの書き込みアクセス権を持つchrootアクセスとして構成するために、ディレクトリに適切なアクセス許可を設定する必要があります。ここで、/ var / sftpには、適切な権限を持つルート所有権とグループが必要です。その権限を設定するには、次のように入力します。

sudo chown root:root /var/sftp 
sudo chmod 755 /var/sftp 

ここで、"files"の権限を変更します sftpuserへの書き込みアクセスを許可するディレクトリ。その権限を設定するには、次のように入力します。

sudo chown sftpuser:sftpuser /var/sftp/files 

sftpuserがサーバーに接続すると、ルートディレクトリとして/ var/sftpを取得します。彼はその外部のファイルシステムにアクセスできません。また、ユーザーは「files」ディレクトリの下でのみファイルの読み取り/書き込みを行うことができます。

ステップ3–SFTP専用のsshdを構成する

次に、SSHサーバーを構成して、「sftpuser」がシェルアクセスなしでのみサーバーをsFTPに接続できるようにする必要があります。必要な変更を加えるには、SSH構成ファイルを編集します。

sudo nano /etc/ssh/sshd_config 

ファイルの最後に次の設定を追加します。

Match User sftpuser
	ForceCommand internal-sftp
	PasswordAuthentication yes
	ChrootDirectory /var/sftp
	PermitTunnel no
	AllowAgentForwarding no
	AllowTcpForwarding no
	X11Forwarding no

すべての設定が正しいことを再確認してください。次に、変更を保存し、SSHサービスを再起動して変更を適用します。

sudo systemctl restart ssh 

これで、DebianシステムでSFTPのみの使用が正常に作成されました。次に、新しいユーザーの資格情報を使用してリモートシステムにログインし、すべてが正しく機能しているかどうかを確認します。

ステップ4–SFTPに接続する

コマンドラインまたはFilezillaやWinSCPなどのグラフィカルアプリケーションを使用して、リモートSFTPサーバーに接続できます。このチュートリアルでは、SFTPサーバーに接続する両方の方法を紹介します。

Linuxユーザーは、sftpコマンドラインユーティリティを使用して、リモートのsftpインスタンスに接続できます。

sftp [email protected] 

[email protected]'s password:
sftp>

GUIインターフェイスまたはWindowsユーザーは、グラフィカルsftpクライアントを使用できます。たとえば、Filezillaクライアントを使用して、リモートシステム上のリモートsftpのみのアカウントに接続します。

シェルアクセスがないことを確認します:

このアカウントはSFTPのみの接続用に構成されているため。したがって、SSH経由で接続しようとしたユーザーは、認証が成功するとすぐに切断されます。ユーザーには以下のメッセージが表示されます:

ssh [email protected] 

[email protected]'s password:
This service allows sftp connections only.
Connection to sftp.tecadmin.net closed.

結論

このハウツーガイドでは、サーバーへのシェルアクセスなしでSFTPユーザー用のchrootjail環境を作成する方法を学びました。 Chroot環境は、ユーザーが定義されたディレクトリ外のファイルにアクセスできないようにすることで、ファイルシステムを保護します。このチュートリアルはDebian11Bullseyeシステムで作成およびテストされていますが、これは他のDebianバージョンでも機能します。


Debian
  1. CentOS、Ubuntu、DebianでSudoユーザーを作成する方法

  2. DebianでSudoユーザーを作成する方法

  3. Centos – CentosでSftpユーザーを作成する方法は?

  1. Sshアクセスで新しいユーザーを作成する方法は?

  2. Debian9でユーザーを作成および削除する方法

  3. Linux で su アクセスを PAM によってのみユーザーに制限する方法

  1. Debian11サーバーでSFTPサーバーをセットアップする方法

  2. CentOS8でシェルアクセスなしでSFTPユーザーを作成する方法

  3. sftp 専用のユーザーを作成するにはどうすればよいですか?