LinuxでのVsftpdサービスの展開と最適化

実験環境
サーバーホスト:
ホスト名:westos_node3
ipアドレス:172.25.254.20
selinuxオフ:(設定を完了するには再起動が必要)
vim / etc / sysconfig / selinux
ここに写真の説明を挿入
fire wall
opendnfインストール設定が完了しました

クライアントホスト:
ホスト名:westos_zxn
ipアドレス:172.25.254.10
selinux closesdnf
インストール設定が完了しました
lftpftpプロトコルテキストブラウザーをインストールます

ftp紹介

ftp:file transfer proto(ファイル転送チャネル)
インターネットで最も古いファイル転送プロトコル

vsftpdのインストールとアクティベーション

node3の場合:
dnf install vsftpd -y
ここに写真の説明を挿入

systemctl enable --now Firewalld
systemctl enable --now vsftpd
ここに写真の説明を挿入

Firewalld -cmd --permanent --add-service = ftp
Firewalld -cmd --permanent --add-source = 172.25.254.10 --zone = trusted
systemctlrestartfirewalldまたはfirewalld-cmd--reload
ここに写真の説明を挿入

vim /etc/vsftpd/vsftpd.conf 12annonymous_enable
= YES匿名ユーザーアクセスを有効にする
ここに写真の説明を挿入

systemctl restart vsftpd

テストインストールリリース:

ftp://172.25.254.20 in firefox
ここに写真の説明を挿入

lftp 172.25.254.20このアクセス方法は、成功したと見なされるリソースを一覧表示できる必要があります。
使用後、exitと入力してlftpを終了してください
ここに写真の説明を挿入

vsftpdの基本情報
サービス名:
vsftpd.service
構成ディレクトリ:
/ etc / vsftpd
メイン構成ファイル:
/etc/vsftpd/vsftpd.conf
デフォルトの公開ディレクトリ:
/ var / ftp

エラーメッセージ:
550プログラム自体が拒否します(つまり、サービス自体がそれを許可せず、構成ファイルで変更する必要があります)

553ファイルシステムのアクセス許可の制限

500の許可が大きすぎます

530認証に失敗しました(パスワードエラー、匿名ユーザーログインがオンになっていません)
ここに写真の説明を挿入

匿名ユーザーアクセス制御

lftp 192.168.0.10 ftpサービスにアクセスする場合、匿名アクセスとしてユーザー認証は追加されません

lftp 192.168.0.10 -uwestosローカルユーザーアクセス

ログイン制御
/etc/vsftpd/vsftpd.conf12
Anonymous_enable = YES | NO
ここに写真の説明を挿入

systemctl restart vsftpd

ホームディレクトリ制御

anon_root = / westosdir
ここに写真の説明を挿入

systemctl restart vsftpd
は、ホストのnode3に接続し、ホームディレクトリが変更されたことを検出します
ここに写真の説明を挿入

アップロードコントロール
30anon_upload_enable = YES | NO
ここに写真の説明を挿入

systemctl restart vsftpd
chmod 775 / var / ftp / pub(777がここで使用されている場合、権限が大きすぎると「500エラー」が表示されます)
chgrp ftp / var / ftp / pub /
ここに写真の説明を挿入

lftp 172.25.254.20
cd pub
put / etc / passwd
ここに写真の説明を挿入

ディレクトリ作成制御

34 anon_mkdir_write_enable = YES | NO

ここに写真の説明を挿入
この時点でディレクトリを作成できます
ここに写真の説明を挿入

匿名ユーザーは、読み取れないファイルをダウンロードしたり、コマンド制御を削除したりできます
anon_other_write_enable = YES | NO
ここに写真の説明を挿入

ダウンロードコントロール

anon_world_written_only = NO
ここに写真の説明を挿入

匿名ユーザーのアップロードファイルのアクセス許可設定

anon_umask = 022 chown_usernameが設定されている場合、アップロード権限はこのパラメーターでは設定されません。chown_upload_modeが必要です。
ここに写真の説明を挿入
ここに写真の説明を挿入

ファイルをアップロードする匿名ユーザーのユーザーIDは、デフォルトでftpに設定されています

ここに写真の説明を挿入

chown_upload = YES
chown_username = redhatサーバー上の匿名ユーザーによって生成されたすべてのファイルはredhatとして生成されます
。chown_upload_mode=0644。chown_usernameを設定した後、このパラメーターを使用してアップロード権限を設定する必要があります。
この時点で、新しくアップロードされたファイルの権限と所有者が変更されています
ここに写真の説明を挿入

ログイン数の制御:

max_clients = 2
ここに写真の説明を挿入

この時点で3人以上のユーザーがログインしている場合、次の状況が発生します。
ここに写真の説明を挿入

アップロードレート制御

anon_max_rate = 102400
ここに写真の説明を挿入

ホストの
場合dd if = / dev / zero of = file bs = 1M count = 100
この時点で、ダウンロードファイルの速度が制限されていることがわかります。
ここに写真の説明を挿入

ローカルユーザアクセス
、ログイン制御
useraddのredhatの
useraddのXSB
useraddのパパ
エコーのLinux | passwdの--stdin redhatの
エコーのLinux | passwdの--stdinパパ
エコーのLinux | passwdの--stdin XSB
SU-redhatの/パパ/ XSB
タッチxxfile
ここに写真の説明を挿入

lftp 172.25.254.20 -uxxxはこの時点で正常にログインできます
ここに写真の説明を挿入

local_enable = NOノード3の構成ファイルを変更します
ここに写真の説明を挿入

現時点では、ローカルユーザーは正常にログインできません。
ここに写真の説明を挿入

ホームディレクトリ制御

local_root = / westosdirホームディレクトリをwestosdirに変更します
ここに写真の説明を挿入

この時点でホームディレクトリが変更されました
ここに写真の説明を挿入

書き込み許可制御

write_enable = NO
このとき、ファイルを書き込もうとするとエラーが報告されます
ここに写真の説明を挿入

アップロードファイルのアクセス許可制御

local_umask = 077アップロード権限を077に変更します
ここに写真の説明を挿入

新しくアップロードされたファイルの権限は600であることがわかります(アップロードファイルの権限600 = 777-077(アップロードの権限)-111)
ここに写真の説明を挿入

この操作を実行する前に、ユーザーをホームディレクトリ(参照/ディレクトリではない)にロックします。自由に/ディレクトリを参照できます。

ここに写真の説明を挿入

chroot_local_user = YES現時点では、すべてのユーザーは自分のホームディレクトリに制限されています。いいえの場合、誰でもアクセスできます。
ここに写真の説明を挿入

chmod uw / home / *書き込み権限を削除します。
現時点では/ディレクトリを参照できません。
ここに写真の説明を挿入
ここに写真の説明を挿入

ユーザーをホームディレクトリのホワイトリストにロックする

chroot_local_user = YES
chroot_list_enable = YES
chroot_list_file = / etc / vsftpd / chroot_list
ここに写真の説明を挿入

vim / etc / vsftpd / chroot_list
systemctl restart vsftpd
ここに写真の説明を挿入

現時点では、ホワイトリストのredhatを除いて、誰も/ディレクトリにアクセスできません。
ここに写真の説明を挿入

ユーザーをホームディレクトリのブラックリストにロックする

chroot_local_user = NO
chroot_list_enable = YES
chroot_list_file = / etc / vsftpd / chroot_list
ここに写真の説明を挿入

vim / etc / vsftpd / chroot_list
systemctl restart vsftpd
ここに写真の説明を挿入

現時点では、ロックされたレッドハットを除くすべてにアクセスできます/ディレクトリ
ここに写真の説明を挿入

ユーザーログイン制御

この実験を行う前に、純粋な実験環境を維持するために、次の構成をログアウトする必要があります
ここに写真の説明を挿入

/ etc / vsftpd / ftpusersは
永続的に黒です
ここに写真の説明を挿入

/ etc / vsftpd / user_list
はデフォルトで黒です
ここに写真の説明を挿入

ユーザーログインホワイトリスト

userlist_deny = NOこのサービスを有効にすると、/ etc / vsftpd / user_listがホワイトリストとして設定され、リストにないユーザーはftpにログインできなくなります。
ここに写真の説明を挿入
ここに写真の説明を挿入

仮想ユーザーアクセス

仮想ユーザーを確立するプロセス(これを行う前に、userlist_deny = NOをコメントアウトする必要があります)

vimのは/ etc / vsftpdは/ westos_user認証ファイルを作成し、テンプレート
USER1
123
user2の
123
ここに写真の説明を挿入

db_load -T -t hash -f westos_userwestos_user.db暗号化された認証ファイル-T変換-tタイプ-fは変換ファイルを指定します
ここに写真の説明を挿入

vim
/ etc / pam.d / westos_ftpアカウントが必要pam_userdb.sodb = / etc / vsftpd / westos_userauthが
必要pam_userdb.sodb = / etc / vsftpd / westos_user
ここに写真の説明を挿入

vim
/etc/vsftpd/vsftpd.conf pam_service_name = westos_ftpは認証ポリシーファイルを指定します
guest_enable = YESは有効にする仮想ユーザー関数を
指定しますguest_username = ftpはftpサーバー上の仮想ユーザーのユーザーIDを指定します
ここに写真の説明を挿入

systemctl restart vsftpd
ここに写真の説明を挿入

仮想ユーザーのホームディレクトリの独立した設定
mkdir / virtuserdir
mkdir / virtuserdir / user {1 ... 2}
mkdir / virtuserdir / user {1 ... 2} / pub touch / virtuserdir /
user1 / user1file
touch / virtuserdir / user2 / user2file

vim /etc/vsftpd/vsftpd.conf
local_root = / virtuserdir / USER usersubtoken = USER user_sub_token =U S E R u s e rSu bトンo k e n=ユーザー
ここに写真の説明を挿入

systemctl restart vsftpd

このとき、仮想ユーザーのホームディレクトリへのログインは独立しています。
ここに写真の説明を挿入

ユーザー構成に依存しない

この実験を行う前に、次の構成を行う必要があります
ここに写真の説明を挿入

実験が開始され
ますuser_config_dir = / etc / vsftpd / westos_confこのディレクトリ内のユーザーと同じ名前のファイルは、ユーザー構成ファイルです。
ここに写真の説明を挿入

mkdir / etc / vsftpd / westos_conf
vim / etc / vsftpd / westos_conf / user2
anon_upload_enable = YES
ここに写真の説明を挿入

設定後、user2ユーザーはファイルをアップロードできますが、user1とuser3はアップロードできません

おすすめ

転載: blog.csdn.net/qq_42958401/article/details/108126045