vsftp簡單應用

vsftp配置詳解

前言

FTP(File Transfer Protocol)是文件傳輸協議的簡稱。它能讓用戶 連接上一個遠程計算機(運行著 FTP 服務器程序)查看遠程 計算機上有哪些文件,然后把文件從遠程計算機上下載到 本地計算機,或把本地計算機文件上傳到遠程計算機。但是ftp是一種古老的文件傳輸協議,是明文傳輸,特別的不安全所以就有了vsftp。

一、vsftp相關概念梳理

1、vsftp用戶

訪問FTP服務器時都需要經過驗證,只有經過FTP服務器的驗證,用戶才能進行訪問和傳輸文件等操作,Vsftpd提供三種驗證 登錄方式,分別是匿名用戶、本地用戶、虛擬用戶:

匿名用戶(anonymous):在默認情況下,系統只提供匿名用戶訪問。

本地用戶(local user):又稱為真實賬號,本身就是系統用戶,它是以真實的用戶名和口令進行登錄,以/etc/passwd中的用戶名進行驗證,本地用戶既可以登錄FTP服務器,又可以登錄系統使用其他系統資源,對系統安全有極大的威脅,所以應盡量避免用戶使用本地賬號訪問FTP服務器。

虛擬用戶(guest)形式:Vsftpd虛擬用戶與系統賬號(passwdshadow)是分離的,采用單獨的用戶名/口令方式進行保存,通過這樣的處理來提高系統的安全。Vsftpd用戶驗證采用PAM方式,由于用戶名/口令被單獨保存,因此實際驗證時Vsftpd需要用一個本地用戶的身份讀取數據庫文件來完成驗證,通常由guest_username選項指定本地用戶,正如同匿名用戶也需要有一個本地用戶ftp來映射一樣。

相對于本地用戶來說,虛擬用戶只能訪問FTP服務器所提供的資源,這大大增強了系統安全性。相對于匿名用戶而言,虛擬用 戶需要驗證用戶名和密碼,同時增加了對用戶訪問權限的可管理性。對于需要提供FTP服務,又要考慮主機安全和管理方便的系 統來說,采用虛擬用戶方式是最適合的。

2、VSFTP 的主要功能

從此名稱上可以看出,開發者的初衷是將系統的安全性放在 首要位置。除了這個與生俱來的安全特性以外,高速傳 輸與運行的穩定性也是 VSFTP 的 2 個顯著特點。在速 度方面,使用 ASCII 代碼模式下載數據時,VSFTP 的速 度是 Wu- FTP(另一種比較流行的類 Unix 平臺的 FTP 軟件)的 2 倍,如果 Linux 主機使用 2.4.* 的內核,在千 兆以太網上的下載速度可達 86 Mbit/s;在穩定性方面 更加出色,VSFTP 在單機模式下支持 4 000 個以上的并 發用戶同時連接。

二、安裝配置

1、vsftp安裝

(1)查詢是否安裝vsftp: rpm -q vsftp

(2)沒有安裝則使用rpm包安裝或其他安裝方式安裝,這里我直接rpm包安裝:先掛載,然后找到vsftp包,再安裝:

vsftp簡單應用

(3)啟動:systemctl start vsftpd.service

(4)查看狀態:systemctl status vsftpd.service

vsftp簡單應用

2、文件配置 :vsftp 配置文件為 /etc/vsftpd/vsftpd.conf,含義如下:

local_enable=YES 設定為NO的情況下(本地用戶禁止訪問)導致虛擬用戶將無法訪問。
guest_enable=YES 啟用虛擬用戶登錄功能
guest_username= virtualuser 虛擬用戶登錄后,其宿主用戶為virtualuser
pam_service_name=ftp 指定PAM認證文件/etc/pam.d/ftp
virtual_use_local_privs=NO
為了提高系統安全,我們應該首先設置FTP宿主目錄/home/virtualuser屬性與權限:
# chown virtualuser:virtualuser /home/virtualuser設置virtualuser目錄的擁有者、組。
# chmod 700 /home/virtualuser將目錄/home/virtualuser的權限設為擁有者可讀寫執行;
當virtual_use_local_privs= YES時,虛擬用戶的權限與本地用戶相同,此時只需設置write_enable=YES,虛擬用戶就可以和本地
用戶一樣就擁有寫權限。
默認情況下virtual_use_local_privs取值為NO,此時虛擬用戶的權限與匿名用戶權限相同,可參考匿名用戶的配置對虛擬用戶
的訪問權限進行配置


舉例如下:
1、控制虛擬用戶不能瀏覽目錄但仍可以對文件進行操作
anon_world_readable_only=YES
2、允許虛擬用戶上傳文件
write_enable=YES全局性設置,打開寫權限
anon_upload_enable=YES
3、允許虛擬用戶修改文件名和刪除文件 (write_enable=YES)
anon_other_write_enable=YES
4、允許匿名用戶創建目錄 (write_enable=YES)
anon_mkdir_write_enable=YES
考慮到以上選項的設置對匿名用戶也同樣會生效。配置時一定要慎之又慎,如果不想匿名用戶趁機擁有同樣的權限,配置時
最好關閉匿名用戶登錄功能。

可以通過配置chroot相關參數,限定本地用戶對其他目錄的訪問。將用戶限制在自家目錄的做法:
限制所有的本地用戶在自家目錄
chroot_local_user=YES 系統默認值為NO

三、具體實例:(配置虛擬用戶vsftpd服務器)

1、創建虛擬用戶口令庫文件

(1)創建/root/virtual文件

wangwu   虛擬用戶名
redhat   虛擬用戶名wangwu的口令
zhaoliu  虛擬用戶名
linux    虛擬用戶名zhaoliu的口令

(2)生成虛擬用戶口令文件

db_load -T -t hash -f /root/virtual /etc/vsftpd/virtual.db

(3)修改虛擬用戶口令文件/etc/vsftpd/virtual.db的設置權限為600

chmod 600 /etc/vsftpd/virtual.db

(4)創建/etc/pam.d/vsftpd.vu文件,該文件是PAM配置文件,內容如下:

auth  required  /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual

account  required  /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual

(5)創建用戶virtualuser,該用戶主目錄為編輯?/home/ftpuser,并為該主目錄設置權限為700.

useradd -d /home/ftpuser virtualuser

chmod 700 /home/ftpuser

su - virtualuser -c "echo Hello Linux">/home/ftpuser/testfile  以用戶virtualuser身份創建/home/ftpuser/testfile文件

(6)編輯/etc/vsftpd/vsftpd.conf文件

anonymous_enable=NO  是否允許匿名用戶登錄
local_enable=YES     是否允許本地用戶登錄
write_enable=NO      是否允許用戶有寫入權限
anon_upload_enable=NO 是否允許匿名用戶上傳文件
anon_mkdir_write_enable=NO  是否允許匿名用戶創建目錄權限
anon_other_write_enable=NO 是否允許匿名用戶有更改權限

chroot_local_user=YES        是否將本地用戶鎖定在自己的主目錄中
ftpd_banner=Welcome to FTP service.  開場白
guest_enable=YES              是否啟用虛擬用戶
guest_username=virtualuser    虛擬用戶在系統中的真實用戶名
local_umask=022               設置本地用戶新建文件時的umask值

xferlog_enable=YES      是否啟用傳輸日志文件系統記錄下載和上傳信息
connet_from_port_20=YES  連接20號端口
xfer_std_format=YES   設置傳輸日志文件是否寫入標準xferlog格式
listen=NO          是否啟用獨立進程控制vsftpd,no表示啟用xinetd進程

pam_service_name=vsftpd.vu
userlist_enable=YES
tcp_wrappers=YES

(7)重啟vsftpd服務

systectl  restart  vsftpd.service

(8)測試:ftp 192.168.1.109

vsftp簡單應用

如果啟用chroot,必須保證ftp根目錄不可寫,這樣對于ftp根直接為網站根目錄的用戶不方便,所以建議假如ftp根目錄是/home/ftpuser/,則將訪問權限改寫如下:chmod a-w /home/ftpuser/

vsftp簡單應用

如果出現如下情況,也是/home/ftpuser/權限問題,可以該成777后,a-w。

vsftp簡單應用

都改好后,測試結果如下

vsftp簡單應用

vsftp簡單應用

原創文章,作者:N24_yezi,如若轉載,請注明出處:http://www.www58058.com/64009

(0)
N24_yeziN24_yezi
上一篇 2016-12-18 01:48
下一篇 2016-12-18 13:34

相關推薦

  • centos7配置bindDNS解析服務

    首先來概述一下 通俗一點理解呢,DNS就是把域名轉換成IP的一種服務(反向則是IP轉換成域名).以方便人們的記憶,就好比記住一個代表性的英文要比記住電話號碼快得多,通常我們將這種服務稱之為解析.現在一般公網都有萬網 騰訊云這些機構,DNS這一塊我們不需要負責.但是在現在企業的內部網則就需要我們來搭建DNS服務器了.本次采用的bind工具進行域名的解析。 1.…

    Linux干貨 2018-03-26
  • 蘿卜運維記-第二周

    part2–針對文件命令的介紹,使用,演示 Ⅰ Linux文件管理類命令常用方法 Ⅱ bash的工作特性,相關示例 Ⅲ 文件的元數據有哪些,以及所代表的含義。 Ⅳ 相關命令的操作,和結果演示。 ①Linux文件管理命令常用方法 Linux常見文件類型 -:常規文件;即f; d: directory…

    Linux干貨 2016-12-12
  • yum前端工具與源碼編譯安裝

    概述:本章內容重要講解yum(rpm前端工具)和rpm源碼編譯安裝,前者可以有效的解決軟件安裝過程中存在的依賴關系,從而提升我們使用系統的效率;后者是我們進階Linux系統,了解程序包安裝的過程本質 1、YUM: Yellowdog Update Modifier   Yum(全稱為 Yellow dog Updater, Modified)是一個…

    Linux干貨 2016-08-29
  • 馬哥教育網絡班22期+第9周課程練習

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現;            [root@test ~]# vim&nbsp…

    Linux干貨 2016-10-24
  • 實例;編譯安裝apache 2.2,并啟動此服務

    基于c語言的源代碼編譯安裝,通常有三個步驟     ./configure         (1)通過選項傳遞參數,指定啟用特性,安裝路徑等:執行時會參考用戶的指定以及makefile.in文件生成makefile.  &nbsp…

    Linux干貨 2016-08-24
  • rsyslog日志系統

    一、前言  什么是日志?    日志就是歷史事件,按時間序列將發生的事件予以記錄;日志記錄信息記錄的是事件的發生時間以及事件內容  Linux下記錄日志的系統:    syslog:是CentOS 5.0系統上使用的日志系統,有兩類日志,分別是syslogd、klogd;    …

    Linux干貨 2015-06-15

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-23 12:15

    贊,過程寫的比較詳細,可以再擴展一下,比如如何限制用戶的存儲空間~繼續加油~

欧美性久久久久