ファイル転送プロトコルは、コンピューターネットワーク上のサーバーからクライアントへのコンピューターファイルの転送に使用される標準の通信プロトコルです。
FTPはセキュリティが不足しているため、今日では人気がありません。このプロトコルを使用してファイルを送信すると、データ、ユーザー名、およびパスワードがすべてプレーンテキストで共有されます。つまり、ハッカーはほとんどまたはまったく労力をかけずにこの情報にアクセスできます。データを安全にするには、SFTPなどのアップグレードバージョンのFTPを使用する必要があります。
SFTPセキュアファイル転送プロトコルは、リモートコンピュータへの安全なアクセスを提供して安全な通信を提供するファイル転送プロトコルです。 SSH – Secure Socket Shellを活用しており、「Secure ShellFileTransferProtocol」とも呼ばれます。
関連コンテンツ
- LinuxでSFTPクライアントを操作する方法–10sftpコマンド
- Debian11サーバーでSFTPサーバーをセットアップする方法
- Pythonスクリプトを使用してSFTPサーバーからファイルをダウンロードする
- golangを使用してSFTPサーバーからファイルを一覧表示、アップロード、およびダウンロードする
- Ubuntu20.04にsftpサーバーをインストールしてセットアップする方法
- OpenSUSELeap15.3サーバーでSFTPサーバーを設定する方法
- CentOS 8 /RHEL8サーバーでSFTPサーバーをセットアップする方法
前提条件
このガイドに従うには、次のものがあることを確認してください。
- OpenSUSELeap15.3サーバー
- サーバーまたはrootアクセス権を持つユーザーへのrootアクセス
- サーバーからのインターネットアクセス
目次
- サーバーが最新であることを確認する
- SSHサービスがインストールされていることを確認する
- ユーザーとグループを作成し、必要なディレクトリを追加する
- sshサービスの設定
- セットアップが期待どおりに機能していることを確認する
1。サーバーが最新であることを確認する
続行する前に、システムが最新であることを確認してください。このコマンドを使用して、システムパッケージを更新し、更新します。
sudo zypper ref
sudo zypper update -y
2。 SSHサービスがインストールされていることを確認する
sshがインストールされ、稼働していることを確認します。
~> sudo zypper install openssh-server
Loading repository data...
Reading installed packages...
'openssh-server' is already installed.
No update candidate for 'openssh-server-8.4p1-3.3.1.x86_64'. The highest available version is already installed.
Resolving package dependencies...
Nothing to do.
インストールされたので、サービスを開始します
sudo systemctl start sshd
ステータスを確認する
~> sudo systemctl status sshd
● sshd.service - OpenSSH Daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2021-12-03 10:19:26 UTC; 29min ago
Main PID: 1419 (sshd)
Tasks: 1
CGroup: /system.slice/sshd.service
└─1419 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
Dec 03 10:19:26 ip-10-2-40-46 sshd[1419]: Server listening on 0.0.0.0 port 22.
Dec 03 10:19:26 ip-10-2-40-46 sshd[1419]: Server listening on :: port 22.
Dec 03 10:19:26 ip-10-2-40-46 systemd[1]: Started OpenSSH Daemon.
Dec 03 10:21:13 ip-10-2-40-46 sshd[1507]: Received disconnect from 92.255.85.37 port 43914:11: Bye Bye [preauth]
Dec 03 10:21:13 ip-10-2-40-46 sshd[1507]: Disconnected from authenticating user root 92.255.85.37 port 43914 [preauth]
Dec 03 10:33:40 ip-10-2-40-46 sshd[1977]: Accepted publickey for ec2-user from 105.231.31.248 port 60453 ssh2: RSA SHA256:nDQ1FM>
Dec 03 10:33:40 ip-10-2-40-46 sshd[1977]: pam_unix(sshd:session): session opened for user ec2-user by (uid=0)
Dec 03 10:36:49 ip-10-2-40-46 sshd[2203]: Invalid user huawei from 92.255.85.37 port 36540
Dec 03 10:36:49 ip-10-2-40-46 sshd[2203]: Received disconnect from 92.255.85.37 port 36540:11: Bye Bye [preauth]
Dec 03 10:36:49 ip-10-2-40-46 sshd[2203]: Disconnected from invalid user huawei 92.255.85.37 port 36540 [preauth]
3。ユーザーとグループを作成し、必要なディレクトリを追加する
次に、必要なユーザーがシステムに存在することを確認します。私の場合、sftpユーザーを/srv/sftp
としてホームにしたいです。
ホーム/srv/sftp
を作成しましょう このコマンドで:
sudo mkdir /srv/sftp
次に、SFTP専用の包括的グループを作成しましょう
sudo groupadd sftpusers
次に、citizixという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 Daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2021-12-03 11:22:18 UTC; 5min ago
Process: 15765 ExecStartPre=/usr/sbin/sshd-gen-keys-start (code=exited, status=0/SUCCESS)
Process: 15770 ExecStartPre=/usr/sbin/sshd -t $SSHD_OPTS (code=exited, status=0/SUCCESS)
Main PID: 15780 (sshd)
Tasks: 1
CGroup: /system.slice/sshd.service
└─15780 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
Dec 03 11:22:18 ip-10-2-40-46 systemd[1]: Starting OpenSSH Daemon...
Dec 03 11:22:18 ip-10-2-40-46 sshd-gen-keys-start[15765]: Checking for missing server keys in /etc/ssh
Dec 03 11:22:18 ip-10-2-40-46 sshd[15780]: Server listening on 0.0.0.0 port 22.
Dec 03 11:22:18 ip-10-2-40-46 sshd[15780]: Server listening on :: port 22.
Dec 03 11:22:18 ip-10-2-40-46 systemd[1]: Started OpenSSH Daemon.
4。セットアップが期待どおりに機能していることを確認する
ユーザーを正常に作成し、sftp構成を追加したら、次のコマンドを使用してセットアップをテストします。
❯ sftp [email protected]
[email protected]'s password:
Connected to 52.24.157.181.
sftp>
これで、ユーザーが構成された状態でsftpサーバーが稼働しました!
ユーザーはサーバーにログインして、ホームディレクトリにあるファイルとディレクトリにアクセスできます。ユーザーを自分のディレクトリ外の他のディレクトリに移動させたい場合は、ユーザーがアクセスするのに十分な権限を持っていることを確認してください。これらのディレクトリとファイルは、sftpディレクトリ(/srv/sftp
)内にある必要があります 。
例:ユーザーにディレクトリ/srv/sftp/paymentfiles
にアクセスしてもらいたい場合 、次の手順を実行します:
ディレクトリを作成する
sudo mkdir /srv/sftp/paymentfiles
次に、ユーザーを割り当てます(citizix
)ディレクトリを所有することによるアクセス:
sudo chown citizix:sftpusers /srv/sftp/paymentfiles
それだ。これで、ユーザーはアクセスできるようになります。
結論
このガイドでは、OpenSUSELeap15.3でsftpサーバーをセットアップすることができました。