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
下一篇 2016-12-18

相關推薦

  • 文本三劍客之AWK

    文本三劍客—-awk(3) awk簡介 awk是一個強大的文本分析工具,與grep(查找)、sed(編輯)一并稱為“文本處理三劍客”。awk最強大的功能是對數據分析并生成報告。 awk有3個不同版本: awk、nawk和gawk,未作特別說明,一般指gawk,gawk是AWK的GNU版本。 awk其名稱得自于它的創始人 Alfred Aho 、P…

    2017-07-17
  • block(data block,directory block)、inode、塊位圖、inode位圖和super block概念詳解

    一.基本概念:      1.block:文件系統中存儲數據的最小單元,ext3文件系統中,創建時默認4k,分為存儲文件數據的data block和存儲目錄數據的directory block      2.inode:又稱“索引節點”,每一個inode對應一個文件或目錄,記錄了…

    Linux干貨 2016-03-04
  • Linux基礎知識(三)

     本文的主要內容是:  1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。  2、取出最后登錄到當前系統的用戶的相關信息。  3、取出當前系統上被用戶當作其默認shell的最多的那個shell。  4、將/etc/passwd中的第三個字段數值最大的后10個用戶的信息全…

    Linux干貨 2016-10-03
  • Shell腳本編程入門

    認識Shell Shell原意為貝殼 Linux系統中的shell是一個特殊的應用程序,它介于操作系統內核與用戶之間,充當一個“命令解釋器”的角色,負責接收用戶輸入的操作指令(命令)并進行解釋,將需要執行的操作傳遞給內核執行,并輸出執行結果。 可以使用命令查看當前使用的是哪種shell以及當前Linux系統中都支持哪些shell種類。   查看當前…

    Linux干貨 2016-08-12
  • 網絡管理之虛擬網卡實現一個網卡多個地址

    一.概述 在虛擬機中實現一個網卡多個地址 完成這個功能之前需要先關閉NetworkManager功能(在centos 6系統)         chkconfig NetworkManager off   而且我們要實現虛擬網卡一個網卡多個地址只是對虛擬機有用 網卡別名…

    Linux干貨 2016-09-16
  • 馬哥教育網絡班22期+第一周課程練習

    計算機的組成及其功能 計算機主要由五大部分組成:控制器、運算器、存儲器、輸入設備、輸出設備,即CPU(控制器、運算器)、內存、I/O(輸入/輸出設備)。 控制器 是整個計算機的中樞神經,其功能是對程序規定的控制信息進行解釋,根據其要求進行控制,調度程序、數據、地址,協調計算機各部分工作及內存與外設的訪問等。 運算器 對數據進行各種算術運算和邏輯運算,即對數據…

    Linux干貨 2016-08-15

評論列表(1條)

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

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

欧美性久久久久