Linux下FTP伺服器搭建與配置
阿新 • • 發佈:2018-12-20
環境檢查
[[email protected] ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
[[email protected] ~]# uname -r
2.6.32-696.el6.x86_64
[[email protected] ~]# getenforce
Disabled
[[email protected] ~]# service iptables status
iptables:未執行防火牆。
##安裝vsftpd
yum install -y vsftpd
##簡化配置檔案
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.ori
grep -Ev '^#|^$' /etc/vsftpd/vsftpd.conf.ori > /etc/vsftpd/vsftpd.conf
vsfpt使用者配置
- vsfpt使用者有三種模式
- 匿名使用者(anonymous免密碼登入)
- 本地使用者(FTP伺服器中的系統使用者)
- 虛擬使用者(基於本地使用者)
匿名使用者登入(無需配置)
service vsftpd start
輸入anonymous按兩次回車即可,不需要密碼
本地使用者(以root使用者為例)
- 修改配置檔案
vim /etc/vsftpd/vsftpd.conf
- 修改 ftpusers
vim /etc/vsfptd/ftpusers
註釋掉root使用者,ftpusers相當於黑名單,檔案裡也有解釋
- 修改user_list
新增root使用者,檔案裡預設有系統自帶使用者,這個檔案相當於白名單,如果ftpusers和user_list同時存在root時那麼root將不被允許登入,如果系統中新增的使用者(Tom)登入ftp的話只需在ftpusers中新增重啟服務即可
虛擬使用者
- 修改配置檔案
vim /etc/vsftpd/vsftpd.conf
在結尾加上四行
- 設定FTP虛擬使用者賬號和密碼
vim /etc/vsfptd/vusers
奇數行是使用者名稱,偶數行是密碼
- 利用db_load將檔案轉換成db格式
db_load -T -t hash -f /etc/vsftpd/vusers /etc/vsftpd/vusers.db
- 修改vsfpt的pam校驗
vim /etc/pam.d/vsftpd
64位系統用
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vusers
32位系統使用
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vusers
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vusers
- 新增FTP宿主使用者
useradd ftpusers -g ftp -d /var/home -s /sbin/nologin
- 虛擬使用者配置
mkdir /etc/vsftpconf
touch /etc/vsftpconf/jack
touch /etc/vsftpconf/alex
- 配置使用者檔案
vim /etc/vsftpconf/jack
多使用者的話除了local_root不一樣外其他的都一樣
- 重啟服務
service vsftpd restart
vsftpd.conf引數解釋
引數 | 解釋 |
---|---|
anonymous_enable | 是否允許匿名使用者登入 |
local_enable | 是否允許本地使用者登入,主要對虛擬使用者的宿主使用者,如果設定NO那麼虛擬使用者無法登入 |
write_enable | 設定可以進行寫操作 |
local_umask | 設定上傳後文件的許可權掩碼,預設022 |
anon_upload_enable | 匿名使用者上傳,預設NO |
anon_mkdir_write_enable | 匿名使用者建立目錄,預設NO |
dirmessage_enable=YES | 設定開啟日誌記錄功能 |
connect_from_port_20=YES | 設定埠20進行資料連線 |
chown_uploads=NO | 設定禁止上傳檔案更改宿主 |
xferlog_file | Vsftpd的服務日誌儲存路徑。該檔案預設不存在。必須要手動touch出來,並且由於這裡更改了Vsftpd的服務宿主使用者為手動建立的Vsftpd。必須注意給與該使用者對日誌的寫入許可權,否則服務將啟動失敗。 |
xferlog_std_format=YES | 設定日誌使用標準的記錄格式 |
idle_session_timeout=600 | 設定空閒連線超時時間,系統預設使用。將具體數值留給每個具體使用者具體指定,當然如果不指定的話,還是使用這裡的預設值600,單位秒。 |
data_connection_timeout=120 | 設定單次最大連續傳輸時間,這裡使用預設。將具體數值留給每個具體使用者具體指定,當然如果不指定的話,還是使用這裡的預設值120,單位秒 |
nopriv_user | 設定支撐Vsftpd服務的宿主使用者為手動建立的Vsftpd使用者。一旦做出更改宿主使用者後,必須注意一起與該服務相關的讀寫檔案的讀寫賦權問題。比如日誌檔案就必須給與該使用者寫入許可權等。 |
async_abor_enable=YES | 設定支援非同步傳輸功能 |
ascii_upload_enable=YES | 設定支援ASCII模式的上傳功能 |
ascii_download_enable=YES | 設定支援ASCII模式的下載功能 |
ftpd_banner | 設定Vsftpd的登陸標語 |
chroot_list_enable | 使用者是否可以登出自己的FTP主目錄,預設NO |
ls_recurse_enable | 使用者登陸FTP後使用"ls -R"的命令。該命令會對伺服器效能造成巨大開銷。如果該項被允許,那麼擋多使用者同時使用該命令時將會對該伺服器造成威脅,預設NO |
listen | 設定該Vsftpd服務工作在StandAlone模式下。順便展開說明一下,所謂StandAlone模式就是該服務擁有自己的守護程序支援,在ps -A命令下我們將可用看到vsftpd的守護程序名。如果不想工作在StandAlone模式下,則可以選擇SuperDaemon模式,在該模式下 vsftpd將沒有自己的守護程序,而是由超級守護程序Xinetd全權代理,與此同時,Vsftp服務的許多功能將得不到實現。 |
userlist_enable | 設定userlist_file中的使用者是否可以使用FTP(白名單),如果在ftpusers中用其中使用者將不被允許使用 |
tcp_wrappers | 設定支援TCP Wrappers |
guest_enable | 是否啟用虛擬使用者 |
guest_username | 設定虛擬使用者的宿主使用者 |
virtual_use_local_privs | 設定虛擬使用者的許可權符合他們的宿主使用者 |
user_config_dir | 設定虛擬使用者個人Vsftp的配置檔案存放路徑。也就是說,這個被指定的目錄裡,將存放每個Vsftp虛擬使用者個性的配置檔案,一個需要注意的地方就是這些配置檔名必須和虛擬使用者名稱相同。 |
pam_service_name | 設定PAM服務下Vsftpd的驗證配置檔名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd檔案配置 |