Linux安裝vsftpd總結


我使用的是CentOS6安裝的vsftpd,轉載請注明出處,以下是我的記錄:

#查看是否已經安裝了vsfptd

vsftpd -v

#安裝

yum -y install vsftpd

#創建:chroot_list 文件

touch /etc/vsftpd/chroot_list

 

----- 配置虛擬用戶登錄 -----

首先安裝 FTP 虛擬用戶需要用到的軟件及認證模塊

yum install pam* db4* --skip-broken –y

#創建一個ftpusers.txt文件

vim /etc/vsftpd/ftpusers.txt

#寫入賬號及密碼,用來保存虛擬用戶賬號及密碼信息,格式是:比如第1行為賬號,第2行就是秘密,依此類推:

test1
123456
test2
654321

注意:如果直接復制以上賬號密碼會自動在后面添加空格,導致登錄不成功。

#修改權限:

chmod 700 /etc/vsftpd/ftpusers.txt

#生成虛擬用戶數據庫文件:

需要注意的是,以后對虛擬用戶的增刪操作完之后需要再次執行此命令,使其生成新的數據文件。

db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db

#修改權限:

chmod 700 /etc/vsftpd/vsftpd_login.db

#設置PAM驗證文件,並制定虛擬用戶數據庫文件進行讀取
對原驗證文件備份后進行更改:

cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.back

#修改/etc/pam.d/vsftpd文件:

vim /etc/pam.d/vsftpd

在最頂部添加以下兩項:

auth       sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login
account    sufficient   pam_userdb.so db=/etc/vsftpd/vsftpd_login

#創建虛擬用戶配置目錄,用來單獨配置不同虛擬用戶訪問不同目錄等。

mkdir /etc/vsftpd/vsftpd_user_conf

#創建一個與虛擬用戶同名稱的文件,用來單獨配置這個虛擬用戶的訪問目錄。

vim /etc/vsftpd/vsftpd_user_conf/test1

#寫入配置內容:

local_root=/home/www/test1
write_enable=YES
anon_world_readable_only=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

#創建test1用戶訪問的目錄:

mkdir -p /home/www/test1

#創建 vsftpd 映射本地用戶:

所有的 FTP 虛擬用戶需要使用一個系統用戶,這個系統用戶不需要密碼,也不需要登錄。 主要用來做虛擬用戶映射使用。

useradd -d /home/www -s /sbin/nologin ftpuser

#設置權限:

chown -R ftpuser:ftpuser /home/www

#備份vsftpd.conf文件:

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back

#清空vsftpd.conf內容:

cat /dev/null > /etc/vsftpd/vsftpd.conf

#修改

vim /etc/vsftpd/vsftpd.conf

寫入以下內容:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
data_connection_timeout=6
listen=YES
listen_port=21
allow_writeable_chroot=YES
local_root=/home/www
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_enable=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user_list
pasv_enable=YES
pasv_min_port=10240
pasv_max_port=10260
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftpuser
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf
reverse_lookup_enable=NO

#然后在防火牆規則(CentOS6)

vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 20:21 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 10240:10260 -j ACCEPT

CentOS7

systemctl start firewalld
firewall-cmd --zone=public --add-port=20-21/tcp --permanent
firewall-cmd --zone=public --add-port=10240-10260/tcp --permanent
firewall-cmd --reload

 

#如果用的雲服務器,還要在雲服務器在安全組設置開放端口:20-21和10240-10260

#剛安裝的vsftpd默認是沒有啟動的。全部配置好了之后啟動以下vsftpd。

#vsftpd開啟、關閉、重啟服務(以下只適合CentOS6及CentOS6以下版本,CentOS7命令不同

設置開機自啟:chkconfig vsftpd on                                        (CentOS7使用systemctl enable vsftpd)

啟動:/etc/init.d/vsftpd start 或者 service vsftpd start             (CentOS7使用systemctl start vsftpd)

停止:/etc/init.d/vsftpd stop 或者 service vsftpd stop              (CentOS7使用systemctl stop vsftpd)

重啟: /etc/init.d/vsftpd restart 或者 service vsftpd restart         (CentOS7使用systemctl restart vsftpd)

查看狀態:/etc/init.d/vsftpd status 或者 service vsftpd status

#卸載vsftpd
rpm -e vsftpd

 

客戶端電腦安裝“FileZilla”連接ftp服務器,這個是免費的,Mac、Windows版都有,如果連接錯誤(提示被動模式的問題,則在FileZilla中的設置項中被動模式設置為:退回到主動模式)

 

vsfptd.conf配置詳解:

# vsftp conf /etc/vsftpd.conf

#不允許匿名用戶登陸
anonymous_enable=NO

#vsftpd所在系統的用戶可以登錄vsftpd
local_enable=YES

#允許使用任何可以修改文件系統的FTP的指令
write_enable=YES

#匿名用戶新增文件的umask數值
local_umask=022

#允許為目錄配置顯示信息,顯示每個目錄下面的message_file文件的內容
dirmessage_enable=YES

#啟用一個日志文件,用於詳細記錄上傳和下載
xferlog_enable=YES

#開啟20端口
connect_from_port_20=YES

#記錄上傳下載文件的日志
xferlog_file=/var/log/vsftpd.log

#如果使用者在600秒內都沒有命令動作,就會斷開連接
idle_session_timeout=600

#如果服務器與客戶端的數據聯機已經成功建立 (不論主動還是被動聯機),但是可能由於線路問題導致6秒內還是無法順利的完成數據的傳送,那客戶端的聯機就會被我們的 vsftpd 強制剔除!
data_connection_timeout=6

listen=YES
listen_port=21

#從2.3.5之后,vsftpd增強了安全檢查,如果用戶被限定在了其主目錄下,則該用戶的主目錄不能再具有寫權限了!如果檢查發現還有寫權限,就會報該錯誤。所以2.3.5之后的版本需要設置此項
allow_writeable_chroot=YES

#用戶默認訪問的根目錄
local_root=/home/www

#限制用戶在自己的家目錄之內,如果chroot_local_user=YES且chroot_list_enable=YES則在chroot_list中的用戶都是不受限制的用戶。如果chroot_local_user=NO且chroot_list_enable=YES則在chroot_list中的用戶都是受限制的用戶
chroot_local_user=YES

#限制某用戶只能訪問自己的目錄,與chroot_list_flie有關!這個項設置要開啟,否則chroot_list_file文件會無效
chroot_list_enable=YES

#限制某用戶只能訪問自己的目錄,將用戶名寫進這個文件,要確保設置chroot_list_enable=YES才有效
chroot_list_file=/etc/vsftpd/chroot_list

#是否借助 vsftpd 的抵擋機制來處理某些不受歡迎的賬號,與userlist_deny設置有關
userlist_enable=YES

#當userlist_enable=YES時才會生效,若為YES則當使用者賬號被列入到相應的文件時,在該文件內的使用者將無法登入vsftpd服務器!該文件名與userlist_file設置有關
userlist_deny=YES

#若userlist_deny=YES,則這個設置才有用!在這個文件內的賬號都無法使用vsftpd
userlist_file=/etc/vsftpd/user_list

pasv_enable=YES
pasv_min_port=10240
pasv_max_port=10260

#設定pam服務下的vsftpd驗證配置文件名。因此,PAM驗證將參考/etc/pam.d/下的vsftpd文件配置
pam_service_name=vsftpd

###### 以下是關於虛擬用戶支持的重要配置項目,默認.conf配置文件中是不包含這些項目的,需手動添加。 ######

#啟用虛擬用戶功能
guest_enable=YES

#指定虛擬的宿主用戶
guest_username=ftpuser

#設定虛擬用戶的權限符合他們的宿主用戶
virtual_use_local_privs=YES

#設定虛擬用戶個人vsftp的配置文件存放路徑。這個被指定的目錄里,將被存放每個虛擬用戶個性的配置文件,注意的地方是:配置文件名必須和虛擬用戶名相同
user_config_dir=/etc/vsftpd/vsftpd_user_conf

#禁止反向域名解析,若是沒有添加這個參數可能會出現用戶登陸較慢,或則客戶鏈接不上ftp的現象
reverse_lookup_enable=NO

 

#快速清空vsftpd.conf內容的另一種方法:

vim /etc/vsftpd/vsftpd.conf 打開文件

用輸入“G”跳到最后一行,再輸入“:1,.d”即可清空。

 

----- 配置系統用戶登錄 ----- 

#創建系統用戶登錄

useradd test_user

passwd test_user

使用test_user用戶登錄vsftpd會自動創建一個/home/www/test_user的目錄


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM