vsftpd虛擬用戶搭建
1.安裝vsftpd等一系列的安裝包
yum install vsftpd mariadb-server mariadb-devel pam-devel -y
2.安裝pam_mysql
下載:pam_mysql-0.7RC1.tar.gz wget -c ftp://172.16.0.1/pub/Sources/sources/pam/pam_mysql-0.7RC1.tar.gz ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security make && make install
3.編輯mysql
cp /etc/my.cnf.d/mysql-server.cnf{,.back} vim /etc/my.cnf.d/mysql-server.cnf [mysqld] innodb_file_per_table = 1 log-bin=mysql-bin skip_name_resolve=1
4.啟動mysql,添加一下數據庫,表,插入數據等
create database vsftpd;#建立虛擬用戶數據庫,庫名vsftpd use vsftpd; #進入vsftpd數據庫 create table users(id int unsigned not null auto_increment primary key, name varchar(100) not null,password varchar(48) not null,unique key(name)); #建立虛擬用戶口令表,表名users,插入數據 insert into users (name,password) values ('srayban',password('123456')), ('test',password('123456')); #授權vsftpd這個賬號可以讀取vsftpd數據庫的user表 grant all on vsftpd.users to 'vsftpd'@'localhost' identified by '123456' flush privileges; #查看一下用戶 select * from users;
5.配置vsftpd.conf(設置虛擬用戶配置項)
cp /etc/vsftpd/vsftpd.conf{,.back} vim /etc/vsftpd/vsftpd.conf guest_enable=YES #開啟虛擬用戶 guest_username=vuser #FTP虛擬用戶對應的系統用戶,需要創建系統用戶 pam_service_name=vsftpd.vusers #PAM認證文件 這里是手動建立的pam認證文件名
6.創建系統用戶vuser
mkdir /ftproot/vuser useradd -d /ftproot/vuser vuser chown -R vuser:vuser /ftproot/vuser chmod a-w /ftproot/vuser
7.提供配置文件:/etc/pam.d/vsftpd.vusers
vim /etc/pam.d/vsftpd.vusers auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=123456 host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 這里需要注意的是user和passwd填寫的是授權數據庫訪問賬號和密碼 crypt=0:表示口令使用明文方式保存在數據庫中 crypt=1:表示口令使用UNIX的DES加密方式加密后保存在數據庫中 crypt=2:表示口令使用MySQL的password()函數加密后保存在數據庫中 crypt=3:表示口令使用MD5散列值的方式保存在數據庫中
- 重啟vsftpd服務
systemctl restart vsftpd
9.注意,我們在登錄的時候,是把mysql賬號的用戶映射成,系統用戶vuser,所以我們同樣需要拿走vuser的寫權限
chmod a-w /ftproot/vuser
10.虛擬用戶的寫權限,通過匿名一樣的指令進行定義; 還能實現不同的用戶有不同的權限; 在/etc/vsftpd/vsftpd.conf 后面添加
user_config_dir=/etc/vsftpd/vusers_config/ 我們創建該目錄 mkdir -p /etc/vsftpd/vusers_config/ vim srayban anon_upload_enable=YES vim test anon_upload_enable=YES anon_mkdir_write_enable=YES
11.登錄測試ok
原創文章,作者:srayban,如若轉載,請注明出處:http://www.www58058.com/77611