linux ftp服务器构建
?
今天有點心血來潮,突然有了個構建ftp服務器的想法,搞了小兩個小時,基本上算完工了,其實個人認為沒有什么大用,不過就是在網上可以通過瀏覽器下載文件而已。下面主要介紹一下具體搭建的過程。
步驟一: 安裝 vsftpd
運行以下命令進入/etc/vsftpd目錄,并查看該目錄下的文件。
試用
cd /etc/vsftpd ls說明
- /etc/vsftpd/vsftpd.conf?是 vsftpd 的核心配置文件。
- /etc/vsftpd/ftpusers?是黑名單文件,此文件里的用戶不允許訪問 FTP 服務器。
- /etc/vsftpd/user_list?是白名單文件,此文件里的用戶允許訪問 FTP 服務器
試用
systemctl enable vsftpd.service試用
systemctl start vsftpd.service試用
netstat -antup | grep ftp步驟二: 配置 vsftpd
vsftpd 安裝后默認開啟了匿名訪問 FTP 服務器的功能。使用匿名訪問,您無需輸入用戶名密碼即可登錄 FTP 服務器,但沒有權限修改或上傳文件。
本教程介紹了以下兩種配置 vsftpd 的方法,并提供了相關的參數說明,您可以根據具體需要進行參考。
- 配置匿名用戶上傳文件權限
- 配置本地用戶登錄
配置匿名用戶上傳文件權限
匿名訪問FTP服務器是一種不安全的訪問模式,任何人無需密碼驗證就可以登錄到FTP服務器,這種模式一般只用來保存不重要的公開文件,不推薦在生產環境中使用。如果您需要配置匿名用戶上傳文件的權限,可以參考以下步驟配置:
按Esc鍵退出編輯模式,然后輸入:wq保存并退出文件
試用
chmod o+w /var/ftp/pub/ systemctl restart vsftpd.service?
配置本地用戶登錄
本地用戶登錄是指用戶使用 Linux 操作系統的賬號和密碼登錄 FTP 服務器。
vsftpd 安裝后默認只支持匿名訪問 FTP 服務器,如果您試圖使用 Linux 操作系統中的賬號登錄服務器,將會被 vsftpd 服務拒絕。您可以參考以下步驟配置 vsftpd 服務,以使用Linux賬號和密碼訪問FTP服務器。
試用
useradd ftptest試用
passwd ftptest試用
mkdir /var/ftp/test試用
chown -R ftptest:ftptest /var/ftp/testFTP服務器可以配置為主動模式或被動模式。
- 主動模式下,客戶端向服務端發送數據端口的信息,由服務端主動連接客戶端發送的數據端口。配置FTP為主動模式的參數如下:
試用
#禁止匿名登錄FTP服務器 anonymous_enable=NO #允許本地用戶登錄FTP服務器 local_enable=YES #設置本地用戶登錄后所在的目錄 local_root=/var/ftp/test #全部用戶被限制在主目錄 chroot_local_user=YES #啟用例外用戶名單 chroot_list_enable=YES #指定例外用戶列表,這些用戶不被鎖定在主目錄 chroot_list_file=/etc/vsftpd/chroot_list#配置其他參數 allow_writeable_chroot=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_std_format=YES listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES - 被動模式下,服務端開啟并發送數據端口的信息給客戶端,由客戶端連接服務端開啟的數據端口,服務端被動接受連接。在被動模式下,您需要配置服務端可以開啟的數據端口范圍。配置FTP為被動模式的參數如下:
試用
#禁止匿名登錄FTP服務器 anonymous_enable=NO #允許本地用戶登錄FTP服務器 local_enable=YES #設置本地用戶登錄后所在目錄 local_root=/var/ftp/test #全部用戶被限制在主目錄 chroot_local_user=YES #啟用例外用戶名單 chroot_list_enable=YES #指定例外用戶列表,這些用戶不被鎖定在主目錄 chroot_list_file=/etc/vsftpd/chroot_list #開啟被動模式 pasv_enable=YES #FTP服務器公網IP pasv_address=<FTP服務器公網IP> #設置被動模式下,建立數據傳輸可使用port范圍的最小值 pasv_min_port=port number #設置被動模式下,建立數據傳輸可使用port范圍的最大值 pasv_max_port=port number#配置其他參數 local_umask=022 dirmessage_enable=YES xferlog_enable=YES xferlog_std_format=YES tcp_wrappers=YES allow_writeable_chroot=YES listen=YES listen_ipv6=NO pam_service_name=vsftpd userlist_enable=YES說明?建議您把端口范圍設在比較高的一段范圍內,比如50000-50010,有助于提高訪問FTP服務器的安全性。
說明?如果沒有例外用戶也必須要有?chroot_list文件,內容可為空。
試用
systemctl restart vsftpd.servicevsftpd.conf 的配置文件參數說明
運行命令cat /etc/vsftpd/vsftpd.conf查看配置文件內容。
用戶登錄控制:
| anonymous_enable=YES | 接受匿名用戶 |
| no_anon_password=YES | 匿名用戶login時不詢問口令 |
| anon_root=(none) | 匿名用戶主目錄 |
| local_enable=YES | 接受本地用戶 |
| local_root=(none) | 本地用戶主目錄 |
用戶權限控制:
| write_enable=YES | 可以上傳(全局控制) |
| local_umask=022 | 本地用戶上傳文件的umask |
| file_open_mode=0666 | 上傳文件的權限配合umask使用 |
| anon_upload_enable=NO | 匿名用戶可以上傳 |
| anon_mkdir_write_enable=NO | 匿名用戶可以建目錄 |
| anon_other_write_enable=NO | 匿名用戶修改刪除 |
| chown_username=lightwiter | 匿名上傳文件所屬用戶名 |
步驟三: 設置安全組
搭建好 FTP 站點后,您需要在實例安全組的入方向添加放行下列 FTP 端口的規則。
- FTP 為主動模式時:端口21。
- FTP 為被動模式時:端口21,以及配置文件/etc/vsftpd/vsftpd.conf中參數pasv_min_port和pasv_max_port之間的所有端口。
添加安全組規則的具體步驟,請參見添加安全組規則。
步驟四: 客戶端測試
您可以通過 FTP 客戶端或瀏覽器訪問 FTP 服務器進行測試。本教程以windows自帶的IE(Internet Explorer)瀏覽器為例,分別為您介紹 FTP 服務器配置為主動模式或被動模式時的訪問步驟。
FTP服務器為主動模式
FTP服務器為被動模式
說明?使用瀏覽器訪問 FTP 服務器出錯時,建議您清除瀏覽器緩存后再嘗試。
后續操作
您可以參考?安全加固方案?對 FTP 服務進行安全加固。
總結
以上是生活随笔為你收集整理的linux ftp服务器构建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新松机器人电气三天考核_比技能更比匠心,
- 下一篇: linux常用关机、重启、注销命令