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

推薦する

Vueの自己ネストツリーコンポーネントの使い方の詳細な説明

この記事では、Vueの自己ネストツリーコンポーネントの使い方を参考までに紹介します。具体的な内容は次...

CentOS7.5 の MySQL8.0.19 のインストールチュートリアルの詳細な手順

1. はじめにこの記事には MySQL インストール部分のスクリーンショットがないので、ある程度の基...

GoogleとFacebookがDockerを使わない理由

この記事を書いた理由は、修正した分散 PyTorch プログラムを Facebook のクラスター上...

CSS レスポンシブ レイアウト システムの例コード

レスポンシブ レイアウト システムは、今日の一般的な CSS フレームワークではすでに非常に一般的で...

Ant Design Pro ログイン機能にグラフィック検証コード コンポーネントを統合する方法

序文:この記事では、Ant Design Proログイン機能にグラフィック検証コードコンポーネントを...

Dockerfileを使用して独自のイメージを作成する方法

1. 空のディレクトリを作成する $ cd /home/xm6f/dev $ mkdir myapp...

Mybatis ファジークエリ実装方法

Mybatis ファジークエリ実装方法mybatis のリバース アシスタントは非常に使いやすく、通...

Linux のバックグラウンドで & と nohup を使用する方法

ターミナルやコンソールで作業しているときは、メールを読むなど、もっと重要な作業があるかもしれないので...

HTMLでマスクレイヤーを実装する方法 HTMLでマスクレイヤーを使用する方法

Web ページでマスク レイヤーを使用すると、繰り返しの操作を防ぎ、読み込みを促進できます。また、ポ...

Linuxカーネルで中国語の文字を出力する方法

次のように、Windows/MacOS からログインした Linux の SSH ターミナルで簡単に...

MySQLデータベーステーブルの定期バックアップの実装の詳細な説明

Mysqlデータベーステーブルの定期的なバックアップの実装0. 背景実際の開発環境では、フロントエン...

MySQL フェイルオーバー ノート: アプリケーション対応設計の詳細な説明

1. はじめに周知のように、データベース ミドルウェアの読み取り/書き込み分離のアプリケーション シ...

MySQL での正規表現の使用に関する詳細

目次1. はじめに2. 製品テーブルを準備する2.1 ステートメントの順序2.2 大文字と小文字の区...

MySQL 8.0.12 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0.12のインストールと設定方法を記録してみんなで共有します。 1. インストール1...