-----------------------------------------------------------------------------------------------------------------------------------------------
mysql
SAN:iSCSI(tcp/ip),FC SAN(光纖式傳輸網絡存儲),Block(塊級別存儲設備不建議多臺同時掛載使用)windows
(2)SDS(Software Defined Storage),軟件定義存儲centos
一、File Transfer Protocol 早期的三個應用級協議之一
命令(控制):客戶端:隨機port ---服務器:tcp21
命令(控制):客戶端:隨機port ---服務器:tcp21
227 Entering Passive Mode (172,16,0,1,224,59)
匿名用戶:ftp,anonymous,對應Linux用戶ftp
系統用戶:Linux用戶,用戶/etc/passwd,密碼/etc/shadow
nsswitch:networkservice switch名稱解析框架
pam:pluggableauthentication module 用戶認證
/lib64/security /etc/pam.d/ /etc/pam.conf
四、服務腳本:/usr/lib/systemd/system/vsftpd.service
五、配置文件:/etc/vsftpd/vsftpd.conf
六、匿名用戶(映射爲系統用戶ftp ,可認爲是ftp用戶在作)共享文件位置:/var/ftp
connect_from_port_20=YES 主動模式端口爲20
ftp_data_port=20 (默認)指定主動模式的端口
use_localtime=YES 使用當地時間(默認爲NO,使用GMT)
no_anon_password=YES(默認NO) 匿名用戶略過口令檢查anon_world_readable_only(默認YES)只能下載所有讀的文件
anon_upload_enable=YES 匿名上傳,注意:文件系統權限
anon_mkdir_write_enable=YES匿名建目錄
anon_umask=0333 指定匿名上傳文件的umask,默認077
anon_other_write_enable=YES 可刪除和修改上傳的文件
local_enable=YES 是否容許linux用戶登陸
write_enable=YES 容許linux用戶上傳文件
local_umask=022 指定系統用戶上傳文件的默認權限
guest_enable=YES 全部系統用戶都映射成guest用戶
guest_username=ftp 配合上面選項才生效,指定guest用戶
local_root=/ftprootguest用戶登陸所在目錄
chroot_local_user=YES(默認NO,不由錮)禁錮系統用戶
八、禁錮或不由錮特定的系統用戶在家目錄中,與上面設置功能相反
chroot_list_file=/etc/vsftpd/chroot_list
當chroot_local_user=YES時,則chroot_list中用戶不由錮
當chroot_local_user=NO時,則chroot_list中用戶禁錮
xferlog_enable=YES (默認)啓用記錄上傳下載日誌
xferlog_std_format=YES (默認)使用wu-ftp日誌格式
xferlog_file=/var/log/xferlog(默認)可自動生成記錄上傳下載日誌
dual_log_enable=YES 使用vsftpd日誌格式,默認不啓用
vsftpd_log_file=/var/log/vsftpd.log(默認)可自動生成
ftpd_banner=「welcometo mage ftp server"
banner_file=/etc/vsftpd/ftpbanner.txt 優先上面項生效
message_file=.message(默認)信息存放在指定目錄下.message
1三、使用pam(Pluggable Authentication Modules)完成用戶認證
/etc/vsftpd/ftpusers默認文件中用戶拒絕登陸
userlist_deny=YES(默認值) 黑名單,不提示口令,NO爲白名單
userlist_file=/etc/vsftpd/users_list 此爲默認值
1八、鏈接時間:秒爲單位,若是網絡延遲大,這些調整數值較大較好
connect_timeout=60 主動模式數據鏈接超時時長
accept_timeout=60 被動模式數據鏈接超時時長
data_connection_timeout=300 數據鏈接無數據輸超時時長,數據鏈接空閒時長
idle_session_timeout=60 無命令操做超時時長
全部虛擬用戶會統一映射爲一個指定的系統賬號:訪問共享位置,即爲此係統賬號的家目錄
各虛擬用戶可被賦予不一樣的訪問權限,經過匿名用戶的權限控制參數進行指定
db_load -T -t hash -f vusers.txt vusers.db
/usr/share/doc/pam_mysql-0.7/README
db_load -T -t hash -f vusers.txt vusers.db ----->db工具
useradd vuser -d /var/ftproot-s /sbin/nologin
setfacl-m u:vuser:rwx /var/ftproot/upload
auth required pam_userdb.so db=/etc/vsftpd/vusers ------>此處不能帶.db後綴
account required pam_userdb.so db=/etc/vsftpd/vusers
禁用SELinux或者setsebool -P ftpd_full_access1
(1)mdkir/etc/vsftpd/vusers.d/ 建立配置文件存放的路徑
(2)vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers.d/
(3)cd /etc/vsftpd/vusers.d/ 進入此目錄,systemctl restarted vsftpd重啓服務,看是否依然可用
anon_upload_enable=YES ----->能上傳權限
anon_mkdir_write_enable=YES ----->能寫入權限
anon_other_write_enable=YES ----->能刪除權限
local_root=/ftproot 登陸目錄改變至指定的目錄
說明:本實驗在兩臺CentOS主機上實現,一臺作爲FTP服務器,一臺作數據庫服務器
systemctlstart mariadb.service
yum -y groupinstall"Development Tools"
yum -y install mariadb-develpam-develvsftpd
tar xvfpam_mysql-0.7RC1.tar.gz
./configure --with-pam-mods-dir=/lib64/security --with-mysql=/usr--with-pam=/usr
mysql> CREATE DATABASE vsftpd;
mysql> GRANT SELECT ON vsftpd.* TO
vsftpd@'172.16.%.%' IDENTIFIED BY 'magedu';
mysql> GRANT SELECT ON vsftpd.* TO
vsftpd@localhostIDENTIFIED BY 'magedu';
mysql> GRANT SELECT ON vsftpd.* TO
vsftpd@'127.0.0.1' IDENTIFIED BY 'magedu';
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
name CHAR(50) BINARY NOT NULL,
password CHAR(48) BINARY NOT NULL
mysql-uvsftpd-h mysqlserver-pmagedu
根據須要添加所須要的用戶,爲了安全應該使用PASSWORD函數加密其密碼後存儲
mysql> INSERT INTOusers(name,password) values(‘wang',password('magedu'));
mysql> INSERT INTOusers(name,password) values(‘mage',password('magedu'));
vi /etc/pam.d/vsftpd.mysql添加以下兩行
<1>authrequired pam_mysql.so user=vsftpd passwd=magedu host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
<2>account required pam_mysql.so user=vsftpd passwd=magedu host=mysqlserver db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
crypt是加密方式,0表示不加密,1表示crypt(3)加密,2表示使用mysqlpassword()函數加密,3表示md5加密,4表示sha1加密
•pam_mysql.so模塊是默認的相對路徑,是相對/lib64/security/路徑而言,也能夠寫絕對路徑;後面爲給此模塊傳遞的參數
•host=mysqlservermysql服務器的主機名或ip地址
•passwdcolumn=password 當作用戶名字段的密碼
•crypt=2 密碼的加密方式爲mysqlpassword()函數加密
(2)創建相應用戶和修改vsftpd配置文件,使其適應mysql認證
useradd -s /sbin/nologin -d /var/ftprootv user
chmod555 /var/ftprootcentos7 需除去ftp根目錄的寫權限
mkdir/var/ftproot/{upload,pub}
setfacl –m u:vuser:rwx /var/ftproot/upload
service vsftpdstart;systemctlstart vsftpd
chkconfigvsftpdon;systemctlenable vsftpd
chcon -R -t public_content_rw_t /var/ftproot/
vsftpd能夠在配置文件目錄中爲每一個用戶提供單獨的配置文件以定義其ftp服務訪問權限,每一個虛擬用戶的配置文件名同虛擬用戶的用戶名。配置文件目錄能夠是任意未使用目錄,只須要在vsftpd.conf指定其路徑及名稱便可
user_config_dir=/etc/vsftpd/vusers_config
mkdir/etc/vsftpd/vusers_config/
虛擬用戶對vsftpd服務的訪問權限是經過匿名用戶的相關指令進行的。如要讓用戶wang具備上傳文件的權限,可修改/etc/vsftpd/vusers_config/wang文件,在裏面添加以下選項並設置爲YES便可,只讀則設爲NO
anon_mkdir_write_enable={YES|NO}
anon_other_write_enable={YES|NO}
local_root=/ftproot登陸目錄改變至指定的目錄
一、NFS:Network File System 網絡文件系統,基於內核的文件系統。Sun公司開發,經過使用NFS,用戶和程序能夠像訪問本地文件同樣訪問遠端系統上的文件,基於RPC(Remote Procedure Call Protocol遠程過程調用)實現
二、RPC採用C/S模式。客戶機請求程序調用進程發送一個有進程參數的調用信息到服務進程,而後等待應答信息。在服務器端,進程保持睡眠狀態(即阻塞)直到調用信息到達爲止。當一個調用信息到達,服務器得到進程參數,計算結果,發送答覆信息,而後等待下一個調用信息,最後,客戶端調用進程接收答覆信息,得到進程結果,而後調用執行繼續進行
三、NFS優點:節省本地存儲空間,將經常使用的數據,如home目錄,存放在NFS服務器上且能夠經過網絡訪問,本地終端將可減小自身存儲空間的使用
端口:2049(nfsd), 其它端口由portmap(111)分配
配置文件:/etc/exports,/etc/exports.d/*.exports
CentOS7不支持同一目錄同時用nfs和samba共享,由於使用鎖機制不一樣
相關軟件包:rpcbind(必須),tcp_wrappers
十3、配置防火牆(CentOS6須要配置,CentOS7不用配置)
二、防火牆除開放上述端口,還需開放TCP和UDP的111和2049共4個端口
/dir 主機1(opt1,opt2) 主機2(opt1,opt2)...
(5)wildcards:主機名通配,例如*.magedu.com,IP不能夠通配
(6)netgroups:NIS域的主機組,@group_name,NIS:網絡信息服務
(1)默認選項:(ro,sync,root_squash,no_all_squash),root_squash:壓縮root用戶權限
(4)sync(1.0.0後爲默認)同步,數據在請求時當即寫入共享
(5)no_all_squash(默認)保留共享文件的UID和GID
(6)all_squash全部遠程用戶(包括root)都變成nfsnobody,壓縮全部用戶
(7)root_squash(默認)遠程root映射爲nfsnobody,UID爲65534,早期版本是4294967294 (nfsnobody)
(8)no_root_squash遠程root映射成root用戶,不壓縮root用戶
(9)anonuid和anongid指明匿名用戶映射爲特定用戶UID和組GID,而非nfsnobody,可配合all_squash使用
/myshare server[0-20].example.com
/myshare 2000:472:18:b51:c32:a21
/myshare *.example.com172.25.0.0/16
/myshare desktop.example.com(ro)
/myshare desktop.example.com(ro) server[0-20].example.com(rw)
/myshare diskless.example.com(rw,no_root_squash)
NFSv4支持經過掛載NFS服務器的共享「根」,從而瀏覽NFS服務器上的共享目錄列表
一、基於安全考慮,建議使用nosuid,nodev,noexec掛載選項
rsize和wsize一次讀和寫數據最大字節數,rsize=32768
mount -o rw,nosuid,fg,hard,intr172.16.0.1:/testdir/mnt/nfs/
172.16.0.1:/public /mnt/nfs nfs defaults 0 0
一、可以使用autofs按須要掛載NFS共享,在空閒時自動卸載
三、系統管理器指定由/etc/auto.master自動掛載器守護進程控制的掛載點
六、爲全部導出到網絡中的NFS啓用特殊匹配-host 至「browse」
一、SMB:Server Message Block服務器消息塊,IBM發佈,最先是DOS網絡文件共享協議
二、Cifs:common internet file system,微軟基於SMB發佈
三、SAMBA:1991年Andrew Tridgell,實現windows和UNIX相通
samba-winbind和AD相關(AD:windows的AD域)
四、語法檢查:testparm [-v] [/etc/samba/smb.conf]
一、smb.conf繼承了.ini文件的格式,用[ ] 分紅不一樣的部分
可加入host allow = 127. 172.20. ---->白名單
log file = /var/log/samba/log.%m
五、hosts allow 可用「,」 ,空格,或tab分隔,默認容許全部主機訪問,也可在每一個共享獨立配置,如在[global]設置,將應用並覆蓋全部共享設置
IPv4 network/prefix: 172.25.0.0/24 IPv4前綴: 172.25.0.
IPv4 network/netmask: 172.25.0.0/255.255.255.0
以example.com後綴的主機名: .example.com
hosts allow = 172.25. .example.com
七、config file=/etc/samba/conf.d/%U 用戶獨立的配置文件
八、Log file=/var/log/samba/log.%m不一樣客戶機採用不一樣日誌
九、log level = 2 日誌級別,默認爲0,不記錄日誌
十、max log size=50 日誌文件達到50K,將輪循rotate,單位KB
user:samba用戶(採有linux用戶,samba的獨立口令)
domain:使用DC(DOMAINCONTROLLER)認證
十二、passdb backend = tdbsam密碼數據庫格式
samba用戶須是Linux用戶,建議使用/sbin/nologin
/var/lib/samba/private/passdb.tdb
public 可否被guest訪問的共享,默認no,和guest ok 相似
browsable是否容許全部用戶瀏覽此共享,默認爲yes,no爲隱藏
read only=no 和writable=yes等價,如與以上設置衝突,放在後面的設置生效,默認只讀
write list 三種形式:用戶,@組名,+組名,用,分隔如writable=no,列表中用戶或組可讀寫,不在列表中用戶只讀
valid users 特定用戶才能訪問該共享,如爲空,將容許全部用戶,用戶名之間用空格分隔
一、UNC路徑: Universal Naming Convention,通用命名規範
smbclient-L instructor.example.com
smbclient-L instructor.example.com -U wang
smbclient //instructor.example.com/shared -U wang
可使用-U選項來指定用戶%密碼,或經過設置和導出USER和PASSWD環境變量來指定
mount -t cifs-o user=wang,password=magedu //server//shared /mnt/smb
(1)cat /etc/fstab能夠用文件代替用戶名和密碼的輸入
//server/homes /mnt cifs credentials=/etc/smb.txt 0 0
三、結合文件系統權限,能夠實現本身能夠讀別人的文件,但只能修改刪除本身的文件(粘滯鍵)