搭建FTP服務器實現文件共享和NFS服務器配置


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM