溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

19、vftpd基于PAM_MYSQL進行虛擬用戶的認證且每個用戶有自己的獨立目錄及不同的訪問權限

發(fā)布時間:2020-05-29 14:16:47 來源:網(wǎng)絡 閱讀:506 作者:開源殿堂 欄目:MySQL數(shù)據(jù)庫

1、vsftp相關介紹
FTP 是File Transfer Protocol(文件傳輸協(xié)議)的英文簡稱

兩個連接:命令連接、數(shù)據(jù)連接(相對服務器來講)
FTP連接支持兩種模式:主動模式(Port模式)、被動模式(Passive模式)
主動模式:服務器端通過20端口主動連接客戶端,客戶端監(jiān)聽在與服務器端建立命令連接的端口+1上,服務器工作在TCP/20
被動模式:客戶端使用自己與服務器端建立命令連接的端口+1上連接服務器端的隨機端口,該隨機端口在建立命令連接的時候已發(fā)給客戶端

vsftp的用戶有三種類型,分別是匿名用戶、系統(tǒng)用戶、虛擬用戶

/etc/vsftpd/vsftpd.conf主配置文件常用選項
anonymous_enable=NO (是否允許匿名登錄)
local_enable=YES (是否允許本地用戶登錄,設置虛擬賬戶必須設會YES)
write_enable=NO (決定是否允許一些FTP命令去更改文件系統(tǒng)。包括上傳文件,刪除文件,新增目錄,刪除目錄)
anon_upload_enable=NO (是否允許匿名用戶上傳文件,須將write_enable=YES,默認為YES)
anon_mkdir_write_enable=NO (是否允許虛擬用戶創(chuàng)建文件夾)
xferlog_enable=YES (如果啟用此選項,系統(tǒng)將會維護記錄服務器上傳和下載情況的日志文件)
xferlog_file=/var/log/xferlog (設置日志存放位置)
ftpd_banner=Welcome to blah FTP service. (實現(xiàn)用戶的歡迎信息login banners)
chroot_local_user=YES (設置為NO時,用戶登錄FTP 服務器后具有訪問自己目錄以外的其他文件的權限,設置為YES時,用戶被鎖定在自己的宿主目錄中)
pam_service_name=vsftpd.mysql (設置 PAM 外掛模塊提供的認證服務所使用的配置文件名)
guest_enable=YES (如果啟用,所有的非匿名用戶登錄時將被視為游客,其名字將被映射為guest_username里所指定的名字。采用虛擬用戶必須設置該選項)
guest_username=vuser (設置當游客進入后,其將會被映射的名字。這里設置為“vuser”,即虛擬用戶登陸ftp后被映射的本地用戶名)
user_config_dir=/etc/vsftpd/user_config (定義用戶配置文件的目錄,在文件夾中創(chuàng)建虛擬用戶同名的的文件,在文件中定義虛擬用戶的權限)
virtual_use_local_privs=YES (虛擬用戶和本地用戶權限相同。很重要,保證虛擬用戶有和映射的本地用戶相同的權限)

注意:啟用寫入功能時,ftp用戶對相應的本地文件系統(tǒng)也有相應的寫入權限;生效的權限取決于文件系統(tǒng)權限和服務權限的交集

連接數(shù)和速率限制
max_clients:最大并發(fā)連接數(shù)
max_per_ip:每IP可同時發(fā)起并發(fā)請求
anon_max_rete: 匿名用戶的傳輸速率,單位為“字節(jié)/秒”
local_max_rate:本地用戶傳輸速率,單位為“字節(jié)/秒”

2、vftpd基于PAM_MYSQL進行虛擬用戶的認證且每個用戶有自己的獨立目錄及不同的訪問權限(test1用戶只擁有上傳,下載,新建權限,不允許刪除操作,test2用戶擁有上傳,下載,新建,刪除權限)
2.1 安裝mysql和pam_mysql
rpm -ivh https://mirrors.aliyun.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
yum -y install vsftpd mysql-server mysql-devel pam_mysql
service mysqld start
chkconfig mysqld on

2.2 創(chuàng)建虛擬賬號
mysql
mysql> create database vsftpd;
mysql> grant all on vsftpd. to vsftpd@'localhost' identified by 'vsftpd';
mysql> grant all on vsftpd.
to vsftpd@'192.168.%.%' identified by 'vsftpd';
mysql> grant all on vsftpd. to vsftpd@127.0.0.1 identified by 'vsftpd';
mysql> flush privileges;
mysql> \q
mysql -uvsftpd -p
mysql> use vsftpd;
mysql> CREATE TABLE users (id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, name VARCHAR(50) NOT NULL, password CHAR(48) NOT NULL);
mysql> desc users;
mysql> insert into users(name,password) values('test1',password('test1'));
mysql> insert into users(name,password) values('test2',password('test2'));
mysql> select
from users;
mysql> \q

2.3 創(chuàng)建PAM認證文件
vim /etc/pam.d/vsftpd.mysql
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=192.168.130.61 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=192.168.130.61 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

2.4 建立虛擬用戶映射的系統(tǒng)用戶及對應的目錄、子目錄
useradd -s /sbin/nologin -d /var/ftproot vuser
mkdir /var/ftproot/test{1,2}
chown vuser:vuser /var/ftproot/test*
chmod -R go+rx /var/ftproot

2.5 修改vsftpd的配置如下
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_umask=022
xferlog_enable=YES
xferlog_file=/var/log/xferlog
ftpd_banner=Welcome to blah FTP service.
chroot_local_user=YES
pam_service_name=vsftpd.mysql
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vusers_config
#virtual_use_local_privs=YES

2.6 創(chuàng)建賬號差異權限文件
mkdir /etc/vsftpd/vusers_config
vim /etc/vsftpd/vusers_config/test1
local_root=/var/ftproot/test1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=NO

vim /etc/vsftpd/vusers_config/test2
local_root=/var/ftproot/test2
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

2.7 啟動vsftpd并設置開機啟動
service vsftpd start
chkconfig vsftpd on

2.8 登錄FTP進行權限驗證
lftp -u test1,test1 192.168.130.61
lftp -u test2,test2 192.168.130.61

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI