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

推薦する

負荷分散と動的・静的分離を実現するNginx+Tomcatの原理の分析

1. Nginx ロードバランシングの実装原理1. Nginxはリバースプロキシを通じて負荷分散を実...

Linux での i3 ウィンドウ マネージャーの設定と使用に関するチュートリアル

この記事では、Fedora 28 に i3 をインストールして簡単に設定する方法を説明します。 1....

ウェブデザインの詳細分析に関する詳細な議論

設計業務では、設計者がレビューに参加したり、リーダーの一部が設計案の詳細が足りないと言っているのをよ...

MySQL に絵文字表現を挿入できない問題の解決方法

序文最近この問題に遭遇するまで、私は UTF-8 が文字セットの問題に対する普遍的な解決策だと考えて...

HTML テーブル セルの幅と高さを設定する方法

Web ページを作成するときに、テーブルの幅が揃っていないという問題に遭遇することがよくあります。 ...

シンプルなリスト機能を実装するミニプログラム

この記事の例では、参考のために簡単なリスト機能を実装するアプレットの具体的なコードを共有しています。...

vuexサードパーティパッケージを使用してデータの永続性を実装する方法

目的: vuex で管理されている状態データを同時にローカルに保存できるようにします。独自のストレー...

HTML のスクロールバーについて/スクロールバーの削除

1. xhtmlの下のスクロールバーの色元の HTML では、ページ全体のスクロール バーを次のよう...

CSS 向け SASS スタイル プログラミング ガイド

SASS を使用する開発者が増えるにつれて、SASS コードの数に注意する必要があります。 SASS...

MySQL ログトリガー実装コード

SQL文 ドロップトリガー もし sys_menu_edit が存在します。 各行のsys_menu...

Windows 10 での MySQL 5.7.21 winx64 のインストールと設定方法のグラフィック チュートリアル

mysql 5.7.21 winx64 のインストールと設定方法: MySQLのコミュニティバージョ...

JavaScript オブジェクト指向の実践の詳細説明: カプセル化とオブジェクトのドラッグ

目次概要1. DOM要素をアニメーション化する方法2. 現在のブラウザでサポートされている変換互換の...

Tencent Cloud Server での Jenkins の設定方法の詳細

目次1. Tencent Cloud Serverに接続する2. 環境整備Jenkinsのデプロイメ...

CentOS 8 仮想マシンから Windows 10 ホスト フォルダーにアクセスする方法の簡単な分析

VMware Toolsをインストールすると、仮想マシンホスト間で①テキストをコピーして貼り付けるこ...

MySQL でのログインを取り消す

コンセプト紹介: MySQL の redo ログにはトランザクションの動作が記録されることはご存じの...