Ubuntu で FTP サーバーを構築する方法の詳細な説明 (成功保証)

Ubuntu で FTP サーバーを構築する方法の詳細な説明 (成功保証)

1. 今日の午後、コースの要件により、Ubuntu で FTP サーバーを設定する実験を行う必要がありました。しかし、実験の手順書は、まだ N 年前の技術に基づいていました。インターネットでたくさん検索しましたが、すべてが曖昧でした。

数々の困難を乗り越えて、ついに実験は成功しました。皆さんが回り道をせずに済むことを願って、この経験を皆さんと共有したいと思います!

2. 詳細な手順は次のとおりです。

(1)まずターミナルを開き、ルートモードに入ります(ターミナルでコマンド:sudo suを入力し、Enterキーを押してパスワードを入力します)。

(2)vsftpdソフトウェアをインストールします(まずインターネットに接続する必要があります。または、Synaptic Softwareからインストールしてください! sudo apt-get remove vsftpd

コマンド: sudo apt-get install vsftpd 

(3)インストールが成功すると、デフォルトでファイルシステムの下のsrvディレクトリ(ホームと同じディレクトリ)にftpファイルが作成されます。これがftpサーバーのデフォルトフォルダです。

(4) FTPサーバーによって自動的に作成されるディレクトリはホームディレクトリの下のFTPフォルダであると記載されている資料もありますが、私はそれを見つけたことがありません(通常、ホームディレクトリはユーザーのディレクトリです)。また、FTPにアクセスしても自分で作成したディレクトリが見つかりません!

(5) サーバーディレクトリにフォルダとファイルを追加します。まず、srv/ftp/ の下にフォルダ test を作成します (手動で作成することはできず、コマンドでのみ作成できます)。

コマンド: mkdir /srv/ftp/test

作成されたフォルダーを取得します。

テスト用にさらにいくつかのディレクトリを作成してください。

(6)テストフォルダにファイルを作成する:touch /srv/ftp/test/1.txtファイル

(7)1.txtファイルを編集します。(権限管理のため、ファイルの内容を変更するにはルートモードを使用する必要があります。)

sudo gedit /srv/ftp/test/1.txt を実行すると、ルート権限で開いた場合にのみ変更できるメモ帳ファイルがポップアップ表示されます |!コンテンツを追加する

(8)コマンドを例に挙げると、再起動です!

コマンドは、 sudo /etc/init.d/vsftpd restartです。

(9) Ubuntu の IP アドレスが見つかったかどうかを確認します。アドレス バーで、次のアドレスにアクセスします: ftp://192.168.136.130/ または ftp://localhost。以下はスクリーンショットです:

test と入力し、1.txt ファイルを見つけてクリックして入力します。

(10)OK!それでおしまい!

3. 上記の知識は、一般的なデフォルト設定を紹介しています。通常は、自分のニーズに合わせて設定する必要があります。次に、一般的な設定をいくつか示します。

変更する必要がある場合は、次のコマンドを使用してルート権限で変更する必要があります: sudo gedit /etc/vsftpd.conf

(1)匿名ユーザーの設定

  • anonymous_enable=YES、匿名ユーザーのログインを禁止するにはYESをNOに変更します
  • #anon_mkdir_write_enable=YES 、匿名ユーザーがディレクトリを作成できるようにするには、# コメントを削除します
  • #non_upload_enalbe=YES 、匿名ユーザーによるアップロードを許可するには # を削除します
  • anon_world_readable_only=YES は、匿名ユーザーによるダウンロードを許可します。これはデフォルトでは禁止されており、自分で追加できます。
  • Anon_other_write_enable=YES、YESに設定すると、アップロードやディレクトリの作成に加えて、ファイルの名前変更や削除も可能になります。デフォルトはNOです。
  • no_anon_password=NO、これを YES に設定すると、匿名ユーザーはユーザー パスワードを照会せずに直接ログインします。
  • ftp_username=ftp、匿名ユーザーがシステムにログインするためのデフォルトのアカウントは ftp なので、これを変更しないことをお勧めします。
  • chroot_local_user=YES #ローカルユーザーをホームフォルダに制限し、ログイン後にホームフォルダ外のファイルにアクセスできないようにします。これはセキュリティ上の理由のためです
  • anon_root=/var/ftp/anon #匿名ログイン後のルートフォルダを指定します。つまり、匿名ユーザーの場合、/var/ftp/anonがルートディレクトリとしてマップされます。

(2)FTPサービスポートの指定

  • listen_port=8021、コマンドチャネルを8021に指定します。デフォルトは21です。
  • listen_data_port=8020、データチャネルを8020に指定します。デフォルトは20です。

(3)アップロードモード設定

  • pasv_enable=YES、パッシブモードの使用を許可するかどうか、デフォルトでは許可されます。
  • pasv_min_port=10000、パッシブモード使用時のオープンポートの最小値を指定します
  • pasv_max_port=10004 は、パッシブ モードを使用する場合の開いているポートの最大値を指定します。

(4)VSFTPサーバはIPアドレスを指定する

  • listen_address=192.168.0.21、FTP、IPアドレスを指定

注意: 指定された IP アドレスの使用は、vsftp がスタンドアロン モードで実行されている場合にのみ許可されます。/etc/xinetd.d ディレクトリに vsfpd ファイルが作成されている場合は、ファイル内の無効オプションを yes に設定する必要があります。

(5)ユーザーをロックし、ユーザーがホームディレクトリから離れることを禁止する

  • chroot_local_user=YES、YESに設定するとユーザーのホームディレクトリにロックされ、NOに設定すると切り替えられます

指定したユーザーがユーザーのホーム ディレクトリをロックするように設定します。

#chroot_list_enable=はい

#chroot_list_file=/etc/vsftpd.chroot_list

次のように変更します。

chroot_list_enable=いいえ

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

上記を保存し、次の操作を実行します。

# /etc/vsftpdvsftpd.chroot_list をタッチします

#vi /etc/vsftpd/vsftpd.chroot_list に、netseek_com などのユーザーリストをファイルに追加します。

(6)vsftpdサーバのトラフィック制御

  • max_clients=100; 許可される最大接続数は100と定義され、デフォルトは0で、テーブルには制限はありません。
  • max_per_ip=5 ; IP ごとに許可される接続数。0 は制限なしを意味します。スタンドアロン モードで実行する必要があります。
  • anon_max_rate=50000 ; 匿名ユーザーの最大帯域幅(bps)
  • local_max_rate=200000; システムユーザーの最大帯域幅

(7) vsftpdカスタマイズされたウェルカムメッセージ

ディレクトリの説明設定

#vi /etc/vsftpd.conf

#dirmessage_enable=YES、先頭の#を削除します。

次に、.message をカスタマイズし、書きたい内容を書き込み、このファイルを各ユーザーのホーム ディレクトリにコピーします。これで完了です。

(9) vsftpdシステムのウェルカムメッセージ設定

ftpd_banner=ftp.netseek.com へようこそ、イェーイ!!!

システムウェルカムメッセージファイルの設定

Banner_file=/etc/vsftpd/welcome は ftpd_banner と似ていますが、banner_file が welcome ファイルを指定する点が異なります。

4. ユーザーを作成する

しかし、この方法ではファイルをアップロードすることはできません。これは匿名ユーザーなので、現在のディレクトリの所有者はルート ユーザーです。実際にファイルをアップロードしたい場合は、このディレクトリにフォルダーを作成し、upload という名前を付けます。

$ sudo mkdir /srv/ftp/upload

$ sudo chown ftp:root /srv/ftp/upload

現時点では、アップロードディレクトリへのファイルの転送は可能ですが、ルートディレクトリへのファイルのアップロードはできません。これは匿名ユーザーです。匿名ユーザーでない場合は、この問題は発生しません。

1). 設定ファイル /etc/vsftpd.conf を変更します。

匿名を有効にする=いいえ

ローカル有効=はい

書き込み有効=はい

chroot_local_user=はい 

2). ローカルユーザーを作成する

$ sudo ユーザー追加 ftpuser -m

$ sudo パスワード ftpuser

その後、ftpuser を使用して FTP にログインできます。

6. エラーが発生した場合: 500 OOPS: vsftpd: 書き込み可能な匿名ルートでの実行を拒否します

これは、ftp ユーザーのホーム ディレクトリの権限が正しくないことを意味します。このディレクトリの権限では、すべての権限を開くことができません。これは、chmod 777 /srv/ftp の実行によって発生します。ftp ユーザーのホーム ディレクトリがない場合は、もちろん自分で作成する必要があります。

FTP ユーザーのホーム ディレクトリを、すべてのユーザー、ユーザー グループ、または他のユーザー グループに完全に公開することはできません。 解決策は次のとおりです。

# chown root:root /srv/ftp 
# chmod 755 /srv/ftp

7. ファイアウォールの対応するポート21と20を開きます。

8. /etc/init.d/vsftpd restart サービスを再起動する

5. ユーザーからの説明

以下では、vsftpd でサポートされている 3 種類のユーザーについて説明します。

  • 1. 匿名ユーザー。つまり、パスワードを入力せずに FTP サーバーにログインできるユーザーです。このユーザー名は通常、ftp または anonymous です。匿名ユーザーに関連する設定は、多くの場合 anon_ オプションで始まります。
  • 2. ローカル ユーザー、つまり Linux システム上のシステムにログインできるユーザー。これらのユーザーはシステム上の実際のユーザーです。通常、独自の家や殻などを持っています。ローカル ユーザーに関連する設定は、多くの場合、local_ で始まるか、local_ を含みます。
  • 3. 仮想ユーザー。FTP のみに有効なユーザー。これらのユーザーは Linux システムにログインできず、FTP サーバーにのみログインできます。実際、ローカル ユーザーは、FTP サーバーに対してのみ有効な複数の仮想ユーザーにマップされます。仮想ユーザーは独自の FTP 構成ファイルを持つことができるため、通常は、セキュリティ制御の目的で FTP システムのユーザーごとに異なる権限を設定するために使用されます。仮想ユーザーに関する設定は guest_ で始まります。

FTP を使用して自分と共有するだけの場合は、ローカル ユーザーを有効にすることができます。

多くの人と共有したい場合は、匿名ユーザーを使用できます。

異なるユーザー グループに異なる権限を付与する必要がある場合は、より複雑な仮想ユーザーを設定する必要があります。

mkdir directoryname => ディレクトリを作成する
rmdir 空のディレクトリ名 => 空のディレクトリを削除します
rm filename filename => 1つ以上のファイルを削除する
rm –rf 空でないディレクトリ名 => 空でないディレクトリの下にあるものをすべて削除します
touch filename => 空のファイルを作成する

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。

以下もご興味があるかもしれません:
  • Ubuntu 18.04 に opencv 3.2.0 をインストールするためのソリューション
  • Ubuntu16.04/Raspberry Pi Python3+opencv 設定チュートリアル(共有)
  • Linux-ubuntu16.04 上の Python3.5 で OpenCV3.2 を設定する方法
  • Ubuntu14.04 opencv2.4.8とopencv3.3.1のマルチバージョン共存実装方法
  • ubuntu14.04にopencv3.0.0をインストールする方法
  • Ubuntu 17.04 でソースコードから opencv をコンパイルしてインストールする詳細な手順
  • Ubuntu で Opencv をインストールして使用する方法に関するチュートリアル
  • Python Web プロジェクト Django が Ubuntu 18.04 Tencent Cloud ホストにデプロイされました
  • Ubuntu で中国語入力方法が使えない場合の解決策
  • UbuntuでOpenCVをコンパイルしてインストールする方法

<<:  MyBatisインターセプターのページング機能を実装する方法

>>:  反応自動構築ルーティングの実装

推薦する

VMware は Centos7 システムの PXE+kickstart 無人インストールの詳細なプロセスを実装します

目次PXEはサーバーの無人バッチ展開を実装します1. PXEの概要1.1 PXEとは何か1.2 キッ...

「@INC で ExtUtils/MakeMaker.pm が見つかりません」というエラーを解決する

mha4mysql をインストールする場合の手順は、おおよそ次のようになります: unzip、per...

CentOS 7 ブートカーネルの切り替えとブートモードの切り替えの説明

Centos7 スイッチブートカーネル注: 必要に応じて、最初にyum update -yを実行して...

Mysql クエリの結果セットを JSON データに変換するサンプル コード

Mysql はクエリ結果セットを JSON データに変換します 序文 学生テーブル 学生スコアテーブ...

ウェブページからテキスト透かしを削除する2つの簡単な方法

<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...

MySQL v5.7.18 解凍バージョンのインストール詳細チュートリアル

MySQLをダウンロード5.1.1.1 より前のバージョン私のコンピュータは64ビットなので、Win...

MySQL マスター スレーブ データが矛盾しています。プロンプト: Slave_SQL_Running: 解決策はありません

この記事では、MySQL マスターとスレーブ データ間の不一致の解決方法と、プロンプト「Slave_...

CSS で div にスクロールを追加し、スクロール バーを非表示にする

CSS は div にスクロールを追加し、スクロール バーを非表示にします。具体的なコードは次のとお...

3次元画像配置効果を実現する純粋なCSSのサンプルコード

1. 要素の幅/高さ/パディング/マージンのパーセンテージ基準要素の幅/高さ/パディング/マージンの...

Docker 実行オプションを使用して Dockerfile の設定を上書きする

通常は、最初に Dockerfile ファイルを定義し、次に docker build コマンドを使...

Vueデータ双方向バインディング実装方法

目次1. はじめに2. コードの実装2.1 目的分析2.2 実装プロセス2.2.1 エントリーコード...

Vueは画像のドラッグアンドドロップ機能を実装します

この記事の例では、画像のドラッグアンドドロップ機能を実現するためのVueの具体的なコードを参考までに...

HTML で #include ファイルを使用する例

a.htmとb.htmの2つのファイルがあります。同じディレクトリ内のa.htmの内容は次のとおりで...

MySQL エラー コード 1064 の解決策

SQL ステートメント内の単語が mysql のキーワードと競合する場合は、`` (タブ キーの上)...

Mysql クラシック高レベル/コマンドライン操作 (クイック) (推奨)

サーバーとデータベースの構築方法を学ぶ必要があるため、最近は SQL 言語を独学で学び始めました。デ...