ファイル転送プロトコルは、コンピューターネットワーク上のサーバーからクライアントへのコンピューターファイルの転送に使用される標準の通信プロトコルです。
FTPはセキュリティが不足しているため、今日では人気がありません。このプロトコルを使用してファイルを送信すると、データ、ユーザー名、およびパスワードがすべてプレーンテキストで共有されます。つまり、ハッカーはほとんどまたはまったく労力をかけずにこの情報にアクセスできます。データを安全にするには、SFTPなどのアップグレードバージョンのFTPを使用する必要があります。
SFTPセキュアファイル転送プロトコルは、リモートコンピュータへの安全なアクセスを提供して安全な通信を提供するファイル転送プロトコルです。 SSH – Secure Socket Shellを活用しており、「Secure ShellFileTransferProtocol」とも呼ばれます。
関連コンテンツ
- Ubuntu20.04にsftpサーバーをインストールしてセットアップする方法
- OpenSUSELeap15.3サーバーでSFTPサーバーを設定する方法
前提条件
このガイドに従うには、次のものがあることを確認してください。
- Centos8またはRHEL8ベースのシステム
- サーバーまたはrootアクセス権を持つユーザーへのrootアクセス
目次
- 存在しない場合はサービスにsshをインストールする
- ユーザーとグループを作成し、必要なディレクトリを追加する
- sshサービスの設定
- セットアップが期待どおりに機能していることを確認する
1。存在しない場合はサービスにsshをインストールする
続行する前に、システムが最新であることを確認してください:
$ sudo dnf update -y
Last metadata expiration check: 2:05:00 ago on Mon 27 Sep 2021 03:48:26 PM UTC.
Dependencies resolved.
Nothing to do.
Complete!
次に、sshがインストールされ、稼働していることを確認します。
$ sudo dnf install -y openssh-server
Last metadata expiration check: 3:48:26 ago on Mon 27 Sep 2021 03:48:26 PM UTC.
Package openssh-server-8.0p1-6.el8_4.2.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
サービスを開始する
sudo systemctl restart sshd
2。ユーザーとグループを作成し、必要なディレクトリを追加する
次に、必要なユーザーがシステムに存在することを確認します。私の場合、sftpユーザーを/srv/sftp
としてホームにしたいです。
ホーム/srv/sftp
を作成しましょう このコマンドで:
sudo mkdir /srv/sftp
次に、SFTP専用の包括的グループを作成しましょう
sudo groupadd sftpusers
次に、sftpのみのユーザーを作成します:
sudo useradd -G sftpusers -d /srv/sftp/citizix -s /sbin/nologin citizix
上記のオプションは次のことを行います:
-
-G sftpusers
:ユーザーを作成し、sftpusers
に追加します グループ -
-d /srv/sftp/citizix
:ホームディレクトリを/srv/sftp/citizix
として設定します -
-s /sbin/nologin
:ユーザーにログインさせたくないので、sshログインシェルはありません - 最後に、
citizix
としてのユーザー名
次に、次のコマンドを使用して、作成したユーザーにパスワードを追加します。
$ sudo passwd citizix
Changing password for user citizix.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
3。 sshサービスの設定
必要なソフトウェアをインストールし、ユーザーとグループを作成したので、sshを構成しましょう。
sshでパスワード認証が有効になっていることを確認します。ここで設定ファイルを編集します/etc/ssh/sshd_config
:
sudo vim /etc/ssh/sshd_config
次に、この行にコメントが付いていないことを確認します:
PasswordAuthentication yes
次に、sftpusers
にユーザーのルールを追加する必要があります sftpと見なされるグループ。構成ファイルを編集します:
sudo vim /etc/ssh/sshd_config
ファイルの最後に次のコンテンツを追加します:
Match Group sftpusers
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /srv/sftp
ForceCommand internal-sftp
次に、sshdを再起動して、構成を再ロードします。
sudo systemctl restart sshd
sshd
であることを確認します 期待どおりに実行されています:
$ sudo systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-09-27 19:05:29 UTC; 43min ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 746214 (sshd)
Tasks: 1 (limit: 23800)
Memory: 7.2M
CGroup: /system.slice/sshd.service
└─746214 /usr/sbin/sshd -D [email protected],[email protected]>
4。セットアップが期待どおりに機能していることを確認する
ユーザーを正常に作成し、sftp構成を追加したら、次のコマンドを使用してセットアップをテストします。
❯ sftp [email protected]
[email protected]'s password:
Connected to 3.250.122.68.
sftp> ls
citizix
sftp>
これで、ユーザーが構成された状態でsftpサーバーが稼働しました!
ユーザーはサーバーにログインして、ホームディレクトリにあるファイルとディレクトリにアクセスできます。ユーザーを自分のディレクトリ外の他のディレクトリに移動させたい場合は、ユーザーがアクセスするのに十分な権限を持っていることを確認してください。これらのディレクトリとファイルは、sftpディレクトリ(/srv/sftp
)内にある必要があります。 。
例:ユーザーにディレクトリ/srv/sftp/paymentfiles
にアクセスしてもらいたい場合 、次の手順を実行します:
ディレクトリを作成する
sudo mkdir /srv/sftp/paymentfiles
次に、ユーザーを割り当てます(citizix
)ディレクトリを所有することによるアクセス:
sudo chown citizix:sftpusers /srv/sftp/paymentfiles
これで、ディレクトリの内容にアクセスできます。
結論
このガイドでは、RockyLinuxやCentos8などのRHEL8ベースのサーバーにSFTPサーバーをセットアップすることができました。