FTP---安裝與配置

一、FTP的安裝

#安裝
yum install -y vsftpd

#設置開機啓動
systemctl enable vsftpd.service

#啓動
systemctl start vsftpd.service

#中止
systemctl stop vsftpd.service

#查看狀態
systemctl status vsftpd.service

建立FTP使用的用戶

useradd -s /sbin/nologin -d /var/www/html ftpuser
passwd ftpuser

參數說明 :
useradd
-d:指定用戶登入時的主目錄,替換系統默認值/home/<用戶名>
-s:指定用戶登入後所使用的shell。默認值爲/bin/bash。
參考地址:# Linux命令---useraddhtml

passwd 是修改用戶密碼linux

相關命令:
usermod -s /sbin/nologin ftpuser 修改用戶登入後所使用的shell
usermod -d /var/www/html ftpuser 修改用戶登入時的主目錄
userdel -r ftpuser 刪除指定用戶 -r 參數是指刪除用戶所有文件shell

二、配置FTP 

#打開配置文件
vi /etc/vsftpd/vsftpd.conf

這裏要關注的幾個配置項
1.不容許匿名訪問安全

anonymous_enable=NO

2.是否容許使用本地賬戶進行FTP用戶登陸驗證bash

local_enable=YES/NO

本地帳號和虛擬帳號區別主要在於可否登陸系統,帳號有權限能夠登陸操做系統的爲本地帳號,而不能登陸操做系統只能使用某些服務登陸的爲虛擬系統。服務器

  1. userlist_enable , userlist_deny 和 名單文件 /etc/vsftpd/user_list
userlist_enable=YES
userlist_deny=NO

當userlist_enable=YES時,userlist_deny=YES時:user_list是一個黑名單,即:全部出如今名單中的用戶都會被拒絕登入;
當userlist_enable=YES時,userlist_deny=NO時:user_list是一個白名單,即:只有出如今名單中的用戶纔會被准許登入(user_list以外的用戶都被拒絕登入);ide

參考:vsftpd中關於ftpusers和user_list兩個文件的說明以及vsftpd.conf中的userlist_enable和userlist_deny兩個配置項的解釋測試

按上面得設置,則須要在名單文件 /etc/vsftpd/user_list中添加ftpuser(一行一個用戶名),ftpuser才能夠登錄。阿里雲

4.用戶不能離開主目錄spa

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_local_user
是否將全部用戶限制在主目錄,YES爲啓用 NO禁用.(該項默認值是NO,即在安裝vsftpd後不作配置的話,ftp用戶是能夠向上切換到要目錄以外的)
chroot_list_enable
是否啓動限制用戶的名單 YES爲啓用 NO禁用(包括註釋掉也爲禁用)
chroot_list_file=/etc/vsftpd/chroot_list
是否限制在主目錄下的用戶名單,至因而限制名單仍是排除名單,這取決於chroot_local_user的值。

參考:vsftpd 配置:chroot_local_user與chroot_list_enable詳解

按上面得設置,則須要在名單文件 /etc/vsftpd/chroot_list中添加ftpuser(一行一個用戶名),ftpuser纔會被如今在主目錄中,不容許離開。

5.用戶的主目錄寫權限
從2.3.5以後,vsftpd加強了安全檢查,若是用戶被限定在了其主目錄下,則該用戶的主目錄不能再具備寫權限了!若是檢查發現還有寫權限,就會報該錯誤。

要修復這個錯誤,你能夠在vsftpd的配置文件中增長下列項:

allow_writeable_chroot=YES

還有一種方法:能夠用命令 chmod a-w /var/www/html 去除用戶主目錄的寫權限

6.基本配置以上選項便可了,也能夠查看詳細配置介紹

常見問題

1.500 OOPS: vsftpd: refusing to run with writable root inside chroot() 錯誤,解決請參考配置第5項;

2.530 Login incorrect錯誤 :

  • 用戶沒權限,先查看 userlist_enable userlist_deny 得設置也就是配置第3項;
  • 系統環境默認/etc/shells文件有沒有/sbin/nologin這個項,沒有請添加上,由於這裏配置這一項爲用戶登錄後使用的shell;
  • 確保FTP用戶密碼正確,能夠修改密碼後測試;
  • 服務器防火牆須要開放21端口(阿里雲主機記得控制檯也須要開放端口);
  • Selinux緣由,能夠臨時關閉setenforce 0,發現能夠正常鏈接了,修改/etc/sysconfig/selinux文件能夠永久地禁用它。將文件中 SELINUX=enforcing 修改成:SELINUX=disabled;
相關文章
相關標籤/搜索