FTP服務概述:
FTP服務器(File Transfer Protocol Server)是在互聯網上提供文件存儲和訪問服務的計算機,它們依照FTP協議提供服務。
FTP(File Transfer Protocol: 文件傳輸協議)作用: Internet 上用來傳送文件的協議
常見FTP服務器:
windows:Serv-U FTP Server,filezilla_server
Linux:ProFTPD:(Professional FTP daemon)一個Unix平台上或是類Unix平台上(如Linux, FreeBSD等)的FTP服務器程序。
VSFTP是一個基於GPL發布的類Unix系統上使用的FTP服務器軟件,它的全稱是Very Secure FTP 從此名稱可以看出來,編制者的初衷是代碼的安全。
特點:
它是一個安全、高速、穩定的FTP服務器;
模式: C/S 模式
端口:
# vim /etc/services
20 (傳數據) 21 (傳指令)
fsp(File Service Protocol): 文件服務協議。
工作流程(原理):
這里的主動和被動,是相對於的FTP server 端來判斷的
如果server 去連接client 開放的端口,說明是主動的,相反,如果client去連接server開放的端口,則是被動的。
安裝vsftp服務器端、客戶端:
# rpm -ivh /mnt/Packages/vsftpd-2.2.2-6.el6_0.1.x86_64.rpm
或
#yum -y install vsftpd lftp
安裝客戶端:
# yum install -y lftp
注:從RHEL6開始,系統鏡像中默認沒有ftp客戶端命令。取而代之的是lftp命令
Linux客戶端:
lftp 是一個功能強大的下載工具,它支持訪問文件的協議: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在編譯的時候包含openssl庫)。llftp的界面非常好一個shell: 有命令補全,歷史記錄,允許多個后台任務執行等功能,使用起來非常方便。它還有書簽、排隊、鏡像、斷點續傳、多進程下載等功能。
配置文件位置:
2.vsftpd 相關文檔
/etc/vsftpd/vsftpd.conf:vsftpd 的核心配置文件
/etc/vsftpd/ftpusers:用於指定哪些用戶不能訪問FTP 服務器。 黑名單
/etc/vsftpd/user_list:指定允許使用vsftpd 的用戶列表文件。 白名單
vim /etc/vsftpd/user_list
# 如果userlist_deny= YES(默認),絕不允許在這個文件中的用戶登錄ftp,甚至不提示輸入密碼
#prompt 提示
/etc/vsftpd/vsftpd_conf_migrate.sh:是vsftpd 操作的一些變量和設置腳本
/var/ftp/:默認情況下匿名用戶的根目錄
注意:為什么看不到20端口?。
因為沒有數據通信。
配置vsftpd,使用SSL證書加密數據傳輸
FTP與HTTP一樣缺省狀態都是基於明文傳輸,希望FTP服務器端與客戶端傳輸保證安全,可以為FTP配置SSL
1, 使用OpenSSL生成自簽證書
# openssl req -new -x509 -nodes -out vsftpd.pem -keyout vsftpd.pem -days 3560
OpenSSL 簡單參數解釋:
req - 是 X.509 Certificate Signing Request (CSR,證書簽名請求)管理的一個命令。
x509 - X.509 證書數據管理。
days - 定義證書的有效日期。
newkey - 指定證書密鑰處理器。
keyout - 設置密鑰存儲文件。
out - 設置證書存儲文件,注意證書和密鑰都保存在一個相同的文件
2,創建證書文件存放目錄
# mkdir .sslkey
# cp vsftpd.pem .sslkey/
# chmod 400 .sslkey/vsftpd.pem
3, 修改配置文件,支持SSL
# vim vsftpd.conf
ssl_enable=YES #啟用SSL支持
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
force_anon_logins_ssl=YES
force_anon_data_ssl=YES
#上面四行force 表示強制匿名用戶使用加密登陸和數據傳輸
ssl_tlsv1=YES #指定vsftpd支持TLS v1[
ssl_sslv2=YES #指定vsftpd支持SSL v2
ssl_sslv3=YES #指定vsftpd支持SSL v3
require_ssl_reuse=NO #不重用SSL會話,安全配置項
ssl_ciphers=HIGH #允許用於加密 SSL 連接的 SSL 算法。這可以極大地限制那些嘗試發現使用存在缺陷的特定算法的攻擊者
rsa_cert_file=/etc/vsftpd/.sslkey/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/.sslkey/vsftpd.pem
#定義 SSL 證書和密鑰文件的位置
注意:上面的配置項不要添加到vsftpd.conf 文件最后,否則啟動報錯
注意: 在工作中,內網FTP傳輸,可以不用證書加密傳輸
如果FTP服務器在公網,為了數據的安全性,就一定要配置證書加密傳輸
NFS概述-配置NFS服務器並實現開機自動掛載
NFS服務端概述:
NFS,是Network File System的簡寫,即網絡文件系統。網絡文件系統是FreeBSD支持的文件系統中的一種,也被稱為NFS. NFS允許一個系統在網絡上與他人共享目錄和文件。通過使用NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統上的文件。
模式: C/S 模式
端口:
RHEL7是以NFSv4作為默認版本,NFSv4使用TCP協議(端口號是2049)和NFS服務器建立連接
安裝nfs
# yum -y install rpcbind nfs-utils
配置文件位置
# ls /etc/exports
修改配置文件
# vim /etc/exports
/media *(rw)
注意: * 表示對所有網段開放權限
也可以指定特定的網段
重啟服務
# exportfs -rv ##重新讀取配置文件,不中斷服務.
# mount -t nfs 192.168.0.63:/media/ /opt/
啟動NFS服務前需要先啟動 rpcbind,NFS服務依賴於rpcbind。
下面是一些NFS共享的常用參數:
ro 只讀訪問
rw 讀寫訪問
sync 資料同步寫入到內存與硬盤當中
async 資料會先暫存於內存當中,而非直接寫入硬盤
secure NFS通過1024以下的安全TCP/IP端口發送
insecure NFS通過1024以上的端口發送
wdelay 如果多個用戶要寫入NFS目錄,則歸組寫入(默認)
no_wdelay 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。
Hide 在NFS共享目錄中不共享其子目錄
no_hide 共享NFS目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UID和GID(默認)
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squash root用戶具有根目錄的完全管理訪問權限
注意:在發布共享目錄的格式中除了共享目錄是必跟參數外,其他參數都是可選的。並且共享
目錄與客戶端之間及客戶端與客戶端之間需要使用空格符號,但是客戶端與參數之間是不能有
空格的
NFS客戶端掛載參數的優化:
NFS高並發環境下的服務端重要優化(mount -o 參數)
async 異步同步,此參數會提高I/O性能,但會降低數據安全(除非對性能要求很高,對數據可靠性不要求的場合。一般生產環境,不推薦使用)
noatime 取消更新文件系統上的inode訪問時間,提升I/O性能,優化I/O目的,推薦使用。
nodiratime 取消更新文件系統上的directory inode訪問時間,高並發環境,推薦顯式應用該選項,提高系統性能
intr:可以中斷不成功的掛載
rsize/wsize 讀取(rsize)/寫入(wsize)的區塊大小(block size),這個設置值可以影響客戶端與服
務端傳輸數據的緩沖存儲量。一般來說,如果在局域網內,並且客戶端與服務端都具有足夠的內存,這個
值可以設置大一點,比如說32768(bytes),提升緩沖區塊將可提升NFS文件系統的傳輸能力。但設置的值也不要太大,最好是實現網絡能夠傳輸的最大值為限。
內核優化:
net.core.wmem_default = 8388608 #內核默認讀緩存
net.core.rmem_default = 8388608 #內核默認寫緩存
net.core.rmem_max = 16777216 #內核最大讀緩存
net.core.wmem_max = 16777216 #內核最大寫緩存
用法:
mount -t nfs -o noatime,nodiratime,rsize=131072,wsize=131072,intr 192.168.0.63:/backup/NFS /mnt
或者寫到掛載文件里:
192.168.0.63:/backup/NFS /mnt nfs noatime,nodiratime,rsize=131072,wsize=131072,intr 0 0