中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

vsftpd基于pam_mysql如何做虛擬用戶認證

發布時間:2021-10-08 15:37:09 來源:億速云 閱讀:110 作者:柒染 欄目:MySQL數據庫

這篇文章給大家介紹vsftpd基于pam_mysql如何做虛擬用戶認證,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

(1)下載epel源

[root@CentOS7-175 ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo  #下載阿里云的epel源
[root@CentOS7-175 ~]# yum repolist

(2)安裝所需要的包

[root@CentOS7-175 ~]# yum -y groupinstall "Development Tools" "Server Platform Development"
[root@CentOS7-175 ~]# yum -y install vsftpd pam-devel mariadb-server mariadb-devel openssl-devel
[root@CentOS7-175 ~]# systemctl start mariadb.service
[root@CentOS7-175 ~]# systemctl enable mariadb.service

(3)編譯安裝pam_mysql模塊

   vsftpd通過pam_mysql進行用戶驗證,需要安裝pam_mysql模塊,但是默認系統yum源不提供,所以需要編譯安裝pam_mysql模塊

[root@CentOS7-175 ~]# mkdir /home/tools/
[root@CentOS7-175 ~]# cd /home/tools/
[root@CentOS7-175 tools]# tar xf pam_mysql-0.7RC1.tar.gz
[root@CentOS7-175 tools]# cd pam_mysql-0.7RC1/
[root@CentOS7-175 pam_mysql-0.7RC1]# ./configure --with-mysql=/usr --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security
[root@CentOS7-175 pam_mysql-0.7RC1]# make && make install
[root@CentOS7-175 pam_mysql-0.7RC1]# ls /lib64/security/pam_mysql.so  #查詢是否編譯成功,ls是否有pam_mysql.so模塊
/lib64/security/pam_mysql.so

(4)備份vsftpd.conf配置文件

[root@CentOS7-175 pam_mysql-0.7RC1]# systemctl stop vsftpd
[root@CentOS7-175 pam_mysql-0.7RC1]# cd /etc/vsftpd
[root@CentOS7-175 vsftpd]# cp vsftpd.conf{,.bak}
[root@CentOS7-175 vsftpd]# ls vsftpd.conf*
vsftpd.conf  vsftpd.conf.bak

(5)配置mysql

[root@CentOS7-175 vsftpd]# mysql -uroot -p  #登錄mysql
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.44-MariaDB MariaDB Server
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE vsftpd;   #創建vsftpd庫
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> use vsftpd;   #進入vsftpd庫
Database changed
MariaDB [vsftpd]> CREATE TABLE users (                   #創建users表
    -> id int AUTO_INCREMENT NOT NULL PRIMARY KEY,
    -> name char(30) NOT NULL,
    -> password char(48)binary NOT NULL);
Query OK, 0 rows affected (0.05 sec)
MariaDB [vsftpd]> desc users;   #查看users表
+----------+----------+------+-----+---------+----------------+
| Field    | Type     | Null | Key | Default | Extra          |
+----------+----------+------+-----+---------+----------------+
| id       | int(11)  | NO   | PRI | NULL    | auto_increment |
| name     | char(30) | NO   |     | NULL    |                |
| password | char(48) | NO   |     | NULL    |                |
+----------+----------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
MariaDB [vsftpd]> INSERT INTO users(name,password) VALUES ('tom',password('zhucke'));   #在表中插入數據用戶
Query OK, 1 row affected (0.00 sec)
MariaDB [vsftpd]> INSERT INTO users(name,password) VALUES ('jerry',password('zhucke.com'));
Query OK, 1 row affected (0.00 sec)
MariaDB [vsftpd]> SELECT * FROM users;
+----+-------+-------------------------------------------+
| id | name  | password                                  |
+----+-------+-------------------------------------------+
|  1 | tom   | *9BDB807A93B6C421BBFCAC5EF1AE0835396EEE38 |
|  2 | jerry | *3E27BE6A3667961ABCCFCA4832F06B151F81185A |
+----+-------+-------------------------------------------+
2 rows in set (0.00 sec)
MariaDB [vsftpd]> GRANT select ON vsftpd.* TO vsftpd@localhost IDENTIFIED BY 'zhucke';  #授權vsftpd用戶登錄mysql
Query OK, 0 rows affected (0.04 sec)
MariaDB [vsftpd]> GRANT select ON vsftpd.* TO vsftpd@127.0.0.1 IDENTIFIED BY 'zhucke'; #授權vsftpd用戶登錄mysql
Query OK, 0 rows affected (0.00 sec)
MariaDB [vsftpd]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
MariaDB [vsftpd]> exit
Bye

(6)測試用vsftpd用戶登錄mysql

[root@CentOS7-175 vsftpd]# mysql -uvsftpd -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 5.5.44-MariaDB MariaDB Server
 
Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| vsftpd             |
+--------------------+
3 rows in set (0.01 sec)
 
MariaDB [(none)]> use vsftpd;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
MariaDB [vsftpd]> SELECT * FROM users;
+----+-------+-------------------------------------------+
| id | name  | password                                  |
+----+-------+-------------------------------------------+
|  1 | tom   | *9BDB807A93B6C421BBFCAC5EF1AE0835396EEE38 |
|  2 | jerry | *3E27BE6A3667961ABCCFCA4832F06B151F81185A |
+----+-------+-------------------------------------------+
2 rows in set (0.01 sec)

(7)配置pam

[root@CentOS7-175 vsftpd]# cd /etc/pam.d/
[root@CentOS7-175 pam.d]# vim vsftpd.mysql
[root@CentOS7-175 pam.d]# cat vsftpd.mysql
auth required pam_mysql.so user=vsftpd passwd=zhucke host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=zhucke host=localhost db=vsftpd tablee=users usercolumn=name passwdcolumn=password crypt=2
[root@CentOS7-175 pam.d]# useradd -s /sbin/nologin -d /ftproot vuser
[root@CentOS7-175 pam.d]# ls -ld /ftproot/
drwx------ 3 vuser vuser 74 Jun 11 11:30 /ftproot/
[root@CentOS7-175 pam.d]# chmod go+rx /ftproot/
[root@CentOS7-175 pam.d]# ls -ld /ftproot/
drwxr-xr-x 3 vuser vuser 74 Jun 11 11:30 /ftproot/
[root@CentOS7-175 pam.d]# vim /etc/vsftpd/vsftpd.conf
[root@CentOS7-175 pam.d]# tail -7 /etc/vsftpd/vsftpd.conf
pam_service_name=vsftpd.mysql
local_enable=YES
write_enable=YES
local_umask=022
guest_enable=YES
guest_username=vuser  #指明虛擬用戶映射到的系統用戶
[root@CentOS7-175 pam.d]# chmod -w /ftproot/
[root@CentOS7-175 pam.d]# systemctl restart vsftpd
[root@CentOS7-175 pam.d]# mkdir /ftproot/{pub,upload}

(8)Client:192.168.5.171上分別用tom用戶和jerry用戶登錄ftp服務器

[root@CentOS7-171 ~]# ftp 192.168.5.175
Connected to 192.168.5.175 (192.168.5.175).
220 (vsFTPd 3.0.2)
Name (192.168.5.175:root): tom   #用tom用戶登錄 
331 Please specify the password.
Password:
230 Login successful.   #登錄成功
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls   #查看ftp服務內的文件
227 Entering Passive Mode (192,168,5,175,58,188).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Jun 11 03:34 pub
drwxr-xr-x    2 0        0               6 Jun 11 03:34 upload
226 Directory send OK.
ftp> exit
221 Goodbye.
[root@CentOS7-171 ~]# ftp 192.168.5.175
Connected to 192.168.5.175 (192.168.5.175).
220 (vsFTPd 3.0.2)
Name (192.168.5.175:root): jerry   #用jerry用戶登錄
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,5,175,189,114).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Jun 11 03:34 pub
drwxr-xr-x    2 0        0               6 Jun 11 03:34 upload
226 Directory send OK.

(9)設置文件可以上傳

[root@CentOS7-175 pam.d]# chown vuser /ftproot/upload/  #修改此目錄屬主為vuser用戶
[root@CentOS7-175 pam.d]# ls -ld /ftproot/upload/
drwxr-xr-x 2 vuser root 6 Jun 11 11:34 /ftproot/upload/
[root@CentOS7-175 pam.d]# vim /etc/vsftpd/vsftpd.conf   #編譯vsftpd.conf文件
anon_upload_enable=YES   #將此行#號去掉,開啟文件上傳
[root@CentOS7-175 pam.d]# systemctl restart vsftpd

(10)測試文件上傳

[root@CentOS7-171 ~]# ftp 192.168.5.175
Connected to 192.168.5.175 (192.168.5.175).
220 (vsFTPd 3.0.2)
Name (192.168.5.175:root): tom  #用tom用戶登錄
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd upload  #進入upload目錄
250 Directory successfully changed.
ftp> lcd /etc   #進入本地的/etc目錄
Local directory now /etc
ftp> put fstab   #上傳fstab文件
local: fstab remote: fstab
227 Entering Passive Mode (192,168,5,175,72,65).
150 Ok to send data.
226 Transfer complete.
648 bytes sent in 0.000229 secs (2829.69 Kbytes/sec)
ftp> ls  #查看是否有fstab文件
227 Entering Passive Mode (192,168,5,175,187,100).
150 Here comes the directory listing.
-rw-------    1 1001     1001          648 Jun 11 03:50 fstab   #上傳成功
226 Directory send OK.
ftp> exit
221 Goodbye.
[root@CentOS7-171 ~]# ftp 192.168.5.175
Connected to 192.168.5.175 (192.168.5.175).
220 (vsFTPd 3.0.2)
Name (192.168.5.175:root): jerry   #用jerry用戶登錄
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd upload  #進入upload目錄
250 Directory successfully changed.
ftp> lcd /etc   #進入本地的/etc/目錄
Local directory now /etc
ftp> put issue  #上傳issue文件
local: issue remote: issue
227 Entering Passive Mode (192,168,5,175,95,111).
150 Ok to send data.
226 Transfer complete.
23 bytes sent in 0.000659 secs (34.90 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (192,168,5,175,177,97).
150 Here comes the directory listing.
-rw-------    1 1001     1001          648 Jun 11 03:50 fstab
-rw-------    1 1001     1001           23 Jun 11 03:52 issue  #上傳issue文件成功
226 Directory send OK.

(11)配置用戶擁有不同的權限,一個可以上傳,一個不可以上傳

[root@CentOS7-175 pam.d]# cd /etc/vsftpd
[root@CentOS7-175 vsftpd]# mkdir vusers.conf.d
[root@CentOS7-175 pam.d]# cd vusers.conf.d
[root@CentOS7-175 vusers.conf.d]# vim tom
anon_upload_enable=YES    #tom用戶可以上傳
[root@CentOS7-175 vusers.conf.d]# vim jerry
anon_upload_enable=NO  #jerry用戶不上傳
[root@CentOS7-175 vsftpd]# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.conf.d
[root@CentOS7-175 vsftpd]# systemctl restart vsftpd.service

(12)驗證tom用戶和jerry用戶

[root@CentOS7-171 ~]# ftp 192.168.5.175
Connected to 192.168.5.175 (192.168.5.175).
220 (vsFTPd 3.0.2)
Name (192.168.5.175:root): tom
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,5,175,205,162).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Jun 11 03:34 pub
drwxr-xr-x    2 1001     0              30 Jun 11 03:52 upload
226 Directory send OK.
ftp> cd upload
250 Directory successfully changed.
ftp> lcd /etc
Local directory now /etc
ftp> put grub2.cfg
local: grub2.cfg remote: grub2.cfg
227 Entering Passive Mode (192,168,5,175,211,51).
150 Ok to send data.  #tom用戶上傳成功
226 Transfer complete.
4213 bytes sent in 0.0815 secs (51.69 Kbytes/sec)
ftp> ls
227 Entering Passive Mode (192,168,5,175,111,189).
150 Here comes the directory listing.
-rw-------    1 1001     1001          648 Jun 11 03:50 fstab
-rw-------    1 1001     1001         4213 Jun 11 04:04 grub2.cfg
-rw-------    1 1001     1001           23 Jun 11 03:52 issue
226 Directory send OK.
[root@CentOS7-171 ~]# ftp 192.168.5.175
Connected to 192.168.5.175 (192.168.5.175).
220 (vsFTPd 3.0.2)
Name (192.168.5.175:root): jerry   
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (192,168,5,175,31,254).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Jun 11 03:34 pub
drwxr-xr-x    2 1001     0              62 Jun 11 04:06 upload
226 Directory send OK.
ftp> lcd /etc
Local directory now /etc
ftp> cd upload
250 Directory successfully changed.
ftp> put issue
local: issue remote: issue
227 Entering Passive Mode (192,168,5,175,87,198).
550 Permission denied. #jerry測試結果是不能上傳

關于vsftpd基于pam_mysql如何做虛擬用戶認證就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

平昌县| 遂昌县| 涪陵区| 固阳县| 南澳县| 蓬莱市| 安阳县| 石阡县| 汝州市| 舒城县| 垣曲县| 手机| 内黄县| 宿松县| 区。| 临邑县| 惠水县| 新民市| 田东县| 察哈| 石台县| 南昌县| 天峨县| 广南县| 英超| 陇西县| 石屏县| 神木县| 林周县| 大埔区| 潼关县| 宕昌县| 北海市| 滨州市| 库伦旗| 布尔津县| 宣威市| 定结县| 无为县| 平遥县| 天柱县|