CentOS 8 システム FTP サーバーのインストールとパッシブ モードの設定の詳細なチュートリアル

CentOS 8 システム FTP サーバーのインストールとパッシブ モードの設定の詳細なチュートリアル

これは初心者向けの FTP サーバーのインストールです。

1. 基本を理解する

FTP: ファイル転送プロトコル (FTP)。

FTP は歴史上最も古いファイル転送プロトコルの 1 つであり、多くのソフトウェア システムで使用されています。たとえば、WordPress バックエンドの更新には FTP サービスが必要です。

FTP は UDP の代わりに TCP プロトコル伝送を使用します。

FTP は、制御ポート 21 と送信ポートの 2 種類のポートを使用します。

FTP 送信には、パッシブ モード (PASV) とアクティブ モード (PORT) の 2 つのモードがあります。

送信プロセス中、パッシブモードかアクティブモードかにかかわらず、[クライアント] と [サーバーのポート 21] はユーザー名やパスワードなどの関連情報を交換し、送信に使用するモードを確認します。アクティブ モードの場合、クライアントとサーバーは [サーバーのポート 20] でデータを交換します。パッシブ モードの場合、サーバーは独自の 1 つ以上のランダム ポートを確認し、クライアントはサーバー上のこのポートとデータを交換する必要があります。

VSFTPD は広く使用されている FTP サーバー ソフトウェアです。 FTP コマンドはクライアント操作コマンドです。

SFTPもあります。 SFTP と FTP は名前だけが似ているため、単純にセキュア FTP として理解されるべきではありません。 SSH プロトコルが提供するファイル転送方式です。多くのクラウド サーバーではリモート操作を容易にするために SSH 接続が備わっているため、FTP の設定がうまくできていない場合でも SFTP を使用して転送できる場合があります。 SFTP はポート 22 のみを使用します。

2. システム環境を確認する

使用する個人用 FTP サーバーは Alibaba Cloud の ECS サーバーです。仮想ホストは一部の構成をサポートしていない可能性がありますが、多くの仮想ホストには FTP サービスが組み込まれています。

システムは Alibaba Cloud Linux 3.2104 64 ビットで、Centos8 命令と互換性があります。別のバージョンのシステムを使用している場合は、一部の命令が使用できるかどうかを確認する必要があります。

使用されるパッケージ マネージャーは DNF です。これは YUM の代替バージョンであり、ほとんどの YUM コマンドと互換性があります。パッケージマネージャーを使用すると、デフォルトのパスを使用してシステムソフトウェアを簡単にインストールおよび更新できるため、インストールパスの設定によって発生する問題が軽減されます。初心者におすすめです。

さらに操作を進める前に、次の手順でシステムに関連するコンポーネントがインストールされているかどうかを確認できます。

vsftpdはどこにありますか

vsftpdがシステムにインストールされていない場合は、

VSFTPD:

それ以外の場合は、次のようなディレクトリが返されます。

vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

ここにはスペースで区切られた 3 つのディレクトリがあります。 CENTOS8 のデフォルトの DNF インストールでは、/etc/vsftpd がデフォルトのインストール場所です。

3. ftpコマンドをインストールする[オプション]

ftp コマンドを使用すると、サーバー側で独自の FTP サーバーに接続できるため、ファイアウォールの干渉を回避し、問題のトラブルシューティングが容易になります。必須ではありませんが、推奨されます。

dnf インストール ftp

インストール後すぐにご利用いただけます。

リンク サーバー:

ftp XXX.XXX.XXX.XXX

XXX.XXX.XXX.XXX は IP アドレスを表します。 ftp localhost を使用してローカル サーバーに接続することもできます。

サーバーを終了する

やめる

初心者にはこれ以上の内容は必要ありません。詳しく知りたい方はご自身で検索してください。

4. VSFTPDをインストールする

dnf インストール vsftpd

5. ローカルユーザーを設定する

ユーザー追加 xxx
パスワード xxx

XXX はユーザー名を表します。 useradd でユーザーを追加し、passwd でパスワードを変更します。

この方法で追加されたユーザーは、vsftpd ソフトウェアのユーザーではなく、CENTOS システムのユーザーであることに注意してください。変更される設定の一部はシステム ユーザー向けでもあります。

仮想ユーザーを使用してシステムユーザーにマッピングすることもできますが、関連する設定は初心者にとっては少し面倒です。詳細については検索してください。

6. vsftpdのconfファイルを設定する

前述したように、CENTOS8 での dnf インストールのデフォルトのインストール パスは /etc/vsftpd です。 vsftpd の設定ファイルはここにあります。

この記事ではパッシブ モード リンクを使用します。変更が必要な主なパラメータは以下のとおりです([ ]および[ ]内の内容は関連設定の注釈ですので、設定ファイルには書き込まないでください)

PORTモードを無効にする

connect_from_port_20=NO [PORTモードで使用される送信ポートを無効にします]

PASVモードを有効にする

聞く=はい
listen_ipv6=NO [PASV モードでは、ランダムに割り当てられた接続アドレスとポートがクライアントに返されます。戻り値は 6 ビットの数値です: XXX、XXX、XXX、XXX、a、b。最初の 4 桁は IP アドレス、最後の 2 桁は a*256+b 方式で計算されたポート値です。これを有効にすると、値が IPV6 アドレスとして認識され、問題が生じます。
pasv_enable=YES [PASVモードを有効にする]
pasv_min_port=xxxx パスビ
pasv_max_port=xxxx [サーバーによって割り当てられる最小および最大のポート番号を指定します。指定しないと、サーバーが他のソフトウェアのポートと重複するポート番号で構成され、エラーが発生する可能性があります。競合を避けるために、より大きなポートを割り当てることをお勧めしますが、ポートが大きすぎるとサーバーの範囲を超える可能性があります。
pasv_addr_resolve=YES [非常に重要です。 IP アドレスの変更を許可します。 】
pasv_address=XXX.XXX.XXX.XXX【非常に重要です。このアドレスはサーバーのパブリック アドレスです。 PASV モードでは、サーバーは 6 ビットのアドレスとポートを返します。上記 2 つの項目を設定しないと、プライベート ネットワーク IP アドレスが返され、リモート接続でアドレスを見つけることができません。 】
pasv_promiscuous=YES [YES はセキュリティ チェックをオフにします。ある程度のリスクはあります。通常の状況では、サーバーは 2 つのクライアント接続の IP アドレスが一致しているかどうかを確認します。一致しない場合は、接続が拒否されます。 】

変更すべき推奨セキュリティ設定

anonymous_enable=NO [匿名ユーザーは禁止]
chroot_local_user=YES [指定されたルートディレクトリ外のファイルへのユーザーアクセスを禁止する]
allow_writeable_chroot=いいえ

7. 構成システム関連ソフトウェアの調整

nologinの設定

通常は/etcパスにあるpasswdファイルを変更し、/bin/bashを/sbin/nologinに変更して、ftpユーザー名とパスワードがシステムに直接ログインすることを禁止します。

ルートディレクトリを変更する

passwd ファイルを変更し、ディレクトリ アドレスを ftp ユーザーがアクセスできるようにするアドレスに置き換えます。

ディレクトリ権限を変更する

この部分については、権限について具体的に紹介している本を見つけることをお勧めします。権限を755に設定しました。

ルート ディレクトリのアクセス許可は、構成ファイルに応じてさまざまなエラーを引き起こす可能性があります。

pam ファイル

ユーザーの nologin を変更した後、システムの pam.d フォルダー (通常は etc パス内) を検索する必要があります。 pam_shells.so には認証が必要です。これを nologin に変更すると、これに一致しなくなり、エラーが発生します。コメントアウトしてください。

他の設定がある場合は、このファイルをさらに変更する必要がある場合があります。

外部ネットワークへのポートを開く

この手順には 2 つのことが含まれます。1 つはサーバーのファイアウォールを開くこと、もう 1 つはサーバー プロバイダーに外部セキュリティ グループがある可能性があることです。

サーバーのファイアウォールを開く

CENTOS はデフォルトでfirewalldがインストールされます。iptables の場合はご自身で探してください。Selunix も関連設定が必要ですが、間違いやすいためデフォルトでオフにしている人が多いです。

systemctl status firewalld [firewalldが有効になっているか確認する]

firewall-cmd --add-port=xxx-xxx/tcp --permanent [xxx-xxx は設定ファイルで設定されたポート範囲を表し、左側が小さく右側が大きい]
firewall-cmd --add-port=21/tcp --permanent [制御リンク用にポート21を開きます。 PORTモードを無効にしない場合でも、ポート20を開く必要があります。
ファイアウォール-cmd --reload [設定を再読み込み]

サービスプロバイダーの外部セキュリティグループを開く

Alibaba Cloudを例にとると、console-server-securityグループでは、受信方向に同様の設定を行い、設定ファイルでPASVポート範囲を設定し、制御リンクの21番目のポートを設定します(PORTモードが閉じていない場合は、ポート20も開く必要があります)。

8. 起こりうるエラーをテストする

FTP コマンドと IP アドレスを使用してサーバーおよびリモート クライアントにログインします。 Windows には、リソース マネージャー ftp://XXX,XXX,XXX,XXX (パブリック IP アドレス) を介してログインでき、cmd コマンドまたは ftp ソフトウェアを使用してテストできます。

1. サーバーはログインできるがリモート サーバーはログインできない場合は、ファイアウォールの設定を確認してください。

2. 「227 パッシブモードに入ります」というエラーが表示された場合は、pasv_addr_resolve=YES および pasv_address=XXX.XXX.XXX.XXX が正しく設定されていないことを意味します。サーバーから返されたアドレスはプライベート ネットワーク アドレスまたは不正な IP アドレスであるため、クライアントは接続できません。

今のところ問題は発生しておらず、上記のように設定した後、FTP を使用して WordPress を更新しました。間違いや漏れがありましたら、ご訂正ください。読んでくれてありがとう。

Centos8 システムでの FTP サーバーのインストールとパッシブ モード構成に関する初心者向けの記事はこれで終わりです。Centos8 システムでの FTP サーバーに関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • CentOS8.0 で FTP サーバーをインストールして設定する方法
  • CentOS7 サーバー環境で vsftpd をインストールして設定する方法
  • CentOS 7 で FTP サーバーを構築するための proftpd のインストールと設定に関する詳細なチュートリアル
  • Centos6.9 で vsftpd をインストールして複数のユーザーを設定する方法
  • CentOS7のインストールとFTPを構築するためのvsftpの設定の詳細な説明
  • CentOS での vsftp の詳細なインストールと設定
  • CentOs6.5 での vsftp のインストールと設定に関する簡単なチュートリアル

<<:  よくある CSS エラーと解決策

>>:  Web コンポーネントの内部イベント コールバックと問題点の分析

推薦する

MySQL 5.7.21 解凍版インストール Navicat データベース操作ツールインストール

MySQL解凍版とNavicatデータベース操作ツールのインストールは、以下のとおりです。 1. M...

nginxリバースプロキシを使用するときに長時間接続を維持する方法

・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...

MySQLデータベースは何をするのか

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

Telnet は Alpine イメージの busybox-extras に移動されました

Alpine イメージの telnet はバージョン 3.7 以降、busybox-extras パ...

Linux で so または実行可能プログラムの依存ライブラリを表示します

Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...

VMware での Ubuntu と Windows 間のファイル共有

この記事では、VMware 環境下で Ubuntu と Windows 間でファイルを共有する方法を...

Linux mysql-5.6 でルート パスワードをリセットする方法

1. MySQL サービスが起動しているかどうかを確認します。起動している場合は、MySQL サービ...

Vue が配列の変更を監視できない問題の解決方法

目次1. Vueリスナー配列2. vueが配列の変更を監視できない状況1. Vueリスナー配列Vue...

ネイティブJSが様々なスポーツの均一な動きを実現

この記事では、ネイティブ JS で実装された均一なモーションを紹介します。その効果は次のとおりです。...

Dockerコンテナの個別展開のためのLNMPの実装

1. 環境整備各コンテナの IP アドレス: nginx: 172.16.10.10マイSQL: 1...

JavaScript 即時実行関数の使用状況分析

一般的に、関数は実行する前に呼び出す必要があることはご存じのとおりです。以下に示すように、関数を定義...

MySQL ifnull のネスト使用手順

MySQL ifnull のネストされた使用ifnull をネストする方法があるかどうかオンラインで...

CentOS 6-7 PHPのyumインストール方法(推奨)

1. 現在インストールされているPHPパッケージを確認するyum list installed |...

HTMLでカメラを読み込む方法

効果図: 全体的な効果: ビデオ読み込み中: 写真:ステップ1: HTML要素を作成するまず、HTM...

Docker を使用して静的 Web サイト アプリケーションを作成する (複数の方法)

静的ウェブサイトをホストできるサーバーは数多くあります。この記事では、nginx、apache、to...