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 デザインパターン コマンドパターン

推薦する

WeChat パブリック アカウントの録音ファイルを再生して保存します (amr ファイルを mp3 に変換)

目次オーディオトランスコーディングツール原理JAVE プロジェクトの問題このプロジェクトの特徴拡張機...

CentOS 6.9 で glibc ダイナミック ライブラリをアップグレードする詳細なプロセス

glibc は、gnu によってリリースされた libc ライブラリ、つまり c ランタイム ライブ...

過去2年間のユーザーエクスペリエンス

<br />国内のウェブサイトが本格的に普及し、ユーザーエクスペリエンスに重点が置かれる...

IIS7~IIS8.5 サーバープロトコルヘッダーの削除または変更

要件: IIS 7、7.5、8.0、8.5、および ASP.NET で HTTP 応答ヘッダーを削除...

htmlダウンロード機能の詳しい説明

新しいプロジェクトは基本的に終了しました。フロントエンドとバックエンドを分離して統合を完了したのは初...

Nginx で Brotli 圧縮アルゴリズムを有効にする方法の例

Brotli は、Zopfli よりも 20 ~ 26% 高い圧縮率を実現できる新しいデータ形式です...

Javascript デザインパターン プロトタイプ モードの詳細

目次1. プロトタイプモード例1例2例3 2. オブザーバーパターン1. プロトタイプモードプロトタ...

HTML マルチメディア アプリケーション: Web ページにフラッシュ アニメーションと音楽を挿入する

1. HTML_falshアニメーションでのマルチメディアの応用(WebページへのFlashアニメー...

Reactイベントメカニズムソースコード分析

目次原理ソースコード分析委任されたイベントバインディングすべてのサポートされているイベントを聴くネイ...

MySQL接続クエリの原理と応用

概要MySQL の最も強力な機能の 1 つは、データ取得を実行しながらテーブルを結合できることです。...

HTML で中国語を UTF-8 に変換する方法

HTMLでは、中国語のフレーズ「學好好學」は「學好好學」と表現できます。プロジェクトでは、SMSアラ...

JavaScript は大容量ファイルのアップロード処理を実装します

数十 MB 程度の小さいものから 1G 以上の大きいものまで、ビデオ ファイルなどのファイルのアップ...

JSで実現したページサイドバーの効果に関する研究

目次発見: ディスプレイアニメーションの応用実装:記事の1行目を表示する効果を実現する方法実際、その...

Spark SQL の 4 つの一般的なデータ ソースの詳細な説明

汎用ロード/書き込みメソッドオプションを手動で指定するSpark SQL の DataFrame イ...

MySQL内部一時テーブルの具体的な使用法

目次連合テーブルの初期化ステートメントの実行連合の結果ユニオンオールグループ化十分なメモリステートメ...