1. 程式人生 > >阿里雲學生機搭建FTP實戰(日後完善)

阿里雲學生機搭建FTP實戰(日後完善)

機型 1核2G 40SSD 應用映象 LNMP環境 基於CentOS 7.x

**老規矩 科普(不喜直接跳過) **【轉】 我們知道計算機網路具有五層結構: 物理層 鏈路層 網路層 傳輸層 應用層 在每一層都有其特有的協議幫助資料進行通訊交流。比如我們比較熟悉的HTTP協議(超文字傳輸協議)、DNS(域名解析服務)等協議就是應用層的協議。而我們在winscp看到的FTP、SFTP以及SCP也是應用層上的協議。我們可以簡單瞭解一下這些協議: SSH: SecureShell是建立在傳輸層基礎上的安全協議。 FTP(百度百科): FTP 是File Transfer Protocol(檔案傳輸協議)的英文簡稱,而中文簡稱為“文傳協議”。用於Internet上的控制檔案的雙向傳輸。同時,它也是一個應用程式(Application)。基於不同的作業系統有不同的FTP應用程式,而所有這些應用程式都遵守同一種協議以傳輸檔案。在FTP的使用當中,使用者經常遇到兩個概念:“下載”(Download)和"上傳"(Upload)。"下載"檔案就是從遠端主機拷貝檔案至自己的計算機上;"上傳"檔案就是將檔案從自己的計算機中拷貝至遠端主機上。用Internet語言來說,使用者可通過客戶機程式向(從)遠端主機上傳(下載)檔案。

FTP的工作方式: 客戶端向伺服器的FTP埠(21、22)傳送連結請求,伺服器接收連線,建立一條命令鏈路。當需要傳送資料時,客戶端在命令鏈路上用PORT命令告訴伺服器,讓伺服器去連結客戶端。於是客戶端從20埠向客戶端的埠傳送連線請求,建立一條資料鏈路傳送資料。 SFTP: 安全檔案傳輸協議,可以為傳輸檔案提供一種安全的加密方法。SFTP作為SSH的一部分,是一種傳輸檔案到伺服器的安全方式。 SCP: Secure copy用於遠端檔案複製的,並且複製的過程是加密的,資料傳輸使用ssh,並且和使用和ssh相同的認證方法。 簡而言之: FTP 基於TCP來傳輸檔案,明文傳輸使用者資訊和資料。 SFTP 基於SSH來加密傳輸檔案,可靠性高,可斷點續傳。

簡單瞭解一下伺服器: 一般來說,伺服器通過網路對外提供服務。可以通過Intranet對內網提供服務,也可以通過Internet對外提供服務。伺服器的最大特點,就是運算能力須非常強大,在短時間內就要完成所有運算工作,即使是一部簡單的伺服器系統,至少就要有兩顆中央處理器同時工作。

伺服器上有三個環境:伺服器環境、服務語言執行環境以及資料庫環境。比如用PHP進行開發的網站,一般會考慮配置LNMP環境。LNMP是Linux系統下Nginx+MySQL+PHP這種網站伺服器架構。其中,nginx處理靜態資源響應,NGINX處理php程序(NGINX類似Apache),mysql負責資料儲存,redis負責經常需要進行呼叫的臨時性資料。 衡量伺服器的效能一般有CPU數量和記憶體大小。伺服器的CPU決定伺服器的運算速率,記憶體決定了一個程式系統能夠再一定時間記憶體放的變數和資料結構的吞吐。如果記憶體不夠,會導致程式無法完成高效的記憶體資料讀寫。 伺服器會遇到的問題:響應遲緩,我們就要考慮是不是使用者量太多,導致伺服器難以處理。調整伺服器配置或者優化程式碼效能是一種方式,另一種最簡單粗暴的方式就是“加機器”—橫向拓展伺服器。 在使用接觸伺服器時時常會聽到一個詞:均衡負載。那什麼是均衡負載呢? 我們知道,無論如何,一臺伺服器的程序是有限的,我們不能夠無限的把一臺伺服器的cpu增加到64個,或者記憶體增加到1T。因此,均衡負載技術的出現,通過將多臺伺服器組合成一組可以完成相同任務的伺服器,當用戶發出請求時,根據每臺伺服器的執行狀態,讓那些相對富餘的伺服器執行使用者請求

在這裡插入圖片描述 2.接入root使用者 A. 輸入rpm -qa|grep vsftpd 檢視是否安裝了ftp,我安裝的阿里雲預設應用映象是沒有,如果有的話 輸入rpm -e vsftpd 進行解除安裝 B. 然後安裝 vsftpd : yum -y install vsftpd。(vim也要安) C. 設定為開機自啟:chkconfig vsftpd on。 3.vsftpd軟體的使用 使用vsftpd軟體,主要包括如下幾個命令: 啟動ftp:service vsftpd start 停止ftp:service vsftpd stop 重啟ftp:service vsftpd restart

vsftpd的配置 ftp的配置檔案主要有三個,在centos中位於/etc/vsftpd/目錄下,分別是: ftpusers 該檔案用來指定那些使用者不能訪問ftp伺服器。 user_list 該檔案用來指示的預設賬戶在預設情況下也不能訪問ftp vsftpd.conf vsftpd的主配置檔案 4.vim編輯 /etc/vsftpd/vsftpd.conf (i 進入編輯 Esc :wq退出編輯並儲存) 在這裡插入圖片描述 在這裡插入圖片描述

使用者登入控制: anonymous_enable=YES,允許匿名使用者登入。 no_anon_password=YES,匿名使用者登入時不需要輸入密碼。 local_enable=YES,允許本地使用者登入。 deny_email_enable=YES,可以建立一個檔案儲存某些匿名電子郵件的黑名單,以防止這些人使用Dos攻擊。 banned_email_file=/etc/vsftpd/banned_emails,儲存電子郵件黑名單的目錄(預設)

使用者許可權控制: write_enable=YES,開啟全域性上傳 local_umask=022, 設定本地使用者預設檔案掩碼022# FTP上本地的檔案許可權,預設是077,不過vsftpd安裝後的配置檔案裡預設是022 anon_upload_enable=YES,允許匿名使用者上傳,當然要在write_enable=YES的情況下。同時必須建立一個允許ftp使用者讀寫的目錄。 anon_mkdir_write_enable=YES,允許匿名用花建立目錄 chown_uploads=YES,匿名使用者上傳的檔案屬主轉換為別的使用者,一般建議為root。 chown_username=whoever,改此處的whoever為要轉換的屬主,建議root chroot_list_enable=YES,用一個列表來限定哪些使用者只能在自己目錄下活動。 chroot_list_enable=/etc/vsftpd/chroot_list,指定使用者列表檔案 nopriv_user=ftpsecure,指定一個安全賬戶,讓ftp完全隔離和沒有特權的賬戶 其他的建議不要配置。 allow_writeable_chroot=YES # 如果啟用了限定使用者在其主目錄下需要新增這個配置,解決報錯 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

使用者連線和超時設定: idle_session_timeout=600,預設的超時時間 data_connection_timeout=120,設定預設資料連線的超時時間

4.伺服器日誌和歡迎資訊 dirmessage_enable=YES,允許為配置目錄顯示資訊 ftpd_banner=Welcome to blah FTP service. ftp的歡迎資訊 xferlog_enable=YES 開啟日誌記錄功能 xferlog_file=/var/log/xferlog 日誌記錄檔案的位置