vsftp vuser虛擬使用者
虛擬使用者:為了保證系統的安全性,現對系統中vsftpd服務進行調整,主要為禁止OS本地賬戶直接登入,採用虛擬賬戶;
在vsftpd伺服器中支援3類使用者,分別是匿名使用者,本地使用者,和虛擬賬戶。用途及區別如下。
1)、匿名使用者:名為anonymous 或ftp 的FTP 使用者,匿名FTP 使用者登入後將FTP 伺服器中的/var/ftp 作為FTP 根目錄。匿名使用者通常用於提供公共檔案的下載,如架設公共軟體下載的FTP 伺服器,所有人都可以使用匿名使用者進行軟體下載。
2)、本地使用者:賬號是系統使用者賬號(/etc/passwd),使用FTP 本地使用者賬號登入FTP 伺服器後,登入目錄為本地使用者的宿主目錄。本地FTP使用者賬號通常和Web 伺服器一起提供虛擬主機服務,作為網頁虛擬主機更新網頁的途徑。
3)、 虛擬使用者:賬號是為了保證FTP 伺服器的安全性,由vsftpd 伺服器提供的非系統使用者賬號,相對於FTP的本地使用者來說,虛擬使用者只是FTP伺服器的專有使用者,虛擬使用者只能訪問FTP伺服器所提供的資源。虛擬使用者FTP 登入後將把指定的目錄作為FTP 根目錄。虛擬使用者與本地使用者具有類似的功能,由於虛擬使用者賬號具有較高的安全性,可以替代本地使用者賬號使用。
安裝使用手冊如下:
1.安裝軟體
yum install vsftpd
2.設定開機啟動
systemctl enable vsftpd
3.vsftp 安裝完成後,預設配置檔案如下:
/etc/vsftpd/vsftpd.conf |
VSFTP 主配置檔案 |
/etc/rc.d/init.d/vsftp |
VSFTP 啟動指令碼,獨立 (S tand alone) 服務模式 |
/etc/pam.d/vsftpd |
PAM 認證檔案(此檔案中 file=/etc/vsftpd/ftpusers > 指的是阻止該檔案中使用者訪問 |
/etc/vsftp/ftpusers |
禁止使用vsftp的ftp使用者列表 |
/etc/vsftp/user_list |
禁止或者允許使用vsftp的ftp使用者列表(根據主配置檔案來定) |
/var/ftp |
匿名登陸使用者主目錄 |
/var/log/xferlog |
vsftp 日誌檔案 |
4.建立虛擬使用者口令庫
4.1 建立虛擬使用者的口令檔案,檔案中奇數行設定虛擬使用者的使用者名稱,偶數行設定使用者的口令
4.2 修改主配置檔案
mv vsftpd.conf vsftpd.conf.bak
grep -v "#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
vi /etc/vsftpd/vsftpd.conf 內容如下:
anonymous_enable=NO # (是否允許匿名登入FTP 伺服器,預設設定為YES 允許,即使用者可使用使用者名稱ftp 或anonymous 進行ftp 登入,口令為空。如不允許匿名訪問設定為NO)
local_enable=YES # (是否允許本地使用者登入FTP伺服器,預設設定為YES允許,本地使用者登入後會進入指定的使用者主目錄,而匿名使用者登入後進入匿名使用者的下載目錄/var/ftp/pub;設定虛擬賬戶必須設會YES)
write_enable=YES #(決定是否允許一些FTP命令去更改檔案系統。包括上傳檔案,刪除檔案,新增目錄,刪除目錄)
local_umask=022 #(設定本地使用者的檔案掩碼為預設022,得到上傳檔案的初始許可權)
file_open_mode=0775 #(對於上傳的檔案設定許可權。預設為0666,如果你想被上傳的檔案可被執行,umask要改成0777,與local_umask配合使用))
anon_umask=002
dirmessage_enable=YES
connect_from_port_20=YES
xferlog_enable=YES # (預設值為NO如果啟用此選項,系統將會維護記錄伺服器上傳和下載情況的日誌檔案,預設情況該日誌檔案 為/var/log/vsftpd.log,也可以透過下面的xferlog_file 選項對其進行設定)
xferlog_std_format=no
log_ftp_protocol=yes
reverse_lookup_enable=NO
dual_log_enable=YES
xferlog_file=/ftplog/log/xferlog #(設定系統維護記錄FTP 伺服器上傳和下載情況的日誌檔案,/var/log/vsftpd.log是預設的,也可以另設其它)
vsftpd_log_file=/ftplog/log/vsftpd.log
#
listen=NO #(如果設定為YES,則 vsftpd 將以獨立模式執行,由vsftpd 自己監聽和處理連線請求)
listen_ipv6=YES #(設定是否支援IPV6)
#
userlist_enable=YES #(此選項預設值為NO,則不啟用user_list檔案;若此項設為YES ,則啟用user_list 檔案,而如果同時設定了 userlist_deny=YES ,則 user_list 檔案中的使用者將不允許登入FTP 伺服器,甚至連輸入密碼提示資訊都沒有,直接被FTP 伺服器拒絕,如果userlist_deny=NO,將則只允許user_list檔案中的使用者登陸FTP伺服器)
tcp_wrappers=YES #(表明伺服器使用tcp_wrappers作為主機訪問控制方式)
guest_enable=YES # (如果啟用,所有的非匿名使用者登入時將被視為遊客,其名字將被對映為guest_username裡所指定的名字。採用虛擬使用者必須設定該選項)
guest_username=ftpvuser #(設定當遊客進入後,其將會被對映的名字。這裡設定為“ftpvuser”,即虛擬使用者登陸ftp後被對映的本地使用者名稱)
pam_service_name=vsftpd.vu #( 設定PAM認證服務的配置檔名稱,該檔案存放在/etc/pam.d/目錄下 )
user_config_dir=/etc/vsftpd/vuser_dir #(使用虛擬使用者配置檔案的目錄)
allow_writeable_chroot=YES #開啟限制在使用者的家目錄中。
>
#
#ftpd_banner=Welcome to V3 CIM DFS service. ##歡迎資訊
#
#banned_email_file=/etc/vsftpd/banned_emails
max_clients=1000 #同時最多連線客戶端數
anon_max_rate=15728640 #設定匿名使用者每條連線最大上傳或下載速率單位Bytes
local_max_rate=15728640 # 設定本地使用者每條連線最大上傳或下載速率單位Bytes
max_per_ip=1000 #每個IP限制登陸的客戶端數
4.3 建立虛擬使用者的口令檔案,檔案中奇數行設定虛擬使用者的使用者名稱,偶數行設定使用者的口令。
vi /etc/vsftpd/ ftpvuser
4.4 生成虛擬使用者的口令庫,(db_load)
db_load -T -t hash -f ftpvuser ftpvuser.db
其中,“ -f ” 命令選項設定的是虛擬使用者的口令檔案,即上面新建的 ftpvuser ,最終生成口令庫檔案 ftpvuser.db
並修改其屬性,
chmod 600 ftpvuser.db
4.5 修改認證檔案
vi /etc/pam.d/vsftpd .vu
vi /etc/pam.d/vsftp
5. 建立本地使用者組及使用者,建立目錄及配置許可權
groupadd -g 8000 ftpgrp
useradd -g ftpgrp -s /sbin/nologin -u 8000 ftpvuser
chown -R ftpvuser:ftpgrp /ftproot/
chown root:ftpgrp /ftplog/*/
chmod 755 /ftplog/*/
6.管控單獨使用者許可權
從上面的配置中可以看到,我把“ write_enable” 和“ download_enable” 引數都設定為 NO ,那 ftp 使用者該如何進行檔案的傳輸呢?其實,這裡為了管控許可權,在主配置檔案中都設定為“ NO” ,然後再對每個 ftp 使用者進行單獨的控制,分別對應單獨的配置檔案,從而保證許可權分配的合理性及安全性。
其中 user_config_dir 引數指定了定義使用者配置檔案的目錄,在這裡只需要在 user_config_dir 中建立以 ftp 使用者名稱命名的檔案,內容為資料傳輸和使用者許可權。裡面設定個人的合適的選項,就可以保證不同的虛擬使用者獲得不同的許可權。
6.1 新建 user_config目錄,路徑為 /etc/vsftpd/vuser_dir
touch qmadmin
vi qmadmin
7. 重啟服務 , 完成。
service vsftpd restart
另外:
vsftpd透過cmds_allowed進行精確許可權控制
將允許的命令寫在cmds_allowed=後面。命令之間用,分隔,整條引數沒有空格,且全是大寫。
比如:
cmds_allowed=ABOR,CDUP,CWD,DELE,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,RMD,RNFR,RNTO,SITE,SIZE,STOR,TYPE,USER,,ACCT*,APPE,CDUP,HELP,MODE,NOOP,REIN*,STAT,STOU,STRU,SYST
cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RETR,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST
引數詳解:
ABOR – abort a file transfer
CWD – change working directory
DELE – delete a remote file
LIST – list remote files
MDTM – return the modification time of a file
MKD – make a remote directory
NLST – name list of remote directory
PASS – send password
PASV – enter passive mode
PORT – open a data port
PWD – print working directory
QUIT – terminate the connection
RETR – retrieve a remote file
RMD – remove a remote directory
RNFR – rename from
RNTO – rename to
SITE – site-specific commands
SIZE – return the size of a file
STOR – store a file on the remote host
TYPE – set transfer type
USER – send username
less common commands:
ACCT* – send account information
APPE – append to a remote file
CDUP – CWD to the parent of the current directory
HELP – return help on using the server
MODE – set transfer mode
NOOP – do nothing
REIN* – reinitialize the connection
STAT – return server status
STOU – store a file uniquely
STRU – set file transfer structure
SYST – return system type
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29551564/viewspace-2932209/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Centos7安裝vsftp-虛擬使用者CentOSFTP
- Linux vsftp vuer虛擬使用者的建立批次指令碼LinuxFTPVue指令碼
- Linux中Postfix虛擬使用者及虛擬域(六)Linux
- vsftp的三種使用者詳解FTP
- VSFTPFTP
- VMware安裝虛擬機器時,全名、使用者名稱、虛擬機器名是什麼。修改虛擬機器為靜態ip虛擬機
- 虛擬函式,虛擬函式表函式
- 虛擬函式 純虛擬函式函式
- Dalvik虛擬機器、Java虛擬機器與ART虛擬機器虛擬機Java
- FTP-Vsftpd的高階應用:虛擬使用者FTP
- 虛擬化四、KVM虛擬化技術
- 虛擬機器arm虛擬環境搭建虛擬機
- 虛擬辦公、虛擬展會、虛擬偶像,RTE+XR 還能做什麼?
- 虛擬DOM
- java虛擬機器和Dalvik虛擬機器Java虛擬機
- Android 虛擬機器 Vs Java 虛擬機器Android虛擬機Java
- VMware 虛擬機器一鍵去虛擬化工具虛擬機
- 網路虛擬化之linux虛擬網路基礎Linux
- 介面、虛擬函式、純虛擬函式、抽象類函式抽象
- 虛擬蜜罐:從資訊模擬到實現虛擬蜜罐技術
- 初探虛擬 DOM
- jvm虛擬器JVM
- Vue虛擬DOMVue
- MySQL虛擬列MySql
- 虛擬PWN初探
- REACT——虛擬DOMReact
- 虛擬環境
- Oracle虛擬索引Oracle索引
- Ubuntu虛擬機器進入虛擬環境的流程Ubuntu虛擬機
- 虛擬機器(三)虛擬機器配置靜態Ip虛擬機
- 虛擬機器去虛擬化過魯大師教程虛擬機
- Nomachine_虛擬桌面_調整虛擬桌面解析度Mac
- 使用者態程式的虛擬地址如何轉換成實體地址
- vue3模擬虛擬列表Vue
- 伺服器虛擬化基礎知識:如何虛擬化?伺服器
- 虛擬機器 之 Fedora Core 5.0 用 Xen 虛擬Slackware 10.2虛擬機
- 淺談GPU虛擬化技術(四)- GPU分片虛擬化GPU
- 淺談GPU虛擬化技術(四)-GPU分片虛擬化GPU