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インターセプターのページング機能を実装する方法

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

推薦する

vue3のテレポート瞬間移動機能の使い方を詳しく解説

vue3テレポート瞬間移動機能の使用は参考用です。具体的な内容は次のとおりです。テレポートは通常、瞬...

LinuxでIPアドレスを手動で設定するための詳細な手順

目次1.まずネットワークカードの設定ディレクトリに入る2. ifcfg-ens33ネットワークカード...

Linux LVM 論理ボリューム構成プロセス (作成、増加、削減、削除、アンインストール) の詳細な説明

Linux LVM論理ボリューム構成プロセスの詳細な説明多くの Linux ユーザーは、オペレーティ...

docker nginxコンテナの起動とローカルへのマウントの詳細な説明

まず、nginx コンテナ内の構造:コンテナを入力します: docker exec -it b511...

CSSスプライト技術は複数の背景を1つのPNG画像に統合しますCSSポジショニング

アメリカのYAHOOがページ制作で使用している画像統合技術。これらのアイコン、列背景、画像ボタンを定...

js 加算、減算、乗算、除算の正確な計算方法のサンプルコード

序文コンピュータの数値は浮動小数点であるため、計算プロセス中に取得されるデータは通常正確ではなく、そ...

Navicatは機能ソリューション共有を作成できません

初めて MySQL FUNCTION を書いたとき、エラーが何度も発生しました。 Err] 1064...

HTMLファイルで外部CSSファイルを導入する場合のパスの書き方について簡単にまとめます

1. 外部CSSファイルの基本スタイルをインポートする<link> タグを使用して外部ス...

MYSQL サブクエリとネストされたクエリの最適化例の分析

ゲーム史上最高スコアトップ100をチェックSQLコード cdb_playsgame ps から ps...

Vue モバイル開発で better-scroll を使用するときにクリック イベントが失敗する問題の解決策

最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...

JavaScript クロージャの説明

目次1. クロージャとは何ですか? 1.2 クロージャのメモ化: 関数は定義された環境を記憶する1....

mysqlサーバーは--skip-grant-tablesオプションで実行されています

MySQLサーバーは--skip-grant-tablesオプションで実行されているため、このステー...

VS2019をMySQLデータベースに接続するプロセスと一般的な問題の概要

今日の午後からVS2019をMySQLで使えるのではないかと思い、いろいろ環境構築を始めました。プロ...

sqlmap インジェクションの詳細なグラフィック説明

目次1. この Web サイトには SQL インジェクションの脆弱性がある可能性があることが判明しま...