CentOS7でFTPサーバーを設定する方法

CentOS7でFTPサーバーを設定する方法

FTP は主にファイル転送に使用され、Linux では vsftpd で実装されるのが一般的です。FTP サーバーをセットアップすることでファイル共有が実現できます。これは、少なくとも、質の悪い Baidu ネットワーク ディスクよりははるかに優れています。

FTP サーバーを設定するためのオプションの認証方法には、匿名認証、ローカル ユーザー認証、仮想ユーザー認証の 3 つがあります。セキュリティ: 匿名認証 < ローカル ユーザー認証 < 仮想ユーザー認証。構成の複雑さ: 匿名認証 < ローカル < 仮想ユーザー認証。

Linux では、すべてのファイルには対応する所有者がいます。仮想ユーザー認証とは、1 人以上の FTP ユーザーを作成し、それらをローカル Linux ユーザー (vftpuser など) にマッピングすることを意味します。このように、マッピングされたユーザーは、FTP ディレクトリを操作するときにユーザー vftpuser と同等になります。さらに、仮想ユーザー認証モードでは複数の FTP を個別に構成できるため、非常に柔軟で便利です。柔軟性とセキュリティを考慮して、この記事では仮想ユーザー認証モードを使用することを選択します。

はい、始める準備ができました!

1. 基本環境

サーバー: CentOS7.5

クライアント: Ubuntu Mate 18.10

FTP サーバー: vsftpd

FTP クライアント: FileZilla (オプション)

2. 基本的なプロセス

より簡潔にするために、基本的なセットアップ プロセスと関連コマンドのみがリストされています。

1. vsftpdをインストールする

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

2. 仮想ユーザーを作成する

任意のエディターを使用して、次の内容で /etc/vsftpd/vuser.list ファイルを作成し、編集します。

リレイ
lileipasswd
ハンメイメイ
パスワード

パスワード認証ファイルの奇数行にはユーザー名が含まれ、偶数行には対応するパスワードが含まれます。

3. パスワード認証データベースを作成する

db_load -T -t ハッシュ -f /etc/vsftpd/vuser.list /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db

-T: 変形
-t: ハッシュアルゴリズムを指定する
-f: ユーザー名を指定

4. PAM認証ファイルを編集する

次の内容で/etc/pam.d/vsftpd.vuを作成して編集します。

認証が必要です pam_userdb.so db=/etc/vsftpd/vuser
必要なアカウント pam_userdb.so db=/etc/vsftpd/vuser

dbは、サフィックスなしでパスワード認証データベースを指定します。

5. ローカルユーザーを作成する

useradd -d /home/vftpuser -s /sbin/nologin vftpuser
chmod 755 /home/vftpuser

-d: ユーザーのホームディレクトリを指定する
-s: ユーザーのログインシェルを指定します。/sbin/nologin は、セキュリティを向上させるためにユーザーがシェル経由でログインすることを禁止します。

6. FTPユーザーをvftpuserにマップする

/etc/vsftpd/vsftpd.confを編集し、次の行を変更します。

pam_service_name=vsftpd.vu # pam認証ファイルを指定します guest_enable=YES # マッピングを有効にします guest_username=vftpuser # マッピングするローカルユーザーを指定します user_config_dir=/etc/vsftpd/vusers_dir # FTPユーザー設定ファイルの場所を指定します。各ユーザーを個別に設定する必要がない場合は、この行をコメントアウトできます

7. 各ユーザーを個別に設定する

/etc/vsftpd/vuser_dirを作成し、各FTPユーザーに対して同じ名前の設定ファイルを作成します。ここでは、 lilei例として使用します。次の内容で/etc/vsftpd/vuser_dir/lileiを作成して編集します。

匿名アップロードを有効にする=はい
anon_mkdir_write_enable=はい
匿名書き込み有効=はい
ローカルルート=/var/www/html

デフォルトのルート ディレクトリは、マップされたユーザーのホーム ディレクトリです。local_root を通じてユーザーのルート ディレクトリを指定できます。このディレクトリの所有者を vftpuser に変更する必要があることに注意してください。

8. vsftpdを再起動する

systemctl は vsftpd を起動します

3. 注意事項

  • サーバーの再起動後にアクセスできなくなるのを防ぐために、vsftpd を起動リストに追加します。
  • FTP サーバーにアクセスできない場合は、ファイアウォールと SElinux の設定を確認してください。
  • パスワード認証データベースを生成した後、パスワード漏洩を防ぐためにリスト ファイルを適時に削除します。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Centos7 FTPサーバーを構築する

<<:  WeChatアプレットを少なく使う方法(最適な方法)

>>:  WeChatアプレットでQRコードを識別するために長押しする実装プロセス

推薦する

Net Core実装プロセス分析のDoc​​kerインストールと展開

1. Dockerのインストールと設定 #CentOS をインストールし、Docker パッケージを...

LinuxシステムでFuserコマンドを使用する方法

Fuser コマンドとは何ですか? fuser コマンドは、特定のファイル、ディレクトリ、またはソケ...

Vue ページ内の公開マルチタイプ添付画像アップロード領域と適用可能な折りたたみパネル (サンプルコード)

フロントエンド プロジェクトでは、添付ファイルのアップロードは非常に一般的な機能であり、ほぼすべての...

Windows 8 での ssh コマンドの使用記録

1. 仮想マシンとgit bashウィンドウを開き、接続の準備をします2. 仮想マシンでifconf...

フロントエンドJavaScriptの動作原理

目次1. JavaScript エンジンとは何ですか? 2. V8エンジン3. ランタイム環境4. ...

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成フ...

CSS で波の効果を作成するためのアイデア

以前、純粋な CSS を使用して波の効果を実現する方法をいくつか紹介しました。それらについては、次の...

Windowsタイムサーバーの設定方法の詳しい説明

最近、会社のサーバーの時間が不正確で、外部の時間ソースと同期できないことがわかりました。会社はドメイ...

操作例 MySQL ショートリンク

MySQL ショートリンクの設定方法1. mysql 接続番号ステートメントコマンドを確認します。 ...

Vue 仮想 Dom から実際の Dom への変換

別のツリー構造があるJavascriptオブジェクトでは、このツリーが本物であると伝えるだけでよいD...

XHTML の一般的な構造タグ

構造本文、見出し、HTML、タイトル文章abbr、頭字語、アドレス、引用ブロック、br、引用、コード...

Linux ディスク クォータ管理のグラフィカルな例

ディスク クォータは、コンピューター内の指定されたディスクのストレージ制限です。つまり、管理者はユー...

MySQL 外部キー設定方法の例

1. 外部キーの設定方法1. MySQL では、2 つのテーブルを関連付けるために、外部キー (FO...

Centos7 esxi6.7 テンプレートの実際のアプリケーションの詳細な説明

1. Centos7.6システムを作成し、システムを最適化する1. NetworkManagerをオ...

MySQL のインストール方法と設定に関するいくつかの問題の概要

1. MySQL rpm パッケージのインストール # インストールソースをダウンロードします [r...