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サーバーを設定する
問題が発生した場合に備えて、元の設定ファイルのバックアップコピーを保持することは常に良い習慣です。デフォルトの設定ファイルを名前変更しましょう:
sudo mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_orignanoなど、お好みのテキストエディタを使用して新しいVSFTPD設定ファイルを作成します:
sudo nano /etc/vsftpd/vsftpd.conf次の基本設定をあなたのファイルにコピーしてください。この設定は基本的な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=YESAlmaLinuxのデフォルトファイアウォール(firewalld)は、デフォルトでFTPトラフィックをブロックしますが、次のコマンドを実行すると、トラフィックを許可する例外が作成されます:
sudo firewall-cmd --zone=public --add-service=ftp --permanent sudo firewall-cmd --reload設定ファイルが保存され、ファイアウォールルールが更新されたら、新しい変更を適用するためにVSFTPDを再起動します:
sudo systemctl restart vsftpd
作成したばかりの/etc/vsftpd/vsftpd.confファイルに上記の行を貼り付け、変更を保存してファイルを閉じてください。
FTPユーザーを作成する
私たちのFTPサーバーは受信接続を受け入れる準備が整いましたので、これからFTPサービスに接続するための新しいユーザーアカウントを作成する時です。
この最初のコマンドを使用して、
ftpuserという新しいアカウントを作成し、2番目のコマンドでそのアカウントのパスワードを設定します:sudo useradd -m ftpuser sudo passwd ftpuser New password: Retype new password: passwd: password updated successfully-
すべてが正しく動作していることを確認するために、少なくとも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サーバーに接続する方法を説明します。
- アクティビティメニューからファイルマネージャーを開いてください。
- 「その他の場所」をクリックし、ウィンドウの下部にある「サーバーに接続」ボックスに
ftp://127.0.0.1を入力して接続をクリックしてください。 - 以前に設定したFTPアカウントの資格情報を入力し、接続をクリックしてください。
- 接続が成功すると、以前に作成したテストファイルが表示されます。
GNOMEファイルマネージャーでFTPサーバーに接続する
FTPのユーザー名とパスワードを入力してください
FTPサーバーへの接続に成功しました
OpenSSHを使用してSFTPサーバーをセットアップする
AlmaLinuxにOpenSSHがすでにインストールされ、有効になっている場合、SFTPサーバーを実行するために追加のソフトウェアは必要ありません。以下の手順に従って適切な設定を変更し、システムをSFTPサーバーに変換します。
OpenSSHをインストールして構成する
まだインストールされていない場合は、次のコマンドを使ってOpenSSHをインストールしてください。
sudo dnf install openssh-server openssh-clientsSSHがインストールされたら、SSHDの設定ファイルにいくつかの変更を加える必要があります。nanoやお気に入りのテキストエディタを使って開いてください:
sudo nano /etc/ssh/sshd_configファイルの一番下までスクロールして、次の5行を最後に追加してください:
Match group sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftpこれらの新しい変更を適用するためにSSHサービスを再起動してください:
sudo systemctl restart sshdAlmaLinuxのデフォルトファイアウォール(firewalld)はデフォルトでSFTP/SSHトラフィックをブロックしますが、以下のコマンドを使用するとトラフィックを許可する例外が作成されます:
sudo firewall-cmd --zone=public --add-service=ssh --permanent sudo firewall-cmd --reload
上記の行により、sftp グループのユーザーは SFTP を介してホームディレクトリにアクセスできますが、通常の SSH アクセスは拒否されるため、シェルにアクセスすることはできません。これらの行を貼り付けた後、設定ファイルを保存して閉じてください。
SFTPユーザーアカウントを作成する
今、私たちはSFTPアクセスを付与したい人のためにユーザーアカウントを作成する必要があります。
sftpという新しいユーザーグループを作成します。すべてのSFTPユーザーはこのグループに所属する必要があります。sudo groupadd sftp次に、新しいユーザーを作成します。この例では、私たちのユーザーを
と呼びます。また、このユーザーを グループに追加することも忘れないでください。 sudo useradd -m sftpuser -g sftp新しく作成されたsftpuserのパスワードを設定してください:
sudo passwd sftpuser New password: Retype new password: passwd: password updated successfully最後に、ユーザー自分のホームディレクトリへの完全なアクセスを許可しますが、システム上の他のユーザーにはそのディレクトリへのアクセスを拒否します:
sudo chmod 700 /home/sftpuser/
私たちのSFTP構成は完了しました。これで、すべてが正常に動作しているか確認するためにログインできます。
コマンドラインを介してSFTPサーバーに接続する
ホスト名またはシステムのIPアドレスを使用してSFTPにログインできます。SFTPを設定したのと同じシステムからテストするには、ループバックアドレスに接続します。
127.0.0.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>ユーザーのホームディレクトリに移動します。そこが唯一権限がある場所です。ここで、新しいディレクトリを作成して、すべてが意図した通りに機能していることを確認してみてください:
sftp> cd sftpuser sftp> mkdir sftp-test sftp> ls sftp-test sftp>
GNOME GUIを介してSFTPサーバーに接続する
GUIを使ってSFTPサーバーに接続することもできます。SFTPクライアントには多くの選択肢がありますが、AlmaLinuxのデフォルトのGNOME GUIにはすでにファイルマネージャーからSFTPサーバーに接続する機能が備わっています。これがSFTPサーバーに接続する方法です。
- アクティビティメニューからファイルマネージャーを開いてください。
- 「その他の場所」をクリックし、ウィンドウの下部にある「サーバーに接続」ボックスに
sftp://127.0.0.1を入力して接続をクリックしてください。 - 以前に設定したSFTPアカウントの資格情報を入力し、接続をクリックしてください。
- 接続に成功すると、ホームディレクトリを開くことができ、そこからファイルのアップロードとダウンロードができます。
GNOMEファイルマネージャーでSFTPサーバーに接続する
SFTPのユーザー名とパスワードを入力してください
SFTPサーバーへの接続に成功しました
締めくくりの考え
このガイドでは、AlmaLinuxでFTPまたはSFTPサーバーを作成する方法を学びました。また、コマンドラインまたはGNOME GUIを介してFTP/SFTPサーバーに接続する方法も見ました。この機能は、VSFTPDとOpenSSHを使用することで実現でき、FTPまたはSFTPをそれぞれホストすることができます。





