ECS訓練營學習第一天(筆記)—— FTP伺服器的搭建
一、 遠端連接配接ECS伺服器
- MAC系統可以通過Terminal來執行下述操作,Win10之前的Windows系統使用者請通過ssh -V來檢測系統是否安裝了ssh工具(請務必注意-V必須是大寫),Win10使用者可以直接通過Win+X來選擇Power Shall來執行下述操作。
- Win10可以通過Power Shall的連接配接指令 ssh username@ipaddress 來連接配接ECS伺服器(username是你的伺服器的使用者名,ipaddress是你伺服器的公網IP或者說是彈性IP)。
- 之後會彈出一行資訊詢問是否繼續,直接輸入yes進行下一步。
- 接下來我們要輸入我們的伺服器登入密碼,需要注意的是輸入密碼之後是不會顯示密碼的。(請妥善保管密碼和自己伺服器的公網IP,不然可能會出現伺服器被人無限重新開機,删庫等可怕的情況發生,是以請妥善保管自己的密碼)
二、 安裝vsftp
- 輸入
即可開始安裝vsftp成功後進行下一步
yum install -y vsftpd
設定FTP開機啟動
systemctl enable vsftpd.service
啟動FTP服務
systemctl start vsftpd.service
來檢視FTP服務監聽的端口 出現該界面則FTP,監聽的端口号為21。此時,vsftp末日已開啟匿名通路功能,我們不需要輸入密碼就可以登入我們的FTP伺服器,但是此時我們沒有修改或上傳檔案的權限。
netstat -antup | grep ftp
三、 配置vsftp
vsftpd(very secure FTP
daemon)是一款在Linux發行版中最受推崇的FTP伺服器。vsftpd支援匿名通路和本地使用者模式兩種通路方式。匿名通路方式任何使用者都可以通路搭建的FTP服務;本地使用者模式隻支援添加的本地使用者通路搭建的FTP服務。
匿名使用者模式和本地使用者模式隻能選擇一種。 匿名使用者模式:
來修改配置檔案vsftpd.conf。
vim /etc/vsftpd/vsftpd.conf
- 按 i 鍵進入編輯模式,将匿名上傳權限
的注釋解開。(解開注釋隻需删除本行指令前的的#)
anon_upload_enable=YES
- 按ESC鍵推出編輯模式,輸入:wq儲存并推出vim編輯界面。
更改/var/ftp/pub目錄的權限,為FTP使用者添加寫權限。
chmod o+w /var/ftp/pub/
來重新開機FTP服務 本地使用者模式:
systemctl restart vsftpd.service
來為我們的FTP服務建立一個Linux使用者(使用者名随自己喜歡)
adduser username
來為我們的使用者設定密碼(後面的XXXXXX是密碼部分)
passwd XXXXXX
建立一個供FTP服務使用的檔案目錄
mkdir /var/ftp/test
來更改/var/ftp/test目錄的擁有者為ftptest。
chown -R ftptest:ftptest /var/ftp/test
- 修改vsftp.conf配置檔案 配置為主動模式執行以下指令:
/etc/vsftpd/vsftpd.conf #禁止匿名登入FTP伺服器 sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #監聽IPv4 sockets sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #關閉監聽IPv6 sockets sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部使用者被限制在主目錄 sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #啟用例外使用者名單 sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外使用者清單檔案,清單中的使用者不被鎖定在主目錄 echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #設定本地使用者登入後所在的目錄 ```配置為被動模式輸入以下指令: ```c sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登入FTP伺服器 sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #監聽IPv4 sockets sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #關閉監聽IPv6 sockets sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部使用者被限制在主目錄 sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #啟用例外使用者名單 sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外使用者清單檔案,清單中的使用者不被鎖定在主目錄 echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #設定本地使用者登入後所在的目錄 echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #開啟被動模式 echo "pasv_address=<FTP伺服器公網IP位址>" >> /etc/vsftpd/vsftpd.conf #本教程中為ECS伺服器彈性IP echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #設定被動模式下,建立資料傳輸可使用的端口範圍的最小值 echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #設定被動模式下,建立資料傳輸可使用的端口範圍的最大值
來在/etc/vsftpd目錄下建立chroot_list檔案,并在檔案中寫入例外使用者名單。(沒有路外使用者也必須建立此檔案,内容可以為空)
vim /etc/vsftpd/chroot_list
- 重新開機FTP服務 四、 用戶端測試
- 打開Chrom浏覽器,在位址欄中輸入ftp://:FTP端口,FTP伺服器公網IP位址為ECS伺服器的彈性IP位址。例如:
。
ftp://139.0.0.1:21
- 在彈出的對話框中,輸入使用者名和密碼。
- 登入成功之後我們就可以此時可對FTP檔案進行相應權限的操作。
疑惑與思考
一、 為什麼指令是yum -install而不是apt -install?
答:Linux 系統基本上分兩大類:RedHat 系列:Redhat、Centos、Fedora 等;Debian
系列:Debian、Ubuntu 等。 他們的差別如下(隻寫了部分比較關鍵的):
對比 | rpm | yum | dpkg | apt |
---|---|---|---|---|
系列 | RedHat系 | Debian系 | ||
差別 | 包安裝工具 | 依賴管理工具 | ||
查詢已安裝 | rpm -qa | yum list installed | dkpg -l | apt list –installed |
安裝 | rpm -i package.rpm 或 rpm –ivh | yum install -y | dpkg -i package.deb | apt-get install package |
更新 | rpm –U software.rpm | yum update | apt upgrade | |
移除軟體包 | rpm -e module1… | yum -remove | dpkg -r package | apt remove package |
二、為什麼FTP服務的端口号為21?
答:FTP的端口21是用來下載下傳的,20是用來上傳的。進行FTP檔案傳輸中,用戶端首先連接配接到FTP伺服器的21端口,進行使用者的認證,認證成功後,要傳輸檔案時,伺服器會開一個端口為20來進行傳輸資料檔案。21端口主要用于FTP(File
Transfer Protocol,檔案傳輸協定)服務,FTP服務主要是為了在兩台計算機之間實作檔案的上傳與下載下傳,一
台計算機作為FTP用戶端,另一台計算機作為FTP伺服器,可以采用匿名(anonymous)登入和授權使用者名與密碼登入兩種方式登入FTP伺服器。
收獲
一、 首先來到訓練營的第一天學到了FTP伺服器如何搭建,雖然阿裡這邊給了不少的教程,但是搭建成功的那一刻我還是很有成就感的,畢竟這是我第一次搭建屬于自己的FTP伺服器,這種成就感難以用語言來形容。
二、FTP根目錄一般為隻讀,如需上傳檔案,需要建一個可讀寫的子目錄,當然vsftpd預設會建一個pub/目錄。其次,make
install之後,看看/etc/vsftpd/目錄下配置檔案是否已經存在,如果是,那麼手動複制就不要做了。
三、複習了Linux操作指令,雖然在此之前就學習過Linux的操作指令,但是這無疑是一次複習與實操的過程,鞏固了以前所學習過的知識,我想這應該也算是今天學習的收獲吧。(常用的Linux指令可以在B站等視訊網站找到相關教程)
打卡
