vsftp を使用して Linux で FTP サーバーを構築する (パラメータの説明付き)

vsftp を使用して Linux で FTP サーバーを構築する (パラメータの説明付き)

導入

この章では、主に Linux で FTP サーバーを構築するプロセスを紹介します。習得すべき重要なポイントは、構成ファイルの適切な構成です。

知識ポイント

Linuxで使用されるFTPはvsftpです
FTP には 3 つのログイン方法があります。

  • 匿名ログイン: ユーザーパスワードは不要
  • ローカルユーザーログイン: ローカルユーザー名とパスワードを使用してログインします
  • 仮想ユーザーモード: ログインにはユーザー名とパスワードも使用しますが、そのユーザーは Linux で作成されたユーザーではありません。

FTPをインストールする

YUMを使用してインストールする

yum -y vsftpdをインストールします

ファイル構成

インストール後、/etc/vsftpd/ パスに 3 つの設定ファイルが作成されます。

vsftpd.conf: メイン設定ファイル

ftpusers: FTP サーバーにアクセスできないユーザーを指定します。ここでのユーザーには、root などの重要なユーザーが含まれます。

user_list: 指定されたユーザーが FTP サーバーにアクセスできるかどうかは、vsftpd.conf ファイルの userlist_deny 設定によって決まります。userlist_enable=YES、userlist_deny=YES、userlist_file=/etc/vsftpd/user_list。これらの 3 つの設定により、ファイル内のユーザーは FTP にアクセスできます。

メイン設定ファイルのデフォルト設定を表示する

cat /etc/vsftpd/vsftpd.conf |grep -v '^#';

anonymous_enable=YES #匿名ユーザーを許可する

local_enable=YES #ローカルユーザーアカウントを使用したログインを許可する

write_enable=YES #FTP ユーザーがデータを書き込めるようにする

connect_from_port_20=YES #ポート20経由でデータを送信

匿名を有効にする=はい
ローカル有効=はい
書き込み有効=はい
ローカル_umask=022
dirmessage_enable=はい
xferlog_enable=はい
ポート20からの接続=はい
xferlog_std_format=はい
聞く=はい

pam_service_name=vsftpd
tcp_wrappers=はい
chroot_local_user=はい

その他のパラメータの説明は次のとおりです。

ftpd_banner=FTPサービスへようこそ: サーバーに接続した後のウェルカムメッセージを設定します

idol_session_timeout=60: リモートクライアント接続を制限した後、確立された制御接続は、一定時間操作が行われないと切断されます (秒単位)

data_connection_timeout=120: クライアントがデータを送信しているときのアイドルデータ中断時間を設定します

accept_timeout=60は、接続が自動的に確立されるまでの時間を設定します。

connect_timeout=60 は、データ接続の最大アクティブ化時間、つまり切断されて他のユーザーが使用するまでにかかる時間を設定します。

max_clients=200 は、サーバーへの同時クライアント接続の総数が 200 であることを示します。

max_per_ip=3は、クライアントあたりの最大接続数が3であることを示します。

local_max_rate=50000 (50kbytes/sec) ローカルユーザーの最大転送速度制限

anon_max_rate=30000 匿名ユーザーの最大送信速度制限

pasv_min_port=ポート

pasv-max-prot=ポート番号は最大ポートと最小ポートを定義し、0 は任意のポートを意味します。これはクライアント接続のポートを指定します。

listen_address=IP アドレスは、FTP サービスがリッスンするアドレスを設定します。このアドレスは、クライアントが接続に使用できます。

listen_port=ポート番号はFTP作業用のポート番号を設定します。デフォルトは21です。

local_root=path は、ログインできるすべてのユーザーのログイン アカウントのホーム ディレクトリを定義します。指定しない場合は、各ユーザーは個人のホーム ディレクトリに入ります。

chroot_local_user=yes/no ローカル システム アカウント ユーザーのホーム ディレクトリをロックするかどうか (すべて)。ロック後、ユーザーはユーザーのホーム ディレクトリ /home/user にのみアクセスできます。

chroot_list_enable=yes/no ホームディレクトリ内のユーザーリストをロックしないようにする

chroot_list_file=/etc/vsftpd/chroot_list はリストファイルを指定します

userlist_enable=YES/NO ユーザーリストファイルを読み込むかどうか。

userlist_deny=YES は、上記でロードされたユーザーがログインできることを意味します。

userlist_file=/etc/vsftpd/user_list リストファイルを指定します

FTP接続ユーザーを作成する

ユーザーftpuserを作成する
ユーザー追加 ftpusr

ユーザーにFTPアクセスのみを許可し、ログインは許可しないように設定する
usermod -s /sbin/nologin ftpuser

ユーザーパスワードの設定
パスワード ftpusr

ユーザーのデフォルトのホーム ディレクトリは /home の下にあり、現在のユーザーはホーム ディレクトリにのみアクセスできます。

ユーザーのホームディレクトリを/mntに変更する

usermod -d /mnt ftpuser

FTPサービスを開始する

service vsftpd start

テスト

/mntディレクトリにテストファイルを作成する

touch /mnt/test

FTPに接続

よくあるFTPログイン失敗の問題を解決する

Linux にはデフォルトでセキュリティ機構が備わっています。通常の FTP ポート 21 を使用して FTP サーバーに接続することはできませんが、sftp を使用することはできます。この時点で、selinux をオフにし、構成ファイルを変更してサーバーを再起動する必要があります。

vim /etc/sysconfig/selinux

selinux=disabledに変更

サーバーを再起動しない方法:

強制0を設定する

setenforce 1 : SELinux を強制モードに設定する
setenforce 0 : SELinux を permissive モードに設定する

SELinux ステータスを確認する

/usr/sbin/sestatus -v

要約する

現時点ではここに記載されていない他の設定方法がいくつかあります。ご興味があれば、詳しく調べてみてください。

以下もご興味があるかもしれません:
  • Linux オペレーティング システムで ssh/sftp を構成して権限を設定する方法
  • LINUX Centos7 ビルド vsftpd サービス
  • Linux で vsftpd をインストールして設定するための詳細な手順 (推奨)
  • Linux での VSFTP サービスのセットアップ プロセス
  • Linux sftp コマンドの使用法の概要

<<:  mysql5.7.20 のインストールと設定方法のグラフィック チュートリアル (mac)

>>:  JavaScript デザインパターン コマンドパターン

推薦する

Linux echo テキスト処理コマンドの使用法と例

Linux ヘルプ ドキュメントでの echo の説明は、Python や Java などのプログラ...

WindowsシステムでPhPStudy MySQLの起動に失敗する問題を解決する

エラーを報告するApache\Nginx サービスは正常に起動しましたが、MySQL は起動に失敗し...

WeChat 8.0の爆発的な特殊効果を実現するために300行以上のCSSコードが必要

WeChat 8.0 アップデートの主な特徴は、アニメーション絵文字のサポートです。送信するメッセー...

nginx のロケーションと書き換えの使用法の詳細な説明

1. 位置情報の利用状況の概要ロケーションは、さまざまな処理方法に対してさまざまな種類のリクエストを...

MySQL データ定義言語 DDL の基本ステートメント

MySQL DDL ステートメントDDL、DMLとは何ですか。 DDL はデータ定義言語であり、CR...

Unicode の一般的な文字の概要

初期のコンピューターのほとんどは ASCII 文字しか使用できませんでしたが、その後、主要な西洋のア...

Docker-compose を使用して ELK をデプロイするためのサンプル コード

環境ホストIP 192.168.0.9 Docker バージョン 19.03.2 docker-co...

MySQLデータベースイベントスケジュール実行タスクの詳細な説明

1. 背景プロジェクトの業務が進むにつれて、データベース テーブルの数がどんどん大きくなり、ハードデ...

ApplicationHost.config (IIS ストレージ構成領域ファイル) の概要

新しく作成された Web サイトの場合は、ASP.NET MVC5 を例に挙げます。セッションを処理...

zabbix 4.04 の詳細なインストール チュートリアル (CentOS 7.6 ベース)

1. インストール前の準備: 1.1 JDKをインストールするopenjdkをアンインストールする...

Nginxドメイン名転送の実装

Nginx の紹介Nginx (「エンジン x」) は、ロシアのプログラマー Igor Sysoev...

Vue でスロットを使用する方法についての簡単な説明

定義と使用方法:コンポーネントのテンプレートでスロットタグの定義を使用します。デフォルトの表示値は、...

Vue+video.jsはビデオプレイリストを実装します

この記事では、ビデオプレイリストを実装するためのvue + video.jsの具体的なコードを参考ま...

Nginx try_files ディレクティブの使用例

Nginx の設定構文は柔軟で、高度に制御可能です。バージョン 0.7 以降では、try_files...

JavaScript における一般的な配列操作

目次1. 連結() 2. 結合() 3. プッシュ() 5. シフト() 6. シフト解除() 7....