孫道層
德宏職業學院 云南 芒市 678400
信息化高速發展促使人們對信息的傳播、交流、共享等需求越發強烈,文件傳輸是信息共享的重要組成部分,互聯網上有PC個人機、大型機、MAC、工作站等不同計算機環境,不同的計算機系統平臺的硬件設備不同及基于這些不同硬件運行的操作系統軟件也不同,如何在這些錯綜復雜的環境下實現文件交流,需要建立一個統一的文件傳輸協議,即FTP(File Transfer Protocol)協議[1-2]。所有不同平臺的FTP應用程序都統一遵守同一種FTP協議,遠程客戶端用戶就可以從其他平臺下載文件或者自己上傳文件到其他平臺。FTP是一種客戶/服務器系統,客戶單通過FTP協議向遠程FTP服務器端發出命令,服務器執行用戶發出的命令并返回執行的結果[3-4]。
FTP服務器的安裝方法很多,可以通過YUM工具、RPM工具、源代碼下載等方式安裝,本文通過RPM工具安裝,在Cent OS7操作系統安裝光盤中提供相關軟件包,通過掛載Linux虛擬光驅中自帶的服務器軟件包資源來獲取FTP安裝包。
首先將Linux安裝光盤鏡像文件載入虛擬光驅中,查看虛擬光驅設備名稱,命令如下 :
#cd/dev//進入管理設備文件目錄#ll|more//查看虛擬光驅設備名稱
通過以上命令查看到虛擬光驅設備cdrom名稱為sr0,使用mkdir命令創建掛載點,命令如下:
#mkdir/mnt/cdrom//新建掛載目錄
#mount/dev/sr0/mnt/cdrom //使用mount命令掛載光驅設備
進入cdrom目錄下的Package可以找到FTP服務器vsftpd和客戶端ftp軟件包。
通過rpm管道檢查Linux系統中是否已經安裝FTP服務程序,在狀態信息里可以查看到是否有vsftpd信息,具體命令如下:
#rpm-qa|grep vsftpd
使用rpm命令安裝如下:
#rpm-ivh vsftpd-3.0.2-10.el7.x86_64.rpm //安裝vsftpd服務器
#rpm-ivh ftp-0.17-66.el7.x86_64.rpm //安裝FTP客戶端
輸入相應命令啟動和查看相關FTP服務信息,具體命令如下:
#systemctl start vsftp.service和#systemctl enable vsftpd.service
3.1.1 SELinux對FTP服務器的控制
SELinux是為了強化安全訪問Linux系統,增強系統抵御利用尚未公開的漏洞進行攻擊,明確某個進程訪問指定資源,默認SELinux相關變量的值為off,通過修改參數值達到用戶從FTP服務器上傳和下載文件的功能,執行命令如下:
#setsebool-P ftpd_full_access on//將SELinux中的ftpd_full_access設置為on
3.1.2 防火墻對FTP服務器的控制
防火墻為了防止某些遠程訪問對系統的攻擊,通常是禁止某些遠程訪問,通過相應設置開啟遠程訪問FTP服務,執行命令如下:
#firewall-cmd--permanent--zone=public--add-service=ftp //設置ftp服務永久開放
#firewall-cmd--reload //對配置防火墻進行重新加載
通過vsftpd.conf文件的配置,使得FTP服務更加安全可靠并富有個性化,不允許匿名用戶登錄,用戶登錄對話框提示信息為“welcome to you!”,設置用戶沒有任何操作時的空閑時間超過90秒自動斷開連接,最大連接上限為40。
用戶通過FTP服務器獲得穩定優質富有個性化特色服務,通過修改vsftpd.conf配置文件相應內容來實現,執行操作如下:
#vim/etc/vsftpd/vsftpd.conf //打開FTP服務器配置文件vsftpd.conf
對FTP服務器主配置文件vsftpd.conf進行如下設置:
ftpd_banner=welcome to our home! //設置用戶登錄對話框提示信息”welcome to you!”
anonymous_enable=no //禁止通過匿名用戶登錄FTP服務器
max_clients=40 //設置FTP服務器最大訪客上限是40
idle_session_timeout=60 //無操作空閑超時90s自動斷開
保存并退出vsftpd.conf。
#systemctl restart vsftpd.service //vsftpd服務重新啟動
通過匿名方式訪問FTP服務器,權限較低,同時不安全,因此通常使用添加FTP賬號的形式訪問FTP服務器,創建一個既能保證系統安全又能滿足用戶對訪問FTP權限較高實際需求的FTP訪客賬號。
/var/ftp是訪客賬號設置主目錄,創建訪客賬號,訪客賬號必須設置為FTP用戶組,為了避免用戶對Linux系統資源的訪問,要取消訪客登錄Linux系統權限,將其Shell設置為sbin/nologin,這樣訪客只能訪問、共享指定主目錄,保證遠程用戶訪問時系統的安全性。具體執行命令如下:
#useradd-g ftp-d/var/ftp/userftp-s/sbin/nologin userftp //創建FTP用戶userftp
#passwd userftp //設置user用戶密碼
通過修改FTP配置文件vsftp.conf文件中的local_enable=YES配置項,能夠使實體賬號用戶不能登錄FTP服務器。
客戶端可以通過瀏覽器、第三方客戶端、字符界面終端等方式訪問FTP服務器,其中瀏覽器訪問方式和客戶端訪問方式多用于用戶的遠程訪問,字符界面終端多用于系統管理員對服務器的管理。
打開客戶端電腦自帶瀏覽器,在瀏覽器地址欄中輸入之前搭建好的FTP服務器地址:
ftp://userftp:userftp@192.168.94.11
成功登錄FTP服務器后,可以對本地文件上傳、服務器文件下載等文件傳輸操作。通過瀏覽器可以直接將文件拖到本地文件窗口;也可以通過瀏覽器直接將客戶端本地文件拖入到瀏覽器窗口,然后上傳到FTP服務器;在瀏覽器窗口選中要被刪除的文件,然后按del鍵進行刪除。
通過第三方軟件來訪問FTP服務器,第三方客戶端軟件界面友好并且方便操作,FTP客戶端常用軟件有FlashFTP、Cute-FTP、gFTP等,下面介紹gFTP安裝和使用。
首先下載并安裝gFTP,啟動并打開的主界面,在Host中分別輸入FTP服務器的IP地址和Port端口號,然后按照提示信息分別輸入FTP服務器的User用戶名和Pass密碼,最后單擊相應確定按鈕,此時就可以成功登錄FTP服務器。
gFTP右側是遠程登錄FTP服務器文件列表,左側是Local用戶本地文件列表,通過單擊相應位置的左右箭頭可以實現創建目錄、更名目錄、文件下載、上傳、刪除等操作,通過Remote菜單對遠程FTP服務器進行操作,通過Local菜單對客戶端本地文件進行操作。
字符界面終端訪問,需要用戶熟練掌握FTP命令,通過輸入字符命令與遠程服務器進行交互,使用前首先要登錄FTP服務器,執行命令如下:#ftp 192.168.94.11
成功連通FTP服務器后會出現要求輸入FTP用戶名和密碼的提示信息,輸入之前創建的FTP用戶名userftp和密碼userftp,如果用戶名和密碼輸入正確,系統會出現“Login successfully”的提示信息,同時會出現ftp>提示符,表示已經成功登錄FTP服務器,正在等待用戶輸入相應的命令,此時用戶可以根據實際需要完成文件的下載、上傳、查看等功能。
遠程客戶端用戶可以通過FTP服務對Linux操作系統資源進行下載和上傳文件,因為其傳輸穩定、安全可靠,在網絡文件傳輸共享中得到廣泛的應用。本文是基于Linux平臺的FTP服務器設計與實現,首先闡述基于Linux平臺的FTP文件傳輸原理,然后對FTP服務器安裝、安全性配置、管理進行詳細的分析,最后通過瀏覽器、第三方客戶端軟件、字符界面終端等三種方式實現連接訪問架設好的FTP服務器,對FTP服務器用戶體驗和數據安全傳輸方面有了進一步提升。