溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CentOS6.4_X64安裝配置vsFTP-2.2.2

發(fā)布時(shí)間:2020-07-18 22:47:52 來源:網(wǎng)絡(luò) 閱讀:1130 作者:luoxj100 欄目:數(shù)據(jù)庫

CentOS6.4_X64安裝配置vsFTP-2.2.2

一、環(huán)境 :

CentOS6.4_X64 

Vsftpd-2.2.2-11.el6_3.1 

 

二、安裝軟件及依賴軟件包

1、一般pamdb4默認(rèn)系統(tǒng)已經(jīng)安裝,如果沒有安裝如下一并安裝吧

#rpm –qa pam

#rpm –qa db4        ///檢測(cè)是否安裝

#yum install vsftpd pam* db4* -y     ///安裝所需軟件

2、將vsftp配置為系統(tǒng)服務(wù) 
#chkconfig --level 35 vsftpd on

3、安裝完成后生成如下配置文件:

[root@localhost vsftpd]# ll /etc/vsftpd/

-rw-------. 1 root root  125 Feb 192013 ftpusers

-rw-------. 1 root root  361 Feb 192013 user_list

-rw-r--r--. 1 root root 4691 Sep 17 16:54 vsftpd.conf

-rwxr--r--. 1 root root  338 Feb 192013 vsftpd_conf_migrate.sh

 

三、 建立FTP的宿主帳戶

1、建立ftp虛擬宿主帳戶 
#useradd vsftpd -s /sbin/nologin 

///vsftpd供虛擬帳戶映射的系統(tǒng)真實(shí)用戶,不需要登錄shell權(quán)限

 

四、VSFTPD的配置文件

配置vsftpd.conf   ///該文件在/etc/vsftpd/
1
、備份現(xiàn)有配置文件:

# cd /etc/vsftpd/

# cp vsftpd.conf vsftpd.conf.bak

2、下面更改配置文件:

[root@localhost vsftpd]# vi vsftpd.conf

anonymous_enable=NO     //不允許匿名用戶訪問。 

local_enable=YES     //設(shè)定本地用戶可以訪問。主要是為虛擬宿主用戶,如果該項(xiàng)目設(shè)定為NO那么所有虛擬用戶將無法訪問。

write_enable=YES          //設(shè)定可以進(jìn)行寫操作。

local_umask=022    //設(shè)定上傳后文件的權(quán)限掩碼。

idle_session_timeout=600

data_connection_timeout=1200   //設(shè)置超時(shí)時(shí)間
anon_upload_enable=NO      //
禁止匿名用戶上傳。
anon_mkdir_write_enable=NO   //
禁止匿名用戶建立目錄。

dirmessage_enable=YES         ///設(shè)定開啟目錄標(biāo)語功能。

xferlog_enable=YES     ///設(shè)定開啟日志記錄功能。

connect_from_port_20=YES          ///設(shè)定端口20進(jìn)行數(shù)據(jù)連接。
chown_uploads=NO       ///
設(shè)定禁止上傳文件更改宿主。
xferlog_file=/var/log/vsftpd.log   ///
設(shè)定Vsftpd的服務(wù)日志保存路徑。該文件要手動(dòng)建立,

并且必須給與該vsftpd用戶對(duì)日志文件vsftpd.log的讀寫權(quán)限,否則服務(wù)將啟動(dòng)失敗。

xferlog_std_format=YES   ///設(shè)定日志使用標(biāo)準(zhǔn)的記錄格式。
nopriv_user=vsftpd    ///
設(shè)定支撐Vsftpd服務(wù)的宿主用戶為手動(dòng)建立的Vsftpd用戶。

注意,一旦做出更改宿主用戶后,必須注意一起與該服務(wù)相關(guān)的讀寫文件的讀寫賦權(quán)問題。比如日志文件就必須給與該用戶寫入權(quán)限等。

async_abor_enable=YES   ///設(shè)定支持異步傳輸功能。
ascii_upload_enable=YES
ascii_download_enable=YES    ///
設(shè)定支持ASCII模式的上傳和下載功能。
ftpd_banner=Welcome to blah FTP service.//
設(shè)定Vsftpd的登陸標(biāo)語

chroot_local_user=YES

chroot_list_enable=YES    ///禁止用戶登出自己的FTP主目錄。

chroot_list_file=/etc/vsftpd/chroot_list  ///如果開啟了chroot_list_enable=YES,那么一定要開啟這個(gè),這條是鎖定登錄用戶只能家目錄的位置。

         注:建立chroot_list文件

touch/etc/vsftp/chroot_list,然后將帳戶輸入一行一個(gè),保存就可以了,如果不需要限制用戶,也可以只建立一個(gè)空文件,或者將chroot_list_enable=NO

ls_recurse_enable=NO     ///禁止用戶登陸FTP后使用"ls -R"的命令。該命令會(huì)對(duì)服務(wù)器性能造成巨大開銷。如果該項(xiàng)被允許,那么擋多用戶同時(shí)使用該命令時(shí)將會(huì)對(duì)該服務(wù)器造成威脅。

listen=YES     ///設(shè)定該Vsftpd服務(wù)工作在StandAlone模式下。順便展開說明一下,所謂StandAlone模式就是該服務(wù)擁有自己的守護(hù)進(jìn)程支持,在ps -A命令下我們將可用看到vsftpd的守護(hù)進(jìn)程名。如果不想工作在StandAlone模式下,則可以選擇SuperDaemon模式,在該模式下 vsftpd將沒有自己的守護(hù)進(jìn)程,而是由超級(jí)守護(hù)進(jìn)程Xinetd全權(quán)代理,與此同時(shí),Vsftp服務(wù)的許多功能將得不到實(shí)現(xiàn)。
pam_service_name=vsftpd   ///
設(shè)定PAM服務(wù)下Vsftpd的驗(yàn)證配置文件名。因此,PAM驗(yàn)證將參考/etc/pam.d/下的vsftpd文件配置。

userlist_enable=YES     ///設(shè)定userlist_file中的用戶將不得使用FTP

tcp_wrappers=YES        ///設(shè)定支持TCP Wrappers。

使用虛擬用戶需要增加以下部分默認(rèn)中不包含這些設(shè)定項(xiàng)目,需要自己手動(dòng)添加:

guest_enable=YES   ///設(shè)定啟用虛擬用戶功能。
guest_username=vsftpd  ///
指定虛擬用戶的宿主用戶。
virtual_use_local_privs=YES  ///
設(shè)定虛擬用戶的權(quán)限符合他們的宿主用戶。
user_config_dir=/etc/vsftpd/vconf    ///
設(shè)定虛擬用戶個(gè)人Vsftp的配置文件存放路徑。

這個(gè)被指定的目錄里,將存放每個(gè)Vsftp虛擬用戶個(gè)性的配置文件,注:就是這些配置文件名必須和虛擬用戶名相同。

      pasv_min_port=61001

      pasv_max_port=62000   //指定使用被動(dòng)模式時(shí)打開端口的最小值與最大值

      anon_max_rate=1000000   //匿名用戶最大傳輸速率

      local_max_rate=2000000  //本地用戶最大傳輸速率

      max_clients=30  //限制服務(wù)器最大并發(fā)連接限制數(shù)30

      max_per_ip=1   //限制單個(gè)IP地址的最大并發(fā)連接為1

 

 

 

 

五、創(chuàng)建日志文件 
[root@localhost vsftpd]# touch /var/log/vsftpd.log       //
日志文件

[root@localhost vsftpd]# chown vsftpd.vsftpd /var/log/vsftpd.log  

 

六、創(chuàng)建虛擬用戶名單文件 

建立了一個(gè)虛擬用戶名單文件,用來記錄vsftpd虛擬用戶的用戶名和口令的數(shù)據(jù)文件,這里命名為v_user。為了目錄清晰,這個(gè)名單文件就放置在/etc/vsftpd/vconf/

[root@localhost vsftpd]# mkdir /etc/vsftpd/vconf/ 

[root@localhost vsftpd]# touch /etc/vsftpd/vconf/v_user

 

七、創(chuàng)建虛擬用戶 

編輯上面創(chuàng)建的虛擬用戶名單文件v_user,在其中加入用戶的用戶名和口令信息。

格式:奇數(shù)行為用戶名,偶數(shù)行是密碼,其他的以此類推

[root@localhost vsftpd]# vi /etc/vsftpd/vconf/v_user 

test           //用戶名 
123123           //
密碼

 

八、生成虛擬用戶數(shù)據(jù)庫文件

[root@localhost vsftpd]# db_load -T -t hash -f /etc/vsftpd/vconf/v_user /etc/vsftpd/vconf/v_user.db

需要特別注意的是,以后再要添加虛擬用戶的時(shí)候,只需要按照上面的格式:奇數(shù)行為用戶名,偶數(shù)行是密碼的格式將新用戶名和口令添加進(jìn)虛擬用戶名單文件。如此不會(huì)生效的,還要再執(zhí)行一遍“ db_load -T -t hash -f 虛擬用戶名單文件 虛擬用戶數(shù)據(jù)庫文件.db ”的命令使其生效才可以!

db_load -T -t hash -f /etc/vsftpd/vconf/v_user /etc/vsftpd/vconf/v_user.db

-T允許應(yīng)用程序能夠?qū)⑽谋疚募D(zhuǎn)譯載入進(jìn)數(shù)據(jù)庫。由于我們之后是將虛擬用戶的信息以文件方式存儲(chǔ)在文件里的,為了讓Vsftpd這個(gè)應(yīng)用程序能夠通過文本來載入用戶數(shù)據(jù),必須要使用這個(gè)選項(xiàng)。

-t如果指定了選項(xiàng)-T,那么一定要追跟子選項(xiàng)-t,追加在-T選項(xiàng)后,用來指定轉(zhuǎn)譯載入的數(shù)據(jù)庫類型。擴(kuò)展介紹下,-t可以指定的數(shù)據(jù)類型有Btree、HashQueueRecon數(shù)據(jù)庫。這里,接下來我們需要指定的是Hash型。

九、設(shè)置數(shù)據(jù)庫文件的權(quán)限 
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vconf/v_user.db 
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vconf/v_user

 

十、修改/etc/pam.d/vsftpd文件,增加以下紅色部分內(nèi)容

#%PAM-1.0

auth       sufficient     pam_userdb.so    db=/etc/vsftpd/vconf/v_user

account    sufficient     pam_userdb.so    db=/etc/vsftpd/vconf/v_user

session    optionalpam_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    requiredpam_loginuid.so

session    include password-auth

以上紅色部分兩條是手動(dòng)添加的,內(nèi)容是對(duì)虛擬用戶的安全和帳戶權(quán)限進(jìn)行驗(yàn)證。

這里的auth是指對(duì)用戶的用戶名口令進(jìn)行驗(yàn)證。
這里的account是指對(duì)用戶的帳戶有哪些權(quán)限哪些限制進(jìn)行驗(yàn)證。
其后的sufficient表示充分條件,也就是說,一旦在這里通過了驗(yàn)證,那么也就不用經(jīng)過下面剩下的驗(yàn)證步驟了。相反,如果沒有通過的話,也不會(huì)被系統(tǒng)立即擋之門外,因?yàn)?/span>sufficient的失敗不決定整個(gè)驗(yàn)證的失敗,意味著用戶還必須將經(jīng)歷剩下來的驗(yàn)證審核。

再后面的pam_userdb.so表示該條審核將調(diào)用pam_userdb.so這個(gè)庫函數(shù)進(jìn)行。
最后的db=/etc/vsftpd/v_user則指定了驗(yàn)證庫函數(shù)將到這個(gè)指定的數(shù)據(jù)庫中調(diào)用數(shù)據(jù)進(jìn)行驗(yàn)證。

特別注意: 一定要使用“sufficient” ,按照老版本的做法,這里使用required ,則會(huì)發(fā)生用戶認(rèn)證不通過,報(bào)如下錯(cuò)誤:

[root@localhost vsftpd]# tail /var/log/secure

Sep 17 17:28:20 localhost vsftpd[1387]: pam_unix(vsftpd:auth): check pass; user unknown

Sep 17 17:28:20 localhost vsftpd[1387]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=test r

host=localhost

Sep 17 17:28:20 localhost vsftpd[1387]: pam_succeed_if(vsftpd:auth): error retrieving information about user test

 

十一、創(chuàng)建用戶的配置文件 
1
、完全控制配置文件

用戶配置文件的名字要和創(chuàng)建的虛擬用戶名字對(duì)應(yīng)

#touch /etc/vsftpd/vconf/test 

#vim /etc/vsftpd/vconf/test  

local_root=/data/ftp/           //虛擬用戶的個(gè)人目錄路徑 
anon_world_readable_only=NO  

//如果開啟,那么所有非匿名登陸的用戶名都會(huì)被切換成guest_username指定的用戶名

anon_upload_enable=YES     //匿名用戶可以上傳

anon_mkdir_write_enable=YES     //匿名用戶可以建目錄

anon_other_write_enable=YES     //匿名用戶其它的寫權(quán)利

local_max_rate=1048576     //本地用戶的最大傳輸速度,單位是Byts/s

     2、只可下載,無其他權(quán)限

#vim /etc/vsftpd/vconf/test  

local_root=/data/ftp/           //虛擬用戶的個(gè)人目錄路徑 

write_enable=NO   //用戶無寫權(quán)限
anon_world_readable_only=NO

anon_upload_enable=NO     //匿名用戶不可以上傳

anon_mkdir_write_enable= NO     //匿名用戶不可以建目錄

anon_other_write_enable= NO     //匿名用戶無寫權(quán)利

local_max_rate=1048576     //本地用戶的最大傳輸速度,單位是Byts/s,

 

 十二、建立虛擬用戶目錄 
如果不建立虛擬用戶的個(gè)人目錄,那么所有的虛擬用戶登錄后所在的目錄都是同一個(gè)目錄下 

# mkdir /data/ftp/  

# chown vsftpd.vsftpd /data/ftp/ 

# chmod 700 /data/ftp/      ///如果不設(shè)置為700的權(quán)限,則會(huì)發(fā)生如下錯(cuò)誤

         “500 OOPS: cannot change directory:/data/ftp”

配置就此完成,如果想增加新的用戶,只要按照上面的第八步、第十一步進(jìn)行就可以了。

 

十三、所有配置完后的目錄文件及結(jié)構(gòu)

[root@localhost vsftpd]# ll /etc/vsftpd/

-rw-r--r--. 1 root root    0 Sep 17 16:47 chroot_list

-rw-------. 1 root root  125 Feb 192013 ftpusers

-rw-------. 1 root root  361 Feb 192013 user_list

drwxr-xr-x. 2 root root 4096 Sep 17 18:22 vconf

-rw-r--r--  1 root root 4689 Sep 18 10:32 vsftpd.conf

-rwxr--r--. 1 root root  338 Feb 192013 vsftpd_conf_migrate.sh

[root@localhost vsftpd]# ll /etc/vsftpd/vconf

-rw-r--r--  1 root root125 Sep 17 18:22 test

-rw-------. 1 root root    12 Sep 17 16:55 vir_user

-rw-------. 1 root root 12288 Sep 17 16:55 vir_user.db

 

十四、關(guān)于防火墻規(guī)則

1、關(guān)閉防火墻

#service iptables stop   //臨時(shí)關(guān)閉iptables,即時(shí)生效,重啟失效

# chkconfig iptables on   //重啟后開啟

#chkconfig iptables off    //重啟后永久關(guān)閉

2、SElinux狀態(tài)及關(guān)閉

#getenforce    //查詢SElinux狀態(tài)

     三種模式:enforcing  //強(qiáng)制模式,開啟狀態(tài)

               permissive  //寬容模式,代表運(yùn)作中

               disabled   //關(guān)閉狀態(tài),并沒有實(shí)際運(yùn)作

#setenforce 0|1    //配置狀態(tài)

              0:轉(zhuǎn)成permissive寬容模式

              1:轉(zhuǎn)成enforcing強(qiáng)制模式

#vim /etc/selinux/config   //編輯文件SELINUX=diskabled”,即時(shí)不生效,重啟后生效。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI