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

LinuxでChrootSFTPサーバーを構成する方法

いくつかのシナリオがあります システム管理者が少数のユーザーのみにファイルをLinuxボックスに転送することを許可する必要があるが、sshは使用しない 。これは、 SFTPを設定することで実現できます。 chroot環境で。

SFTPとchrootの背景:

SFTP SSHファイル転送プロトコルの略です または安全なファイル転送プロトコル 。 SFTPは、信頼できるデータストリームを介して、ファイルアクセス、ファイル転送、およびファイル管理機能を提供します。 chroot環境でSFTPを構成すると、許可されたユーザーのみがホームディレクトリに制限されます。 、または許可されたユーザーは刑務所に入ると言えます ディレクトリを変更することさえできない環境のようなものです。

この記事では、RHELでChrootSFTPサーバーを構成します CentOS システム 1人のユーザー「ジャック」がいます ’、このユーザーはLinuxボックスでファイルを転送できますが、sshアクセスは許可されません。

ステップ:1)グループを作成する

groupaddコマンドを使用してsftp_usersグループを作成します

[[email protected] ~]# groupadd  sftp_users

手順:2)セカンダリグループ(sftp_users)をユーザーに割り当てます

ユーザーがシステムに存在しない場合は、以下のコマンドコマンドを使用して作成します

[[email protected] ~]# useradd  -G sftp_users -s /sbin/nologin  jack
[[email protected] ~]# passwd jack

既存のユーザー向け 、以下のusermodコマンドを使用してください:

[[email protected] ~]# usermod –G sftp_users -s /sbin/nologin  jack

注: デフォルトのホームディレクトリを変更する場合 ユーザーの数、次に「-d」を使用します useraddおよびusermodコマンドのオプションを選択し、正しい権限を設定します。

手順:3)構成ファイル「/ etc / ssh/sshd_config」を編集します

お気に入りのエディタを使用してsshd_configを編集します

# vi /etc/ssh/sshd_config

#comment out the below line and add a line like below
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

# add Below lines at the end of file
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory %h
ForceCommand internal-sftp

場所:

一致グループsftp_users –これは、グループsftp_users
ChrootDirectory%hに属するユーザーに対してのみ次の行が一致することを示します。 –これは、ユーザーが認証された後にchrootに使用されるパス(デフォルトのユーザーのホームディレクトリ)です。したがって、ジャックの場合、これは/ home/jackになります。
ForceCommand internal-sftp –これにより、internal-sftpが強制的に実行され、〜/ .ssh/rcファイルに記載されているコマンドはすべて無視されます。

上記の変更を行った後、次のコマンドを使用してsshサービスを再起動します。

[[email protected] ~] # systemctl restart sshd

手順:4)ユーザーのホームディレクトリに必要な権限を設定します

デモのように、sftpユーザーとしてjack userを使用しているので、次のコマンドを実行して、彼のホームディレクトリに必要な権限を設定します。

[[email protected] ~]# chmod 755 /home/jack
[[email protected] ~]# chown root /home/jack
[[email protected] ~]# chgrp -R sftp_users /home/jack
>

ジャックユーザーにファイルのアップロードを許可する必要がある場合 、次に、以下の権限でアップロードフォルダを作成します。

[[email protected] jack]# mkdir /home/jack/upload
[[email protected] jack]# chown jack. /home/jack upload/

システムでselinuxが有効になっている場合は、次のコマンドを実行してselinuxルールを設定します。

[[email protected] ~] setsebool -P ssh_chroot_full_access on

手順:5)Sftpサーバーをテストします

最初に、ジャックユーザー経由でsshを使用してシステムにアクセスしてみてください

上記の出力でわかるように、ユーザージャックはsshを許可されています。

それでは、sftpを使用してログインしてみましょう。

上記のように、ジャックユーザーはSFTP経由でログインしていますが、chroot環境のためディレクトリを変更できません。

次に、アップロードとダウンロードを実行します。 以下に示すようにテストします:

上記のように、アップロードとダウンロードの両方がジャックユーザーにとって正常に機能しています。これで記事は終わりです。以下のコメントセクションでフィードバックやコメントを共有してください。

また読むDebian10でChrootを使用してSFTPサーバーを構成する方法


Linux
  1. Linuxのchrootjailを設定する方法

  2. LinuxでSFTPクライアントを操作する方法–10sftpコマンド

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

  1. Debian10でChrootを使用してSFTPサーバーを構成する方法

  2. Linux NTP サーバーとクライアントをインストールして構成する方法

  3. Oracle Linux 6でVNCサーバーを構成する方法

  1. LinuxでNGINXをTCP/UDPロードバランサーとして構成する方法

  2. ArchLinuxをサーバーとしてインストールおよび設定する方法

  3. CentOSでSFTPサーバーを構成する方法は?