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コードを識別するために長押しする実装プロセス

推薦する

UbuntuでGRUBの起動時間を変更する

grubの起動時間を変更するためのオンライン検索は基本的に/etc/default/grubを変更す...

HTML サブタグと sup タグ

今日はあまり使わないHTMLタグ「subタグ」と「supタグ」を紹介します。定義と使用法: <...

MySQL curdate() 関数の詳細な例

MySQL CURDATE関数の紹介文字列コンテキストまたは数値コンテキストの YYYMMDD 形式...

初心者がHTMLタグを学ぶ(2)

初心者は、いくつかの HTML タグを理解することで HTML を学習できます。この入門書は、初心者...

MySQLのREDOログ(リドゥログ)とロールバックログ(アンドゥログ)の詳しい説明

序文:前回の記事では、MySQL システムでよく使用されるログをいくつか説明しました。実は、トランザ...

Vueのシンプルな状態管理ストアモードを理解する方法

目次概要1. store.jsを定義する2. store.js を使用するコンポーネント3. 成果を...

MySQLのクラスタモードでのgalera-clusterのデプロイメントの詳細説明

目次1: galera-clusterの紹介2. galera-clusterの仕組み3: Mari...

Node.js のモジュール性、npm パッケージ マネージャーの説明

目次モジュール化の基本概念モジュール化とは何かモジュール分解の利点Node.js のモジュール性No...

InnoDB テーブルの BLOB 列と TEXT 列のストレージ効率を最適化します。

まず、MySQL InnoDB エンジンのストレージ形式に関する重要なポイントをいくつか紹介します。...

Linux システムで jmeter を実行し、ローカル メモリを最適化する方法の詳細な説明

1. Linuxシステムにクロスシステムファイル転送ツールをインストールするルートユーザーのルートデ...

MacにHomebrewをインストールする際の注意点

最近、Xiao Ming は新しい Mac を購入し、独自のブログ Web サイトを構築したいと考え...

10 HTML テーブル関連タグ

実際、多くの人が「テーブルは絶対に使用すべきではないと聞いたことがある」と言いますが、これは絶対に間...

ソースコードから、Vue2がデータとメソッドを直接取得できる理由がわかる

目次1. 例: これはデータとメソッドを直接取得できます2. 環境を準備し、ソースコードをデバッグし...

Centos8 は kdc 暗号化に基づいて nfs を構築します

目次構成nfs サーバー (nfs.skills.com) nfs クライアント (client.s...

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

MySQL インストール ファイルには、msi 形式と zip 形式の 2 種類があります。クリック...