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

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

ファイル転送プロトコルは、コンピューターネットワーク上のサーバーからクライアントへのコンピューターファイルの転送に使用される標準の通信プロトコルです。

FTPはセキュリティが不足しているため、今日では人気がありません。このプロトコルを使用してファイルを送信すると、データ、ユーザー名、およびパスワードがすべてプレーンテキストで共有されます。つまり、ハッカーはほとんどまたはまったく労力をかけずにこの情報にアクセスできます。データを安全にするには、SFTPなどのアップグレードバージョンのFTPを使用する必要があります。

SFTPセキュアファイル転送プロトコルは、リモートコンピュータへの安全なアクセスを提供して安全な通信を提供するファイル転送プロトコルです。 SSH – Secure Socket Shellを活用しており、「Secure ShellFileTransferProtocol」とも呼ばれます。

関連コンテンツ

  • LinuxでSFTPクライアントを操作する方法–10sftpコマンド
  • Debian11サーバーでSFTPサーバーをセットアップする方法
  • Pythonスクリプトを使用してSFTPサーバーからファイルをダウンロードする
  • golangを使用してSFTPサーバーからファイルを一覧表示、アップロード、およびダウンロードする
  • OpenSUSELeap15.3サーバーでSFTPサーバーを設定する方法
  • Ubuntu20.04にsftpサーバーをインストールしてセットアップする方法
  • CentOS 8 /RHEL8サーバーでSFTPサーバーをセットアップする方法

前提条件

このガイドに従うには、次のものがあることを確認してください。

  1. ArchLinuxマシン
  2. サーバーまたはrootアクセス権を持つユーザーへのrootアクセス
  3. サーバーからのインターネットアクセス

目次

  1. サーバーが最新であることを確認する
  2. SSHサービスがインストールされていることを確認する
  3. ユーザーとグループを作成し、必要なディレクトリを追加する
  4. sshサービスの設定
  5. セットアップが期待どおりに機能していることを確認する

1。サーバーが最新であることを確認する

続行する前に、システムが最新であることを確認してください。このコマンドを使用して、システムパッケージを更新し、更新します。

sudo pacman -Syyu

2。 SSHサービスがインストールされていることを確認する

sshがインストールされていることを確認します:

$ sudo pacman -Qi openssh
Name            : openssh
Version         : 8.6p1-1
Description     : Premier connectivity tool for remote login with the SSH protocol
Architecture    : x86_64
URL             : https://www.openssh.com/portable.html
Licenses        : custom:BSD
Groups          : None
Provides        : None
Depends On      : glibc  krb5  openssl  libedit  ldns  libxcrypt  libcrypt.so=2-64  zlib  pam
Optional Deps   : xorg-xauth: X11 forwarding
                  x11-ssh-askpass: input passphrase in X
                  libfido2: FIDO/U2F support
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 5.79 MiB
Packager        : Giancarlo Razzolini <[email protected]>
Build Date      : Mon 19 Apr 2021 11:32:46 AM UTC
Install Date    : Thu 03 Jun 2021 03:23:32 AM UTC
Install Reason  : Explicitly installed
Install Script  : Yes
Validated By    : Signature

sshがインストールされていない場合は、次のコマンドでインストールします。

sudo pacman -S openssh

インストールされたので、サービスを開始します

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:02 UTC; 17min ago
   Main PID: 467 (sshd)
      Tasks: 1 (limit: 4606)
     Memory: 5.0M
     CGroup: /system.slice/sshd.service
             └─467 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups

Dec 04 14:53:30 ip-10-2-40-103 sshd[13109]: Unable to negotiate with 141.98.10.246 port 34078: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:53:42 ip-10-2-40-103 sshd[13111]: Unable to negotiate with 141.98.10.246 port 38674: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:53:53 ip-10-2-40-103 sshd[13115]: Unable to negotiate with 141.98.10.246 port 43268: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:05 ip-10-2-40-103 sshd[13117]: Unable to negotiate with 141.98.10.246 port 47864: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:17 ip-10-2-40-103 sshd[13119]: Unable to negotiate with 141.98.10.246 port 52460: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:41 ip-10-2-40-103 sshd[13123]: Unable to negotiate with 141.98.10.246 port 33418: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:54:53 ip-10-2-40-103 sshd[13127]: Unable to negotiate with 141.98.10.246 port 38014: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 14:55:05 ip-10-2-40-103 sshd[13129]: Unable to negotiate with 141.98.10.246 port 42614: no matching key exchange method found. Their offer: diffie-hellman-group14-sha1,diffie-hellman-group-exc>
Dec 04 15:16:10 ip-10-2-40-103 sshd[13191]: Received disconnect from 61.177.173.21 port 60983:11:  [preauth]
Dec 04 15:16:10 ip-10-2-40-103 sshd[13191]: Disconnected from authenticating user root 61.177.173.21 port 60983 [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 Sat 2021-12-04 15:48:19 UTC; 18s ago
   Main PID: 14269 (sshd)
      Tasks: 1 (limit: 4606)
     Memory: 892.0K
     CGroup: /system.slice/sshd.service
             └─14269 sshd: /usr/bin/sshd -D [listener] 0 of 10-100 startups

Dec 04 15:48:19 ip-10-2-40-103 systemd[1]: Started OpenSSH Daemon.
Dec 04 15:48:19 ip-10-2-40-103 sshd[14269]: Server listening on 0.0.0.0 port 22.
Dec 04 15:48:19 ip-10-2-40-103 sshd[14269]: Server listening on :: port 22.

4。セットアップが期待どおりに機能していることを確認する

ユーザーを正常に作成し、sftp構成を追加したら、次のコマンドを使用してセットアップをテストします。

❯ sftp [email protected]
[email protected]10.2.11.8's password:
Connected to 10.2.11.8.
sftp>

これで、ユーザーが構成された状態でsftpサーバーが稼働しました!

ユーザーはサーバーにログインして、ホームディレクトリにあるファイルとディレクトリにアクセスできます。ユーザーを自分のディレクトリ外の他のディレクトリに移動させたい場合は、ユーザーがアクセスするのに十分な権限を持っていることを確認してください。これらのディレクトリとファイルは、sftpディレクトリ(/srv/sftp)内にある必要があります 。

例:ユーザーにディレクトリ/srv/sftp/paymentfilesにアクセスしてもらいたい場合 、次の手順を実行します:

ディレクトリを作成する

sudo mkdir /srv/sftp/paymentfiles

次に、ユーザーを割り当てます(citizix )ディレクトリを所有することによるアクセス:

sudo chown citizix:sftpusers /srv/sftp/paymentfiles

それだ。これで、ユーザーはアクセスできるようになります。

結論

このガイドでは、Archlinuxサーバーにsftpサーバーをセットアップすることができました。


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

  2. Rocky Linux /CentOS8サーバーでSFTPサーバーをセットアップする方法

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

  1. Linuxで専用のMinecraftサーバーをセットアップする方法

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

  3. Linux で Wekan Kanban サーバーをセットアップする方法

  1. ArchLinuxをインストールする方法

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

  3. ArchLinuxにVirtualBoxをインストールする方法