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

WebサーバードキュメントルートのSFTPユーザーを作成する方法

SFTP(SSH / Secure File Transfer Protocol)は、リモートネットワークを介してファイルを転送、アクセス、および管理するために使用されるネットワーク伝送規格です。 SSH(Secure Shell)が含まれているため、FTPプロトコルよりもはるかに安全です。

ファイルは、SFTPの単一の制御チャネルを介して転送されます。認証が必要で、ポート22で実行されます。SFTPでは、SSHシェルは、SFTPを介して転送されるユーザー名、パスワード、およびその他の個人データを保護するのに役立つ暗号化を提供します。

このハウツーガイドでは、Webサーバードキュメントルート用のSFTPユーザーを作成する方法を学習します。

ステップ1-SSH(セキュアシェル)のインストール

SFTPは、SSHがネットワーク経由でデータを転送するときにデータに暗号化を提供するため、非常に安全なファイル転送プロトコルです。 SSHは、デフォルトで主にLinuxディストリビューションにインストールされますが、システムにプリインストールされていない場合は、以下のコマンドを使用してインストールできます。

sudo apt install ssh 

すでにインストールされている場合、コマンドはOpenSSHパッケージをアップグレードします。

ステップ2–SFTPサーバーコードを使用するようにSSHを構成する

次に、SSHの構成ファイルをテキストエディターで開き、SFTPサーバーコード用に変更します。ここでは、nanoエディターを使用して構成ファイルを編集します。

sudo nano /etc/ssh/sshd_config 

「Subsystemsftp」で始まる行を見つけます。

以下のスクリーンショットに示すように、行の先頭に#を追加して行にコメントを付け、この行の後に次の行を書き込みます。

Subsystem sftp internal-sftp

SSHDは、上記の行を変更してSFTPサーバーを実行する代わりに、SFTPサーバーコードを使用します。

構成ファイルを変更したら、ファイルを保存し、キーボードショートカットキーのCTRL+SおよびCTRL+Xを使用してファイルを終了します。

変更後、SSHDデーモンを再起動して、変更を機能させる必要があります。

sudo systemctl restart sshd 

ステップ3–ユーザー(SFTPユーザー)の作成

ドキュメントルートへのSFTPアクセスのみを持つ新しいユーザーを作成することは優れた方法です。 Sudo権限を持つユーザーをWebサーバーのドキュメントルートに追加することはお勧めしません。 adduserコマンドを使用して新しいユーザーを作成します:

sudo adduser sftpuser 

端末は、パスワードの設定やユーザー情報など、いくつかのことを要求します。また、他のいくつかの詳細も要求されるため、空のままにするか、適切な情報を提供してください。

sftpuserという名前の新しいユーザー 正常に作成されました。

ステップ4–SSH構成ファイルでの一致ユーザーディレクティブの作成

次に、このユーザーをドキュメントルートに制限し、SSHへのユーザーのアクセスを無効にして、ユーザーがSFTP経由でログインできるようにします。

ユーザーのアクセスを制限するには、任意のテキストエディタでSSHの構成ファイルを開きます。

sudo nano /etc/ssh/sshd_config 

次に、ファイルの最後に移動し、「sshd_config」構成ファイルに次のコンテンツを追加します。

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

必ず「sftpuser」ユーザー名を設定したユーザー名に置き換えてください。

上記のコンテンツがSSH構成ファイルに追加されたら、CTRL+SおよびCTRL+Xショートカットキーを使用して保存して終了します。

構文をチェックし、すべてがうまくいったかどうかを確認するには、次のコマンドを実行できます。

sudo sshd -t 

エラーが発生しなかった場合は、変更を機能させるためにSSHサービスをリロードできます。

sudo systemctl restart sshd 

ステップ5–SFTPユーザーをwww-dataグループに追加する

次に、次のコマンドを実行して、ユーザーをwww-dataグループに追加します。

sudo usermod -a -G www-data sftpuser 

実行が成功すると、出力は表示されません。

ステップ6–ドキュメントルートディレクトリのアクセス許可を設定する

SFTPはchrootディレクトリのアクセス許可に関して非常に厳格であるため、以降の手順に注意深く従ってください。

  1. まず、var:
    sudo ls -ld /var/ 
    
  2. デフォルトでは、権限は755で、所有者はrootである必要があります。そうでない場合は、以下のコマンドを実行して適切な権限を設定します。
    sudo chmod 755 /var/ 
    
  3. 次に、このコマンドを使用して正しい所有権を設定します。
    sudo chown root:root /var/ 
    
  4. 同様に、chrootに同じ権限を適用します:

    sudo chmod 755 /var/www/ 
    
  5. 「/var/www/」をchrootディレクトリに設定したので。次に、chrootディレクトリの正しい所有権を設定します。
    sudo chown root:root /var/www/ 
    
  6. グループがドキュメントのルートディレクトリに書き込めるようにするには、その権限を755に設定します。
    sudo chmod 755 /var/www/html/ 
    
  7. 「/var/ www / html」ドキュメントルートとその追加のディレクトリおよびファイルの所有権をwww-dataグループに付与するには、以下のコマンドを使用します。
    sudo chown -R www-data:www-data /var/www/html* 
    
  8. 次に、次のコマンドを使用して、「/ var / www/html」ドキュメントルートに配置されたコンテンツに755のアクセス許可を付与します。
    sudo find /var/www/html/ -type d -exec chmod 775 {} \; 
    
  9. 上記のコマンドは、SFTPユーザーにディレクトリの読み取り、書き込み、および実行可能権限を付与します。

    また、所有者とSFTPユーザーのグループがファイルの読み取りと書き込みを行えるようにするには、ドキュメントルートに存在するすべてのファイルに664のアクセス許可を与える必要があります。

    sudo find /var/www/html/ -type f -exec chmod 664 {} \; 
    
  10. 最後のステップとして、すべての新しいファイルとディレクトリが、新しく作成されたSFTPユーザーが作成されたwww-dataグループを取得していることを確認します。
    sudo find /var/www/html -type d -exec chmod g+s {} \; 
    

おめでとう!新しいSFTPユーザーが作成され、Webサーバーのドキュメントルートに追加されました。これで、SFTPにログインできます。

結論

このハウツーガイドでは、SFTPサーバーコードを使用するためにSSHをインストールして構成する方法を学びました。その後、新しいユーザーを作成し、ドキュメントルートに制限し、SSHアクセスを無効にしました。次に、ユーザーをWebサーバーのドキュメントルートに追加して、ユーザーがドキュメントルート内のファイルの読み取り、書き込み、実行を行えるようにしました。


Linux
  1. CentOS / RHEL :root 以外のユーザーに対して ssh を無効にする方法 (root ユーザーに対してのみ ssh を許可する)

  2. ユーザー アカウントを自動的に作成する方法 ( SSH + LDAP )

  3. 追加の root ユーザーを作成するには?

  1. LinuxでユーザーのSudo権限を設定する方法

  2. SSH経由でrootユーザーのログインを無効にする方法

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

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

  2. サーバーで直接ルートログインを無効にする

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