SFTPは、ローカルシステムとの間の安全なデータ転送に使用したSecure FileTransferProtocolの略です。 SSHプロトコル上で動作するため、単純なFTP(ファイル転送プロトコル)よりも安全であると見なされます。データ転送は、コードに変更を加える必要のあるすべてのシステム管理者やその他の開発者の日常的なタスクです。
そのため、本日の記事では、SFTPサーバーを構成し、指定したディレクトリ権限を持つユーザーを作成するための詳細な手順を示します。
デモンストレーションでは、SFTPセットアップにUbuntu 20.04 LTSを使用していますが、RHEL/CentOSオペレーティングシステムを使用している場合も同様の手順を実行できます。
前提条件:
前提条件から始めて、SFTPユーザーを作成する必要があるサーバーでsudoまたはrootユーザー権限を持っていることを確認する必要があります。
LinuxデスクトップのPuttyまたはShellターミナルを使用できるsshを使用してシステムにログインすることから始めましょう。
# ssh -i key.pem [email protected]_server_ip
# sudo -i
システムに直接ログインすることもできますが、必ず自分のユーザー名とクレデンシャルを使用してください。
ステップ1:新しいSFTPのみのユーザーを作成する
SFTPの新しいユーザーの作成は、他の一般ユーザーの追加と同じです。ただし、SFTPの目的でのみ使用されるように制限するために、ログインシェルなしに割り当てます。
以下のコマンドを実行して、カスタムホームディレクトリを指定してSFTPユーザーを作成します。
# useradd -m -d /home/example.com sftp_user
以下のように「passwd」コマンドを使用して、新しく作成したユーザーのパスワードを設定します。
# passwd sftp_user
セキュリティのために、必ず複雑なパスワードを設定してください。次に、以下のように「passwd」ファイルを変更して、nologinシェルを割り当てます。
# vim /etc/passwd
sftp_user:x:1001:1001::/home/example.com:/usr/sbin/nologin
:wq!を使用して保存して閉じます。変更を適用するには。
ステップ2:ディレクトリ権限を設定する
新しいユーザーを作成したら、最初のステップで作成したユーザーのディレクトリに適切なディレクトリ権限と所有権を設定する必要があります。
# chmod 755 /home/example.com/
# chown root:root /home/example.com
ステップ3:ディレクトリアクセスを制限する
これで、新しいSFTP専用ユーザーが配置されました。次に、作成した指定のホームフォルダーにアクセスできるように、そのディレクトリアクセスを制限する必要があります。
そのために、次のパラメーターを追加してssh構成ファイルを変更します。
# vim /etc/ssh/sshd_config
subsystem sftp internal-sftp Match User sftp_user ChrootDirectory %h AllowTCPForwarding no X11Forwarding no PasswordAuthentication yes ForceCommand internal-sftp
行った変更を保存する前に、必ず「ユーザーの一致」に対してユーザー名を追加してください。一方、「%h」は、制限された環境内で新しく作成したユーザーのホームディレクトリを表します。この「ChrootDirectory」により、SFTPユーザーが他のディレクトリにアクセスできないようになります。
ssh構成ファイルを保存し、問題がある場合は構文を確認してから、サービスを再起動し、を使用して実行されているかどうかを確認します。以下のコマンド。
# ssh -t
# systemctl restart sshd
# systemctl status sshd
ここでは、最初に、追加のエントリをコメントアウトして「sshdサービス」を再起動することで修正したssh構成ファイルにエラーがあったことがわかります。
ステップ4:SFTPログインのテスト
この時点で、SFTpユーザーを使用する準備ができていますが、その前に、sshコマンドを使用してSFTPアクセスのみがあることを確認するためにテストしてみましょう。
# [email protected]
一方、xxは独自のサーバーIPに置き換える必要があります。その結果、以下のような接続障害が発生するはずです。
ステップ5:SFTPクライアントの使用
クロスプラットフォームオペレーティングシステムで使用できるSFTPクライアントがいくつかあり、お気に入りのクライアントを使用できます。使用可能なFTP/SFTPクライアントの中で最も優れた最も便利なものの1つであるFileZillaを使用してテストします。公式リンクから簡単にダウンロードできます。
システムでそれを開き、作成したユーザー名とパスワードとともにSFTPサーバーのIPアドレスを指定しましょう。
クレデンシャルが成功すると、データをアップロードまたはダウンロードできる場所でのみ、指定したディレクトリにアクセスできるようになります。
結論:
この記事では、ssh構成を変更し、新しいユーザーを追加し、必要なディレクトリ権限を割り当てることにより、新しいSFTPサーバーをセットアップするための詳細な手順について説明しました。必要な数のユーザーを追加することも、単に新しいグループを作成して新しいユーザーをそのグループの一部にすることもできます。