vsftpd安裝使用說明

vsftpd安裝使用說明

vsftpd是在linux環(huán)境下,使用最多的FTP服務(wù)端軟件。

vsftpd默認(rèn)只能使用root用戶運(yùn)行。使用非root用戶運(yùn)行,需要在配置文件里設(shè)置run_as_launching_user=YES。

官方強(qiáng)烈不推薦使用這種方式啟動(dòng),會(huì)帶來巨大的安全問題,并且會(huì)導(dǎo)致無法使用chroot技術(shù)來限制文件訪問。

以下安裝配置均在root賬號(hào)下進(jìn)行。

安裝

yum install -y vsftpd
yum install -y db4 #設(shè)置虛擬賬戶的本地?cái)?shù)據(jù)庫(kù)文件用

也可以下載源碼安裝,解壓之后直接make & make install即可安裝。
不提供configure文件,所以無法指定路徑。

安裝完成后會(huì)在相關(guān)目錄生成文件,需要用到的如下:

/usr/sbin/vsftpd #vsftpd可執(zhí)行文件

/etc/vsftpd/vsftpd.conf #主配置文件

/etc/pam.d/vsftpd #PAM認(rèn)證文件

/etc/vsftpd.ftpusers #禁用使用VSFTPD的用戶列表文件

/etc/vsftpd.user_list #禁止或允許使用VSFTPD的用戶列表文件

配置

vsftpd主要配置

先對(duì)默認(rèn)配置文件進(jìn)行備份,再進(jìn)行配置。

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

配置文件具體配置如下:

anonymous_enable=NO #不允許匿名登錄
local_enable=YES
write_enable=YES
local_umask=022  #上傳文件權(quán)限補(bǔ)碼,最終上傳后的文件權(quán)限為  666-022=644
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_local_user=NO #虛擬賬戶配置下,在下面兩個(gè)chroot配置后,這個(gè)參數(shù)必須為NO,否則登陸FTP后還可以訪問其他目錄!
chroot_list_enable=YES 
allow_writeable_chroot=YES
chroot_list_file=/home/ftp/config/chroot_list #指定不能離開家目錄的用戶列表文件,一行一個(gè)用戶。使用此方法時(shí)必須chroot_local_user=NO。說明這個(gè)列表里面的用戶登陸ftp后都只能訪問其主目錄,其他目錄都不能訪問!
listen=YES #監(jiān)聽I(yíng)PV4
listen_ipv6=NO #監(jiān)聽I(yíng)PV6,不能和上面的listen同時(shí)設(shè)置為YES

pam_service_name=vsftpd #指定PAM配置文件,即下面的/etc/pam.d/vsftpd文件要和這里指定的一致
userlist_enable=YES
tcp_wrappers=YES

virtual_use_local_privs=YES
guest_enable=YES #啟用虛擬賬戶
guest_username=chenxj #將虛擬用戶映射為本地chenxj用戶(前提是local_enable=YES),更安全的做法是映射為nobody用戶,因?yàn)閚obody的權(quán)限最低

user_config_dir=/home/ftp/config/vuser_conf #指定不同虛擬用戶配置文件的存放路徑

listen_port=21 #監(jiān)聽的ftp端口,改成其他端口,會(huì)導(dǎo)致無法啟動(dòng)
pasv_min_port=40001 #分配給ftp賬號(hào)的最小端口。被動(dòng)模式下的配置
pasv_max_port=40100 #分配給ftp賬號(hào)的最大端口。每個(gè)賬號(hào)分配一個(gè)端口,即最大允許100個(gè)ftp賬號(hào)連接
max_clients=150 #客戶端的最大連接數(shù)
accept_timeout=5
connect_timeout=1
max_per_ip=5 #每個(gè)ip最大連接數(shù)

以上配置有修改,需要重啟vsftpd服務(wù)才能生效。

虛擬賬戶設(shè)置

在自己決定的目錄(如:/home/ftp/config)新建vuser_passwd.txt,奇數(shù)行為賬號(hào),偶數(shù)行為密碼:

user1  #賬號(hào)1
user1@2018 #賬號(hào)1密碼
user2 #賬號(hào)2
user2@2018 #賬號(hào)2密碼

在此目錄下,生成虛擬用戶口令認(rèn)證的db文件,這是本地?cái)?shù)據(jù)庫(kù)文件:

cd /home/ftp/config
db_load -T -t hash -f vuser_passwd.txt vuser_passwd.db
chmod 600 vuser_passwd.db #安全起見,將該文件的權(quán)限設(shè)置為root讀寫

同時(shí)在該目錄下,新建chroot_list文件,即/etc/vsftpd/vsftpd.conf中的chroot_list_file=,并將虛擬賬戶的賬號(hào)放在這個(gè)文件中。

cat chroot_list
user1
user2

然后新建vuser_conf目錄,即/etc/vsftpd/vsftpd.conf中的user_config_dir=。用于存放每個(gè)虛擬賬戶的配置文件,虛擬賬戶的配置文件以虛擬賬戶的用戶名命名。

mkdir vuser_conf
vim user1
# 配置如下:
local_root=/home/ftp/data/user1 #目錄需已經(jīng)存在,擁有者需為/etc/vsftpd/vsftpd.conf 中g(shù)uest_username指定的用戶
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

以上配置有修改,不需要重啟vsftpd,即時(shí)生效。

PAM認(rèn)證

修改/etc/pam.d/vsftpd文件,注釋掉原來的內(nèi)容,在最后兩行添加認(rèn)證文件路徑,如下所示:

#%PAM-1.0
#session    optional     pam_keyinit.so    force revoke
#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth       required    pam_shells.so
#auth       include password-auth
#account    include password-auth
#session    required     pam_loginuid.so
#session    include password-auth
auth    required    /lib64/security/pam_userdb.so   db=/home/ftp/config/vuser_passwd
account required    /lib64/security/pam_userdb.so db=/home/ftp/config/vuser_passwd

中間使用Tab鍵分隔。

啟動(dòng)

systemctl start vsftpd #啟動(dòng)
systemctl restart vsftpd #重啟
systemctl stop vsftpd #停止
systemctl status vsftpd #查看狀態(tài)

管理

寫了3個(gè)小腳本來管理。

新增用戶

sh /home/ftp/script/setFTP.sh <user> <passwd> <path>

代碼如下:

#!/bin/sh

user=$1
passwd=$2
path=$3

echo $user >> /home/ftp/config/chroot_list
echo -e "$user\n$passwd" >> /home/ftp/config/vuser_passwd.txt
db_load -T -t hash -f /home/ftp/config/vuser_passwd.txt /home/ftp/config/vuser_passwd.db

mkdir $path
chown -R chenxj:chenxj $path
chmod 700 $path

echo -e "local_root=$path\nwrite_enable=YES\nanon_world_readable_only=NO\nanon_upload_enable=YES\nanon_mkdir_write_enable=YES\nanon_other_write_enable=YES" > /home/ftp/config/vuser_conf/$user

取消和恢復(fù)

如果希望某個(gè)路徑關(guān)閉FTP,則直接修改其權(quán)限為600即可,則在配置文件中local_root指定為該路徑的賬號(hào)全都無法登陸。同理,恢復(fù)則將權(quán)限修改為700

sh /home/ftp/script/cancelFTP.sh <path> #chmod 600 $path
sh /home/ftp/script/recoverFTP.sh <path> #chmod 700 $path
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 圖片更清晰,文字在最下面 FTP是TCP/IP的一種應(yīng)用,使用TCP而不是UDP,所以是可靠的,面向連接的。 FT...
    停下浮躁的心閱讀 1,823評(píng)論 0 4
  • 1.FTP簡(jiǎn)介 File Transfer Protocol 早期的三個(gè)應(yīng)用級(jí)協(xié)議之一? 基于C/S結(jié)構(gòu)? 雙通道...
    尛尛大尹閱讀 2,685評(píng)論 0 0
  • #################匿名權(quán)限控制############### anonymous_enable=Y...
    牧民閱讀 4,715評(píng)論 2 4
  • vsftpd.conf 部分:文件格式(5)索引 返回主要內(nèi)容 名稱 vsftpd.conf - vsftpd的配...
    張龍象閱讀 2,514評(píng)論 0 1
  • 圖文/愛麗絲桐 轉(zhuǎn)載請(qǐng)聯(lián)系作者授權(quán) 喜歡就來關(guān)注Alice的專題 禪中品禪,彩鉛創(chuàng)造個(gè)世界 一起來畫畫吧 Alic...
    語靜然閱讀 335評(píng)論 0 1

友情鏈接更多精彩內(nèi)容