実験環境
サーバーホスト:
ホスト名: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はアップロードできません