1. 程式人生 > 實用技巧 >linnux 之網路檔案共享服務專題

linnux 之網路檔案共享服務專題

基本概念和原理

1 儲存型別

儲存型別分為三種直連式儲存:Direct-Attached Storage簡稱DAS網路附加儲存

Network-Attached Storage,簡稱NAS儲存區域網路

Storage Area Network,簡稱SAN

儲存基礎知識---儲存網路

儲存基礎知識---儲存網路

儲存基礎知識---儲存網路

儲存基礎知識---儲存網路

儲存基礎知識---儲存網路

==============================================================進入實戰==================================================================================================

1、實現基於MYSQL驗證的vsftpd虛擬使用者訪問 FTP工作原理介紹
檔案傳輸協議:File Transfer Protocol 早期的三個應用級協議之一, 基於C/S結構資料傳輸格式:二進位制(預設)和文字雙通道協議: 命令和資料連線 兩種模式:從伺服器角度 主動(PORT style):伺服器主動連線 命令(控制):客戶端:隨機port ---> 伺服器:21/tcp資料 客戶端:隨機port <---伺服器:20/tcp 被動(PASV style):客戶端主動連線 命令(控制):客戶端:隨機port ---> 伺服器:21/tcp資料: 客戶端:隨機port ---> 伺服器:隨機port /tcp
FTP服務狀態碼:

使用者認證:

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

2、通過NFS實現伺服器/www共享訪問。 3、配置samba共享,實現/www目錄共享 4、使用rsync+inotify實現/www目錄實時同步 5、使用iptable實現: 放行telnet, ftp, web服務,放行samba服務,其他埠服務全部拒絕