FTP-Vsftpd的高階應用:虛擬使用者

tankII發表於2021-09-09


簡介

虛擬使用者都是匿名使用者,故虛擬使用者的許可權由匿名使用者相關指令指定

所有的虛擬使用者都會對映給一個系統使用者,如vusers,訪問時的檔案目錄是此係統使用者的家目錄

虛擬使用者的存放方式:

hash編碼的檔案(奇數行為使用者名稱,偶數行為密碼)

關係型資料庫(透過第三方模組pam-mysql實現認證)

例項分析

wKioL1M0tAmCBEyKAACmcPFciDs352.jpg

配置

安裝所需的程式

# 安裝mysql和pam_mysql(由epel源提供)

yum -y install vsftpd mysql-server mysql-devel pam_mysql

建立虛擬使用者帳號

# 1. 準備資料庫及相關表

# 首先請確保mysql服務已經正常啟動。而後,按需要建立儲存虛擬使用者的資料庫即可,這裡將其建立為vsftpd資料庫。

mysql> create database vsftpd;

mysql> grant select on vsftpd.* to ftpuser@localhost identified by 'jason11';

mysql> grant select on vsftpd.* to ftpuser@127.0.0.1 identified by 'jason11';

mysql> grant select on vsftpd.* to ftpuser@‘192.168.%.%’ identified by 'jason11';

mysql> flush privileges;

mysql> use vsftpd;

mysql> create table users (

    -> id int AUTO_INCREMENT NOT NULL,

    -> name char(20) binary NOT NULL,

    -> password char(48) binary NOT NULL,

    -> primary key(id)

    -> );

# 2. 新增測試的虛擬使用者

mysql> insert into users(name,password) values('tom','magedu');

mysql> insert into users(name,password) values('jerry','magedu');

配置vsftpd

# 1.建立pam認證所需檔案

vi /etc/pam.d/vsftpd.mysql

# 新增如下兩行

auth required /lib/security/pam_mysql.so user= ftpuser passwd=jason11 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0

account required /lib/security/pam_mysql.so user= ftpuser passwd=jason11 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0

# 2.修改vsftpd的配置檔案,使其適應mysql認證

# 建立虛擬使用者對映的系統使用者及對應的目錄

useradd -s /sbin/nologin -d /var/ftproot vuser # 設定vuser的家目錄為/var/ftproot

chmod go+rx /var/ftproot

# 請確保/etc/vsftpd.conf中已經啟用了以下選項

anonymous_enable=YES

local_enable=YES

write_enable=YES

anon_upload_enable=NO

anon_mkdir_write_enable=NO

chroot_local_user=YES

# 而後新增以下選項

guest_enable=YES

guest_username=vuser

# 並確保pam_service_name選項的值如下所示

pam_service_name=vsftpd.mysql

啟動vsftpd服務

# 啟動服務

service vsftpd start

chkconfig vsftpd on

# 檢視埠開啟情況

ss -tunl |grep 21

高階應用

配置不同的虛擬使用者具有不同的訪問許可權

# 1. 配置vsftpd為虛擬使用者使用配置檔案目錄

vim /etc/vsftpd/vsftpd.conf

# 新增如下選項

user_config_dir=/etc/vsftpd/vusers_config

# 2. 建立所需要目錄,併為虛擬使用者提供配置檔案

mkdir /etc/vsftpd/vusers_config/

cd /etc/vsftpd/vusers_config/

touch tom jerry

# 3. 配置虛擬使用者的訪問許可權

# 讓tom使用者具有上傳檔案、刪除檔案、建立目錄等許可權

vi /etc/vsftpd/vusers/tom

anon_upload_enable=YES

anon_mkdir_write_enable= YES

anon_other_write_enable=YES

# 讓jerry使用者僅具有檢視下載許可權

vi /etc/vsftpd/vusers/jerry

anon_upload_enable=NO

anon_mkdir_write_enable= NO

anon_other_write_enable=NO

使用者登入密碼加密

# 1. 修改pam_mysql的加密方式

vi /etc/pam.d/vsftpd.mysql

auth required /lib/security/pam_mysql.so user= ftpuser passwd=jason11 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required /lib/security/pam_mysql.so user= ftpuser passwd=jason11 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

# 修改crypt的值即可,0代表MySqL中使用者密碼不加密儲存,1代表crypt函式加密,2代表MySQL中的PASSWORD函式加密,3代表MD5加密,4代表SHA1加密

# 2. 需修改存入MySQL中的虛擬使用者的登入密碼為加密形式,如

mysql> insert into users(name,password) values('tom',password('jason11'));

mysql> insert into users(name,password) values('jerry',password('jason11'));

上一篇:FTP-工作原理及Vsftpd基礎配置

©著作權歸作者所有:來自51CTO部落格作者xxrenzhe11的原創作品,如需轉載,請註明出處,否則將追究法律責任

加密FTP虛擬使用者新解Linux


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1795/viewspace-2820674/,如需轉載,請註明出處,否則將追究法律責任。

相關文章