Linux_159_虛擬用戶認(rèn)證方式

ftp的虛擬用戶模式
顧名思義虛擬用戶認(rèn)證方式,就是虛擬創(chuàng)建出來的用戶,對于服務(wù)器而言也是最安全的方式
1、安裝DB工具,能夠轉(zhuǎn)化普通文件為vsftpd識別的數(shù)據(jù)庫加密文件
yum install db4 db4-utils -y
2、創(chuàng)建用于驗證vsftpd的數(shù)據(jù)文件
vim ftp_user.txt
文件第一行是賬號,第二行是密碼,以此類推
3、由于這樣的普通文件很不安全,vsftpd也無法識別該txt的文件數(shù)據(jù),因此還得使用 db_load 命令,對于這個ftp_user.txt文件進(jìn)行加密,并且修改它的文件屬性,讓普通用戶無權(quán)查看
3.1 加密文件
db_load -T -t hash -f /etc/vsftpd/ftp_user.txt /etc/vsftpd/ftp_user.db
hash:指定hash加密的類型
-f:指定源文件
查看文件類型:file ftp_user.db

[root@yuweijie vsftpd]# file ftp_user.db 
ftp_user.db: Berkeley DB (Hash, version 9, native byte-order)

3.2 降低文件的讀寫權(quán)限
chmod 600 ftp_user.db # 這樣這個文件只有root用戶才能進(jìn)行讀寫

3.3 刪除舊的數(shù)據(jù)文本,保證安全性
rm -rf ftp_user.txt

4 創(chuàng)建當(dāng)虛擬用戶登錄ftp之后進(jìn)入的文件夾路徑,且和linux中的一個用戶做一個映射的關(guān)系,防止虛擬用戶登錄之后創(chuàng)建了文件夾,但是系統(tǒng)沒有此用戶會報錯的一個問題
4.1 創(chuàng)建一個系統(tǒng)用戶和虛擬用戶做映射,且不需要家目錄,禁止用戶登錄shell

useradd -d /var/ftpdir -s /sbin/nologin virtual_yu

[root@yuweijie vsftpd]# id virtual_yu
uid=1004(virtual_yu) gid=1004(virtual_yu) groups=1004(virtual_yu)

[root@yuweijie vsftpd]# grep 'virtual_yu' /etc/passwd
virtual_yu:x:1004:1004::/var/ftpdir:/sbin/nologin

4.2 檢查該用戶的家目錄

[root@yuweijie vsftpd]# ll -ld /var/ftpdir
drwx------ 2 virtual_yu virtual_yu 62 Feb 15 05:12 /var/ftpdir

4.3 更改文件夾權(quán)限

chmod -Rf 755 /var/ftpdir/

4.4 修改virtual_chao用戶添加到ftpuser文件中,增大系統(tǒng)安全,禁止該用戶登錄ftp,但是該操作不會影響虛擬用戶的操作

echo "virtual_yu" >> /etc/vsftpd/ftpusers

5 需要修改vsftpd的配置文件,添加一個支持虛擬用戶驗證的PAM文件,PAM是一組安全機(jī)制的模塊,認(rèn)證文件路徑在/etc/pad.d/vsftpd。在該文件當(dāng)中添加
修改添加如下參數(shù),必須注釋掉之前所有的內(nèi)容,僅僅添加有關(guān)自定義的vsftpd的配置

auth required pam_userdb.so db=/etc/vsftpd/ftp_user
account required pam_userdb.so db=/etc/vsftpd/ftp_user

[root@yuweijie vsftpd]# cat /etc/pam.d/vsftpd 
#%PAM-1.0
session    optional     pam_keyinit.so    force revoke
auth       required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth       required pam_shells.so
auth       include  password-auth
account    include  password-auth
session    required     pam_loginuid.so
session    include  password-auth
# 以上全部注釋掉
auth required pam_userdb.so db=/etc/vsftpd/ftp_user
account required pam_userdb.so db=/etc/vsftpd/ftp_user

6 最后來修改vsftpd的配置文件,加載支持虛擬用戶模式。注銷寫在筆記里面,不要寫在配置文件中

修改如下操作
pam_service_name=vsftpd
guest_enable=YES
guest_username=virtual_yu   # 指定虛擬用戶賬戶
allow_writeable_chroot=YES  # 如果用戶被限制只能在其家目錄,允許用戶可以對家目錄寫入數(shù)據(jù)

7 針對不同的虛擬用戶設(shè)置不同的權(quán)限
賬戶ywj,密碼888,針對該用戶,允許它能夠上傳、新建、修改、查看、刪除等權(quán)限
賬戶lxq,密碼666,只讀權(quán)限

8 如上的操作,需要修改vsftpd文件,定義user_config_dir參數(shù)即可
8.1 創(chuàng)建一個管理虛擬用戶的家目錄,并且創(chuàng)建虛擬用戶的配置文件

mkdir /etc/vsftpd/virtual_user_dir
cd /etc/vsftpd/virtual_user_dir/
vim ywj
寫入
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

vim lxq
寫入
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

9 修改vsftpd主配置文件,加載如上的權(quán)限控制
修改/etc/vsftpd/vsftpd.conf 添加一行如下參數(shù),自定義的vsftpd的用戶配置文件

vim /etc/vsftpd/vsftpd.conf
加入
user_config_dir=/etc/vsftpd/virtual_user_dir  # 自定義文件夾,里面有用戶自定義文件

10 重啟服務(wù),加載新的配置
systemctl restart vsftpd

11 此時使用客戶端連接ftp,用虛擬用戶進(jìn)行驗證

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容