linnux 之網路檔案共享服務專題
基本概念和原理
1 儲存型別
儲存型別分為三種直連式儲存:Direct-Attached Storage簡稱DAS網路附加儲存
Network-Attached Storage,簡稱NAS儲存區域網路
Storage Area Network,簡稱SAN
儲存基礎知識---儲存網路
儲存基礎知識---儲存網路
儲存基礎知識---儲存網路
儲存基礎知識---儲存網路
儲存基礎知識---儲存網路
==============================================================進入實戰==================================================================================================
檔案傳輸協議:File Transfer Protocol 早期的三個應用級協議之一, 基於C/S結構資料傳輸格式:二進位制(預設)和文字雙通道協議: 命令和資料連線 兩種模式:從伺服器角度 主動(PORT style):伺服器主動連線 命令(控制):客戶端:隨機port ---> 伺服器:21/tcp資料 客戶端:隨機port <---伺服器:20/tcp 被動(PASV style):客戶端主動連線 命令(控制):客戶端:隨機port ---> 伺服器:21/tcp資料: 客戶端:隨機port ---> 伺服器:隨機port /tcp
使用者認證:
FTP伺服器端和客戶端常用軟體
=============================================================================================================================================
環境網路拓撲
192.168.170.17 #資料庫伺服器 192.168.170.7 #應用伺服器 192.168.170.6 # 測試客戶端
資料庫伺服器17上
#建立儲存虛擬使用者資料庫和表 MariaDB [vsftpd]> CREATE DATABASE vsftpd; MariaDB [vsftpd]> USE vsftpd; MariaDB [vsftpd]> CREATE TABLE users(id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,name CHAR(50) BINARY NOT NULL,password CHAR(48) BINARY NOT NULL); #新增虛擬使用者,為了安全應該使用PASSWORD函式加密其密碼後儲存 mysql> INSERT INTO users(name,password) values('ftp_user1',password('111111')); mysql> INSERT INTO users(name,password) values('ftp_user2',password('111111')); ===================================== MariaDB [vsftpd]> select * from users; +----+-----------+-------------------------------------------+ | id | name | password | +----+-----------+-------------------------------------------+ | 1 | ftp_user1 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA | | 2 | ftp_user2 | *FD571203974BA9AFE270FE62151AE967ECA5E0AA | ========================================= #建立連線的資料庫使用者 mysql>GRANT SELECT ON vsftpd.* TO vsftpd@'192.168.170.%' IDENTIFIED BY '111111'; mysql> FLUSH PRIVILEGES;
在FTP伺服器上192.168.170.7安裝vsftpd和 pam_mysql包
[root@centos7 ~]#yum install vsftpd -y
#在FTP伺服器上安裝 pam_mysql對於 centos 6:pam_mysql由EPEL的源中提供,對於 centos7 和 8:無對應rpm包,需手動編譯安裝
[root@chujiapeng ~]# cd /data/
ll
-rw-r--r-- 1 root root 335240 Jan 3 15:33 pam_mysql-0.7RC1.tar.gz
#安裝相關包
yum -y install vsftpd gcc gcc-c++ make mariadb-devel pam-devel
#編譯安裝pam_mysql
[root@chujiapeng data]# tar -xf pam_mysql-0.7RC1.tar.gz
[root@chujiapeng pam_mysql-0.7RC1]# ./configure --with-pam-mods-dir=/lib64/security
[root@chujiapeng pam_mysql-0.7RC1]# make && make install
[root@chujiapeng pam_mysql-0.7RC1]# ll /lib64/security/pam_mysql.*
-rwxr-xr-x 1 root root 882 Jan 3 15:48 /lib64/security/pam_mysql.la
-rwxr-xr-x 1 root root 141696 Jan 3 15:48 /lib64/security/pam_mysql.so
在FTP伺服器上建立pam認證所需檔案
[root@chujiapeng pam_mysql-0.7RC1]# vim /etc/pam.d/vsftp.sh
#新增如下兩行
auth required pam_mysql.so user=vsftpd passwd=111111 host=192.168.170.17 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=111111 host=192.168.170.17 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2