ftp下實現文件和mysql驗證虛擬用戶
一、基於文件驗證虛擬用戶
①創建虛擬用戶數據庫文件。
命令:vim /etc/vsftpd/viruser
把文件轉化為數據庫格式。
命令:db_load -T -t hash -f viruser viruser.db
②創建系統用戶和訪問FTP目錄。
③創建pam配置文件。
命令:vim /etc/vsftpd/viruser.db
④指定pam配置文件
⑤關閉防火墻和selinux
⑥給虛擬用戶設置各自的權限。
創建配置文件存放的目錄
命令:mkdir /etc/vsftpd/viruser.d/
修改ftp配置文件
命令:vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/viruser.d/
進入虛擬用戶配置目錄下,創建各自虛擬用戶的權限。
命令:cd /etc/vsftpd/viruser.d/
ftp1虛擬用戶可讀可寫可上傳。
命令:vim ftp1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
ftp2只可讀。
命令:anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
二、基於mysql實現驗證虛擬賬戶。 【就不貼照片了】
A機器:mysql服務器
B機器:ftp服務器
A機器:
①A安裝數據庫,運行安全腳本,創建數據庫用戶(存放虛擬賬戶)。
yum install mariadb
mysql_seure_installation 【運行安全腳本】
create database vsftpd; 【創建數據庫】
use vsftpd 【進入vsftpd數據庫裏面】
create table ftpusers(name char(30),passwd char(50)); 【在數據庫vsftpdb創建表】
grant all on vsftpd.* to ‘ftp‘@‘host‘ identified by ‘centos‘; 【創建vsftpd數據庫管理員】
insert into ftpusers values (‘ftp1‘,password(‘centos‘)), (‘ftp2‘,password(‘magedu‘)); 【對ftpusers表插入用戶
select * from ftpusers; 【查看創建的用戶】
B主機:
②安裝vsftpd包,編譯安裝pam_mysql【centos6光盤有】
yum install mariadb-devel pam-devel
./configure --with-pam-mods-dir=/lib64/security --with-pam=/usr/
make && make install
在FTP服務器上建立pam認證所需文件
vim /etc/pam.d/vsftpd.mysql 添加如下兩行
auth required pam_mysql.so user=ftpd 【遠程數據庫用戶名】passwd=centos host=遠程主機 db=vsftpd table=ftpusers usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=magedu host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
修改ftpd主配置文件
vim /etc/ftpd/ftpd.conf
anonymous_enable=YES
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.mysql
user_config_dir=/etc/vsftpd/vusers_config 【配置vsftpd為虛擬用戶使用配置文件目錄】
創建賬戶:在/etc/vsftpd/vusers_config下創建賬戶(文件)
創建所需要目錄,並為虛擬用戶提供配置文件
mkdir /etc/vsftpd/vusers_config/
cd /etc/vsftpd/vusers_config/
創建文件:
vim ftp1
anon_upload_enable=yes 【允許ftp1修改文件】
vim ftp2
local_root=/app/ftpdir2 【非匿名用戶登錄所在目錄】
ftp下實現文件和mysql驗證虛擬用戶