ウェブサイト検索

AlmaLinuxでFTP/SFTPサーバーとクライアントを設定する方法


FTPとSFTPは、リモートまたはローカルサーバーからファイルをダウンロードしたり、サーバーにファイルをアップロードしたりするのに優れたプロトコルです。FTPはある状況には適していますが、インターネット経由の接続にはSFTPが推奨されます。言い換えれば、FTPはインターネット接続上では安全ではなく、資格情報やデータが暗号化されずに送信されるためです。SFTPの「S」は「Secure」を意味し、FTPプロトコルをSSHを通じてトンネリングし、安全な接続を確立するために必要な暗号化を提供します。

このガイドでは、VSFTPソフトウェアを使ってFTPサーバーを設定する手順や、OpenSSHを使ってAlmaLinux上にSFTPサーバーを設定する手順について説明します。その後、クライアントのAlmaLinuxシステムからサーバーに接続する方法を見ていきます。FTP/SFTPの設定は、AlmaLinuxをインストールした後やCentOSからAlmaLinuxに移行した後の一般的なステップです。

このチュートリアルでは、あなたは学びます:

  • VSFTPDを使用してFTPサーバーを設定する方法
  • OpenSSHを使用してSFTPサーバーを設定する方法
  • FTPおよびSFTPユーザーアカウントの設定方法
  • firewalldを介してFTPおよびSFTPを許可する方法
  • コマンドラインを使用してFTP/SFTPサーバーに接続する方法
  • GNOME GUIを使用してFTP/SFTPサーバーに接続する方法

AlmaLinuxでFTP/SFTPサーバーをセットアップする方法

VSFTPDを使用してFTPサーバーをセットアップする

FTPサーバーをセットアップするために使用できるさまざまなソフトウェアパッケージがありますが、その中でも最も優れているのはVSFTPDです。このセクションでは、AlmaLinux上にFTPサーバーをセットアップするために、VSFTPDのインストールと設定方法を示します。あなたのシナリオにとってFTPが十分に安全でない場合やSFTPをセットアップしたい場合は、下の適切なセクションにスクロールしてください。

VSFTPDのインストール

ターミナルにこのコマンドを入力して、システムにVSFTPDをインストールします:

sudo dnf install vsftpd

FSFTPDサーバーを設定する

  1. 問題が発生した場合に備えて、元の設定ファイルのバックアップコピーを保持することは常に良い習慣です。デフォルトの設定ファイルを名前変更しましょう:

    sudo mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orig
    
  2. nanoなど、お好みのテキストエディタを使用して新しいVSFTPD設定ファイルを作成します:

    sudo nano /etc/vsftpd/vsftpd.conf
    
  3. 次の基本設定をあなたのファイルにコピーしてください。この設定は基本的なFTPサーバーに十分であり、これが正常に動作していることを確認した後で、あなたの環境の特定のニーズに合わせて調整することができます。

    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    
    pam_service_name=vsftpd
    userlist_enable=YES
  4. 作成したばかりの/etc/vsftpd/vsftpd.confファイルに上記の行を貼り付け、変更を保存してファイルを閉じてください。

  5. AlmaLinuxのデフォルトファイアウォール(firewalld)は、デフォルトでFTPトラフィックをブロックしますが、次のコマンドを実行すると、トラフィックを許可する例外が作成されます:

    sudo firewall-cmd --zone=public --add-service=ftp --permanent
    sudo firewall-cmd --reload
    
  6. 設定ファイルが保存され、ファイアウォールルールが更新されたら、新しい変更を適用するためにVSFTPDを再起動します:

    sudo systemctl restart vsftpd
    

FTPユーザーを作成する

私たちのFTPサーバーは受信接続を受け入れる準備が整いましたので、これからFTPサービスに接続するための新しいユーザーアカウントを作成する時です。

  1. この最初のコマンドを使用して、ftpuserという新しいアカウントを作成し、2番目のコマンドでそのアカウントのパスワードを設定します:

    sudo useradd -m ftpuser
    sudo passwd ftpuser
    New password: 
    Retype new password: 
    passwd: password updated successfully
    
  2. すべてが正しく動作していることを確認するために、少なくとも1つのファイルをftpuserのホームディレクトリに保存する必要があります。このファイルは、次のステップでFTPにログインしたときに表示される必要があります。

    sudo bash -c "echo FTP TESTING > /home/ftpuser/FTP-TEST"
    

コマンドラインを介してFTPサーバーに接続する

次のコマンドでFTPコマンドラインユーティリティをインストールします:

sudo dnf install ftp

あなたは今、IPアドレスまたはホスト名を使用してFTPサーバーに接続できるようになっているはずです。コマンドラインから接続してすべてが動作していることを確認するために、ターミナルを開き、AlmaLinuxのftpコマンドを使用してループバックアドレス(127.0.0.1)に接続してください。

ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.3)
Name (127.0.0.1:root): ftpuser
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (127,0,0,1,71,72).
150 Here comes the directory listing.
-rw-r--r--    1 0        0              12 Apr 03 01:11 FTP-TEST
226 Directory send OK.
ftp>

出力は上記のテキストのように見えるべきです。これは成功したログインを示し、以前に作成したテストファイルを表示するlsコマンドを含んでいます。

GNOME GUIを介してFTPサーバーに接続する

GUIを使用してFTPサーバーに接続することもできます。FTPクライアントには多くの選択肢がありますが、AlmaLinuxのデフォルトのGNOME GUIには、ファイルマネージャーからFTPサーバーに接続する機能がすでに備わっています。ここでは、FTPサーバーに接続する方法を説明します。

  1. アクティビティメニューからファイルマネージャーを開いてください。
  2. 「その他の場所」をクリックし、ウィンドウの下部にある「サーバーに接続」ボックスにftp://127.0.0.1を入力して接続をクリックしてください。
  3. GNOMEファイルマネージャーでFTPサーバーに接続する

  4. 以前に設定したFTPアカウントの資格情報を入力し、接続をクリックしてください。
  5. FTPのユーザー名とパスワードを入力してください

  6. 接続が成功すると、以前に作成したテストファイルが表示されます。
  7. FTPサーバーへの接続に成功しました

OpenSSHを使用してSFTPサーバーをセットアップする

AlmaLinuxにOpenSSHがすでにインストールされ、有効になっている場合、SFTPサーバーを実行するために追加のソフトウェアは必要ありません。以下の手順に従って適切な設定を変更し、システムをSFTPサーバーに変換します。

OpenSSHをインストールして構成する

  1. まだインストールされていない場合は、次のコマンドを使ってOpenSSHをインストールしてください。

    sudo dnf install openssh-server openssh-clients
    
  2. SSHがインストールされたら、SSHDの設定ファイルにいくつかの変更を加える必要があります。nanoやお気に入りのテキストエディタを使って開いてください:

    sudo nano /etc/ssh/sshd_config
    
  3. ファイルの一番下までスクロールして、次の5行を最後に追加してください:

    Match group sftp
    ChrootDirectory /home
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    
  4. 上記の行により、sftp グループのユーザーは SFTP を介してホームディレクトリにアクセスできますが、通常の SSH アクセスは拒否されるため、シェルにアクセスすることはできません。これらの行を貼り付けた後、設定ファイルを保存して閉じてください。

  5. これらの新しい変更を適用するためにSSHサービスを再起動してください:

    sudo systemctl restart sshd
    
  6. AlmaLinuxのデフォルトファイアウォール(firewalld)はデフォルトでSFTP/SSHトラフィックをブロックしますが、以下のコマンドを使用するとトラフィックを許可する例外が作成されます:

    sudo firewall-cmd --zone=public --add-service=ssh --permanent
    sudo firewall-cmd --reload
    

SFTPユーザーアカウントを作成する

今、私たちはSFTPアクセスを付与したい人のためにユーザーアカウントを作成する必要があります。

  1. sftpという新しいユーザーグループを作成します。すべてのSFTPユーザーはこのグループに所属する必要があります。

    sudo groupadd sftp
    
  2. 次に、新しいユーザーを作成します。この例では、私たちのユーザーをと呼びます。また、このユーザーをグループに追加することも忘れないでください。

    sudo useradd -m sftpuser -g sftp
    
  3. 新しく作成されたsftpuserのパスワードを設定してください:

    sudo passwd sftpuser
    New password: 
    Retype new password: 
    passwd: password updated successfully
    
  4. 最後に、ユーザー自分のホームディレクトリへの完全なアクセスを許可しますが、システム上の他のユーザーにはそのディレクトリへのアクセスを拒否します:

    sudo chmod 700 /home/sftpuser/
    

私たちのSFTP構成は完了しました。これで、すべてが正常に動作しているか確認するためにログインできます。

コマンドラインを介してSFTPサーバーに接続する

ホスト名またはシステムのIPアドレスを使用してSFTPにログインできます。SFTPを設定したのと同じシステムからテストするには、ループバックアドレスに接続します。

127.0.0.1

大丈夫です。

  1. ターミナルを開き、sftpコマンドを使用してログインします:

    sftp sftpuser@127.0.0.1
    The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
    ECDSA key fingerprint is SHA256:VI1OabYHoVZyVtKtDwX5HflcFpBW2txOpdBAqLtP1K8.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
    sftpuser@127.0.0.1's password: 
    Connected to sftpuser@127.0.0.1.
    sftp>
    
  2. ユーザーのホームディレクトリに移動します。そこが唯一権限がある場所です。ここで、新しいディレクトリを作成して、すべてが意図した通りに機能していることを確認してみてください:

    sftp> cd sftpuser
    sftp> mkdir sftp-test
    sftp> ls
    sftp-test          
    sftp>
    

GNOME GUIを介してSFTPサーバーに接続する

GUIを使ってSFTPサーバーに接続することもできます。SFTPクライアントには多くの選択肢がありますが、AlmaLinuxのデフォルトのGNOME GUIにはすでにファイルマネージャーからSFTPサーバーに接続する機能が備わっています。これがSFTPサーバーに接続する方法です。

  1. アクティビティメニューからファイルマネージャーを開いてください。
  2. 「その他の場所」をクリックし、ウィンドウの下部にある「サーバーに接続」ボックスにsftp://127.0.0.1を入力して接続をクリックしてください。
  3. GNOMEファイルマネージャーでSFTPサーバーに接続する

  4. 以前に設定したSFTPアカウントの資格情報を入力し、接続をクリックしてください。
  5. SFTPのユーザー名とパスワードを入力してください

  6. 接続に成功すると、ホームディレクトリを開くことができ、そこからファイルのアップロードとダウンロードができます。
  7. SFTPサーバーへの接続に成功しました

締めくくりの考え

このガイドでは、AlmaLinuxでFTPまたはSFTPサーバーを作成する方法を学びました。また、コマンドラインまたはGNOME GUIを介してFTP/SFTPサーバーに接続する方法も見ました。この機能は、VSFTPDとOpenSSHを使用することで実現でき、FTPまたはSFTPをそれぞれホストすることができます。

関連記事: