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

推薦する

CSS画像結合技術(スプライト画像)の詳しい説明

CSS画像結合技術1. 画像のステッチ画像ステッチング技術は、個々の画像を収集する技術です。画像の多...

deepin 2014 システムに MySQL データベースをインストールする方法

Deepin 2014 のダウンロードとインストールDeepin 2014 のダウンロードとインスト...

JavaScript で支払いの 10 秒カウントダウンを実現

この記事では、支払いの10秒カウントダウンを実現するためのJavaScriptの具体的なコードを参考...

iptables および firewalld ツールを使用して Linux ファイアウォール接続ルールを管理する

ファイアウォールファイアウォールは一連のルールです。パケットが保護されたネットワーク空間に出入りする...

JQuery データグリッドクエリの詳細な説明

目次ツリー項目にコードを追加します。 1. 右側に関連情報ページを保存します(userManage....

CentOS MySQLデータベースのスケジュールバックアップを実装する方法

次のスクリプトは、MySQLデータベース全体のスケジュールされたバックアップに使用されます。 mys...

Linux ipcsコマンドの使用

1. コマンドの紹介ipcs コマンドは、Linux のプロセス間通信機能の状態を報告するために使用...

MySQLのExcelへのエクスポート方法の分析

この記事では、MySQL を使用してデータを Excel にエクスポートする方法について説明します。...

Echarts は 1 つのグラフ内で異なる X 軸を切り替える機能を実装します (サンプル コード)

レンダリング下の画像のような効果を実現したい場合は、読み続けてアニメーション画像に直接進んでください...

MySQLデータベースのタイムアウト設定を構成する方法の例

目次序文1. JDBCタイムアウト設定2. 接続プールのタイムアウト設定3. MyBatisクエリの...

ウェブデザインでテキストのサイズを合わせる方法: 小さなテキスト、大きな体験

iPadなどのモバイル端末の普及により、人々がモバイル端末で読書に費やす時間はますます長くなり、読...

12個のJavascriptテーブルコントロール(DataGrid)が整理されています

DataGrid コントロールの DataSource プロパティがデザイン時に設定されている場合、...

Oracle の開閉の 4 つのモード

>1 データベースを起動するcmd コマンド ウィンドウで、「sqlplus」を直接入力して ...

JavaScript でカウントダウン効果を実装する

カウントダウン効果を実現するにはJavascriptを使用します。参考までに、具体的な内容は次のとお...

js で虫眼鏡効果を実現するためのアイデアとコード

この記事の例では、虫眼鏡効果を実現するためのjsの具体的なコードを参考までに共有しています。具体的な...