首先網絡、防火牆方面的基本要求要知足,好比靜態ip、防火牆是否能夠經過ftp的流量。服務器
就能夠開始搭建ftp服務器了,咱們使用vsftpd這款ftp服務軟件。(文中包含匿名訪問及用戶驗證的相關配置,基於虛擬用戶的配置將會在下一篇寫)網絡
-----安裝vsftpd並匿名訪問:併發
一、準備好vsftpd軟件的安裝包(系統盤裏也有),安裝vsftpd服務。app
安裝之後執行systemctl start vsftpd
啓動vsftpd就能夠匿名訪問ftp服務器了,雖然說匿名,不過也是有相應的系統帳號 「 ftp 」 。默認匿名用戶的ftp根目錄是/var/ftp/
,只有讀取的權限,並且本地/var/ftp/目錄對ftp帳號要有相應的權限)如若匿名用戶須要更大的權限,能夠更改 vsftpd 服務的配置文件tcp
二、打開vsftpd服務的配置文件ide
三、爲了方便預覽,我把大多數註釋的內容都刪除了日誌
四、如下爲匿名用戶權限最大的配置文件信息:code
匿名用戶常見配置項的含義說明:orm
- anonymous_enable=YES:是否容許匿名訪問;
- anon_umask=022:設置匿名用戶所上傳文件的默認權限掩碼值(反掩碼);
- anon_root=/var/ftp:設置匿名用戶的FTP根目錄;
- anon_upload_enable=YES;是否容許匿名用戶上傳文件;
- anon_mkdir_write_enable=YES:是否容許匿名用戶由建立目錄的寫入權限;
- anon_other_write_enable=YES:是否容許匿名用戶有其餘寫入權限,如對文件更名、覆蓋及刪除文件等;
-----基於用戶驗證的FTP服務:blog
如下是須要用戶驗證的 ftp 服務配置文件,配置文件的默認路徑爲/etc/vsftpd/vsftpd.conf
以上配置文件最終的效果是,每一個系統用戶均可登陸ftp服務器,而且權限最大,ftp的默認根目錄爲系統用戶的宿主目錄下。(對於本地系統用戶設置權限,直接更改用戶宿主目錄的權限更方便些)
關於本地用戶常見的配置項及含義說明:
- local_enable=YES:是否容許本地用戶訪問;
- local_umask=022:設置本地用戶所上傳文件的默認權限掩碼值(反掩碼);
- local_root=/var/ftp:設置本地用戶的FTP根目錄(默認爲用戶的宿主目錄);
- chroot_local_user=YES:是否將FTP本地用戶禁錮在宿主目錄中;
- allow_writeable_chroot=YES:容許被限制用戶的主目錄具備寫權限;
- local_max_rate=0:限制本地用戶的最大傳輸速率(0爲無限制),單位爲字節/秒(B/s)
在/etc/vsftpd/目錄下還有兩個配置文件ftpusers
和userlist
- ftpusers文件:此文件中列出的用戶將禁止登陸vsftpd服務器。默認包含root、bin、daemon等用於系統運行的特殊用戶;
-
user_list文件:此文件中包含的用戶可能被禁止,可能被容許,具體取決於主配置文件vsftpd.conf中的設置,當存在「userlist——enable=YES」時,user_list列表文件方可生效,若繼續指定「userlist_deny=YES」,則功能與ftpusers文件同樣,表示禁止此列表中的用戶登陸;若指定「userlist_deny=NO」,則僅容許列表中的用戶登陸。
-----關於ftp全部配置項的詳細解釋
-----關於匿名用戶:
- anonymous_enable=YES:是否容許匿名訪問;
- anon_umask=022:設置匿名用戶所上傳文件的默認權限掩碼值(反掩碼);
- anon_root=/var/ftp:設置匿名用戶的FTP根目錄;
- anon_upload_enable=YES;是否容許匿名用戶上傳文件;
- anon_mkdir_write_enable=YES:是否容許匿名用戶由建立目錄的寫入權限;
- anon_other_write_enable=YES:是否容許匿名用戶有其餘寫入權限,如對文件更名、覆蓋及刪除文件等;
-----關於本地用戶:
- local_enable=YES:是否容許本地用戶訪問;
- local_umask=022:設置本地用戶所上傳文件的默認權限掩碼值(反掩碼);
- local_root=/var/ftp:設置本地用戶的FTP根目錄(默認爲用戶的宿主目錄);
- chroot_local_user=YES:是否將FTP本地用戶禁錮在宿主目錄中;
- allow_writeable_chroot=YES:容許被限制用戶的主目錄具備寫權限;
- local_max_rate=0:限制本地用戶的最大傳輸速率(0爲無限制),單位爲字節/秒(B/s)
-----關於全局配置:
- listen=NO: 是否以獨立運行的方式監聽服務;
- listen_address=0.0.0.0:設置監聽f t p服務的ip地址;
- listen_port=21:設置監聽ftp服務的端口號;
- write_enable=YES:啓用任何形式的寫入權限,(如上傳、刪除文件等)都須要開啓此項;
- download_enable=YES:是否容許下載文件(創建僅限於瀏覽、上傳的FTP服務器時,可將此項設置爲「NO」);
- dirmessage_enable=YES:用戶切換進入目錄時顯示 「.message」文件(若是已存在)的內容;
- xferlog_enable=YES:啓用xferlog日誌,默認記錄到 /var/log/xferlog;
- xferlog_std_format=YES:啓用標準的xferlog日誌格式,若禁用此項,將使用vsftpd本身的日誌格式;
- connect_from_port_20=YES:容許服務器主動模式(從20端口創建數據鏈接);
- pasv_enable=NO:禁止被動模式鏈接;默認容許被動模式鏈接;
- pasv_max_port=24600:設置用於被動模式的服務器最大端口號;
- pasv_min_port=24500:設置用於被動模式的服務器最大端口號;
- pam_service_name=vsftpd.vu:設置用於用戶認證的PAM文件位置(/etc/pam.d/目錄中對應的文件名);
- userlist_enable=YES:是否啓用userl_ist用戶列表文件;
- userlist_deny=YES:是否禁用user_list列表文件中的用戶帳號;
- max_clients=0:最多容許多少個客戶端同時鏈接(0爲無限制);
- max_per_ip=0:對來自同一個ip地址的客戶端,最多容許多少個併發鏈接(0爲無限制);
- tcp_wrappers=YES:是否啓用tcp_wrappers主機訪問控制;
-----關於虛擬用戶的配置項:
-
- guest_username=test:指定映射的系統用戶名稱;
- guest_enable=YES:是否啓用虛擬用戶;
- allow_writeable_chroot=容許被限制用戶的主目錄具備寫權限(此項必須寫入,不然可能會報錯)
- anon_world_readable_only=NO:容許用戶下載目錄內容
- anon_other_write_enable=YES:容許匿名用戶有其餘寫入權限,如重命名、覆蓋及刪除文件等;
- user_config_dir=/etc/vsftpd/vusers_dir:指定虛擬用戶獨立的配置文件目錄;