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 コンポーネントの内部イベント コールバックと問題点の分析

推薦する

3つの簡単な調整でMySQLを最適化する

私は熟練した DBA になるつもりはありませんが、MySQL を最適化するときは、いくつかの構成を調...

SQL ファジー クエリ レポート: ORA-00909: パラメータの数が無効です。解決策

あいまいクエリにOracleデータベースを使用する場合、コンソール エラーは次の図に表示されます。理...

Dockerの国内イメージソースを変更する方法

Dockerデーモンのアクセラレータを構成する設定ファイルから Docker を起動し、/etc/d...

HTML テーブルの境界線を設定する際のヒント

HTML を初めて使用する多くの人にとって、テーブル <table> は最もよく使用され...

MySQL トランザクション分離レベルの詳細

serializableシリアル化(問題なし)トランザクションは順次実行する必要があります。前のトラ...

MySQL関連のツールをいくつかお勧めします

序文:インターネット技術の継続的な発展に伴い、MySQL 関連のエコシステムはますます充実し、ますま...

HTML コード内のスペースと空白行についての簡単な説明

HTML コード内の連続するスペースまたは空白行 (改行) はすべて 1 つのスペースとして表示され...

Webpack プロジェクトでローダー プラグインをデバッグする方法

最近、webpackの使い方を学んでいたときに、webpack-replace-loaderの設定正...

vue-cli でレスポンシブ レイアウトを実装する方法

フロントエンド開発を行うと、PCとモバイル端末の適応に必然的に直面することになります。このような問題...

Docker 起動時の ES メモリ オーバーフローの解決方法

jvm.options ファイルを elasticsearch 構成に追加し、スタック サイズを変更...

州と市町村の連携を簡単に実現するJavaScript

この記事では、省と市の簡単な連携を実現するためのJavaScriptの具体的なコードを参考までに紹介...

vue+iviewのメニューとタブの連携方法

Vue+iview メニューとタブのリンク現在、vue+iview を使用してバックエンド管理システ...

Linux (CentOS) システムで MySQL データベース ディレクトリの場所を変更する方法

CentOS システムで MySQL データベース ディレクトリの場所を変更する方法1. まず、My...

電子メールの HTML ページを作成するための原則の概要

HTML メールはこのサイト上の独立したホスト ページではないため、他の誰かによってホストされていま...

フロントエンドインタビューに必要なホモロジーとクロスドメインの詳細な説明

序文ご存知のとおり、ブラウザの相同性戦略とクロスドメイン方式も、フロントエンド面接で頻繁に遭遇する問...