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 8.0.15 winx64 のインストールと設定方法のグラフィックチュートリアル (Windows の場合)

この記事では、MySQL 8.0.15 winx64のインストールと設定方法を参考までに紹介します。...

MySQL 5.7 における基本的な JSON 操作ガイド

序文プロジェクトのニーズにより、ストレージ フィールドは JSON 形式で保存されます。プロジェクト...

プロジェクトの再構築からプロジェクトにおける CSS3 カスタム変数の使用について話す

CSS3変数について変数を宣言するときは、変数名の前に 2 つのハイフン ( -- ) を追加します...

基本的な HTML ディレクトリの問題 (相対パスと絶対パスの違い)

相対パス - ファイルを参照する Web ページの場所に基づいて確立されたディレクトリ パス。そのた...

MySQL 時間統計方法の概要

データベースの統計を行う場合、多くの場合、年、月、日に基づいてデータを収集し、echart を使用し...

TypeScript における列挙型の理解と応用シナリオ

目次1. 何ですか2. 使用数値列挙文字列列挙異種列挙自然3. 応用シナリオ要約する1. 何ですか列...

ECMAScript の演算子を理解するための記事

目次単項演算子ブール演算子乗算演算子加法演算子関係演算子等価演算子条件演算子代入演算子カンマ演算子要...

JavaScript でネットワーク速度をテストする方法

目次序文ネットワーク速度のフロントエンド判定原理のまとめ1. img を読み込むか Ajax リクエ...

CSSラベル表示モードについて1つの記事で学ぶ

タグの種類(表示モード) HTML タグは、一般的にブロック タグとインライン タグの 2 種類に分...

node.js で EventEmitter をカスタマイズする方法

目次序文1. 何ですか2. Node.jsでEventEmitterを使用する方法3. 実施プロセス...

Vue+Element UIはドロップダウンメニューのカプセル化を実現します

この記事の例では、ドロップダウンメニューのカプセル化を実装するためのVue + Element UI...

thead、tfoot、tbodyを使用して表を作成します

これらの 3 つのタグを間違った方法で使用して、タイトルを表に沿わせたり、tbody の高さを固定し...

一般的なDockerコマンドの概要

Dockerのインストール1. 要件: Linuxカーネルバージョン3.10以上 表示: uname...

MySQL 8.0 エラー サーバーがクライアントに不明な認証方法を要求しました 解決策

最新バージョンのMySQL 8.0.11をインストールした後、ユーザーを作成して認証します。認証され...

HTML でフォーム入力やその他のテキスト ボックスを読み取り専用にして編集不可にする方法

場合によっては、フォーム内のテキスト ボックスを読み取り専用にして、ユーザーがその中の情報を変更でき...