vsftpd服務的搭建

1.vsftpd介紹
vsftpd:是非常安全的ftp守護進程(Very secure ftp Daemon)。
進程:正在進行(運行running)的程序。
守護進程Daemon:網絡服務類的程序都會有守護進程。守護進程是指實時監測服務訪問狀態的程序。通常都是在系統后臺運行。
FTP的工作端口:
21 控制端口,用于在客戶機和服務器之間建立連接。
20 數據端口。用于服務器給客戶機主動進行數據連接。

2.配置思路
1.關閉安全功能,并查狀態:
2.查軟件是否已安裝,如果未安裝就安裝軟件。
3.啟動服務,并允許開機自動啟動
4.設置共享目錄,重新加載設置。
5.做本地(內測)訪問測試,做異地(公測)訪問測試。

3.vsftpd的配置文件
/etc/logrotate.d/vsftpd 日志輪滾策略文件
/etc/pam.d/vsftpd pam認證文件(重點)
/etc/vsftpd/ftpusers 黑名單文件(重點)
/etc/vsftpd/user_list 用戶訪問列表文件(重點),默認是黑名單,但是可以設置成白名單
將user_list設置成白名單文件。
vim /etc/vsftpd/vsftpd.conf
userlist_deny=NO 找到此行,如果沒有就在最后添加此行
/etc/vsftpd/vsftpd.conf 服務的主配置文件(重點)

4.主配置文件
12:anonymous_enable=YES 允許匿名訪問共享
16:local_enable=YES 允許本地普通用戶(是指用useradd創建的用戶)訪問共享
19:write_enable=YES 允許寫操作,即可寫權限
23:local_umask=022 本地用戶的umask值
37:dirmessage_enable=YES 允許顯示目錄信息
40:xferlog_enable=YES 允許xferlog日志,xferlog文件路徑是/var/log/xferlog文件,僅記錄文件的上傳和下載日志
43:connect_from_port_20=YES 啟用20號端口的連接(data數據端口)
57:xferlog_std_format=YES 啟用xferlog標準(std是standard)格式的日志
115:listen=NO 不啟用ipv4監聽
124:listen_ipv6=YES 啟用IPV6監聽,會向下兼容ipv4
126:pam_service_name=vsftpd vsftpd的pam用戶認證服務文件,是/etc/pam.d/vsftpd文件
127:userlist_enable=YES 啟用user_list用戶列表文件
128:tcp_wrappers=YES 啟用tcp_wrappers防火墻功能,用來做基于IP的TCP訪問控制

vsftpd.conf默認設置的功能:
1.允許匿名用訪問共享,訪問的是/var/ftp目錄,且只能下載文件,不能上傳文件。
2.允許普通用訪問共享,訪問的是用戶自己的家目錄,既能下載文件,也能上傳文件。
3.普通用戶用ftp命令登錄到vsftpd服務器之后,能chroot到服務器的其他目錄路徑下,此功能不安全,建議關掉。

5.vsftpd的chroot牢籠四種情況:
全部不鎖(默認情況)
全部加鎖(用兩行代碼)
少數不加鎖(用三行代碼)
少數加鎖(用四行代碼)

1.全部不鎖(默認)
#chroot_local_user=YES 允許本地用戶chroot牢籠功能(change root),默認為NO不啟用
#chroot_list_enable=YES 啟用chroot_list文件功能,默認NO不啟用此功能

(default follows)

#chroot_list_file=/etc/vsftpd/chroot_list

2.全部加鎖
chroot_local_user=YES 啟用本地用戶chroot牢籠功能(change root),默認為NO不啟用
allow_writeable_chroot=YES 允許chroot牢籠功能下執行寫操作(centos7中必加此行)

3.少數不加鎖
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在vim /etc/vsftpd/chroot_list 添加如下內容
lucy
lily
用tom、lucy、lily做訪問測試,tom啟用了牢籠功能,lucy、lily是不啟用牢籠功能的。

4.少數加鎖
#chroot_local_user=YES 啟用本地用戶chroot牢籠功能(change root),默認為NO不啟用
allow_writeable_chroot=YES 允許chroot牢籠功能下執行寫操作(centos7中必加此行)
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list 指定chroot_list文件及其路徑
在vim /etc/vsftpd/chroot_list 添加如下內容
lucy
lily
用tom、lucy、lily做訪問測試,lucy、lily啟用了牢籠功能,tom是不啟用牢籠功能的。

6.實現允許anonymous匿名用戶既能下載又能上傳文件文件。
1.文件共享軟件必須允許這個用戶有可讀可寫的權限。
2.用戶對共享目錄自身要有可讀可寫的權限。
3.匿名用戶僅允許上傳文件到/var/ftp中的子目錄中。如/var/ftp/upload,且ftp匿名用戶對upload目錄要有可讀可寫權限。
警告:/var/ftp目錄的屬主、屬組不允許修改,且other權限不允許有w可寫權限,否則用ftp匿名用戶訪問共享時會提示500錯誤。

實現要求:
第1步,在vsftpd.conf配置文件中允許anonymous匿名用戶有可讀可寫的權限。
vim /etc/vsftpd/vsftpd.conf 找到如下代碼,去掉29、33行的#號
12 anonymous_enable=YES
29 #anon_upload_enable=YES 允許匿名用戶上傳
33 #anon_mkdir_write_enable=YES 允許匿名用戶用mkdir創建目錄
anon_other_write_enable=YES 允許匿名用戶執行rm刪除等操作(添加此行)
anon_world_readable_only=NO 關閉匿名用戶只讀的限制(為YES時會無法下載)

第2步,用root用戶創建/var/ftp/upload目錄,權限為777或屬主和屬組均為ftp,重啟vsftpd服務,在win7/10中用ftp匿名用戶訪問共享ftp://192.168.11.11,上傳一個文件到upload共享目錄,看是否能傳上去。結果是可以匿名用戶上傳文件到upload目錄中。
mkdir -v /var/ftp/upload
chown -v ftp:ftp /var/ftp/upload 或 chmod -v 777 /var/ftp/upload
systemctl restart vsftpd

7.vsftpd的tcp_wrapers防火墻設置
tcp_wrapers的功能:是一個迷你的TCP防火墻,可以用來做基于TCP協議的應用程序的IP安全訪問控制。
配置文件:
白名單:/etc/hosts.allow
黑名單:/etc/hosts.deny

技巧:讓少數人為白戶,那么先在hosts.deny中做拒絕所有(all)黑名單,然后在hosts.allow中做少數IP的放行白名單。

配置文件格式:man hosts.allow
格式說明: 守護進程名稱:主機名或IP地址
守護進程名稱可以是:vsftpd、sshd、httpd、in.tftpd等。
主機名或IP地址可以是:all所有主機、主機名、域名(網址)、IP地址、網絡地址、IP地址范圍。

設置舉例:
vim /etc/hosts.deny 黑名單
vsftpd:192.168.11.1 拒絕192.168.11.1這臺主機訪問vsftpd共享
sshd:192.168.11.1 拒絕192.168.11.1這臺主機訪問sshd共享

8.vsftpd虛擬用戶
虛擬用戶:即非useradd創建的用戶賬號(非/etc/passwd中的賬號),而是用vim創建的屬于vsftpd的獨立用戶賬號。
虛擬用戶的優勢:可以避免系統中的用戶賬號過多,讓vsftpd文件共享軟件獨立管理自己的用戶賬號。
虛擬用戶賬號文件格式:文件中的奇數行是用戶賬號,偶數行是用戶的密碼。

vsftpd的虛擬用戶方案思路:
0.準備工作:確保vsftpd文件共享服務已安裝,并已啟動vsftpd服務,且關閉了selinux和firewalld安全功能。
1.創建虛擬用戶賬號文件。
2.將虛擬用戶賬號用db_load轉換成加密的數據庫格式文件。
3.在vsftpd的pam認證文件中添加虛擬用戶賬號文件的認證關系。
4.用useradd創建一個普通用戶賬號vftper。
5.在vsftpd.conf配置文件中啟用guest來賓(即虛擬用戶)功能,設置一個真實用戶賬號,并將真實用戶賬號vftper和虛擬用戶賬號文件關聯起來。
6.給每個虛擬用戶賬號設置獨立的共享訪問速度和訪問目錄。
7.重啟vsftpd服務,并分別用虛擬用戶賬號訪問共享。

1.創建虛擬用戶賬號文件。
cat > /etc/vsftpd/vuser.txt <<EOF
f1
passf1
f2
passf2
f3
passf3
EOF

2.將虛擬用戶賬號轉換成加密的數據庫格式文件。
yum provides db_load
yum install -y libdb-utils
cd /etc/vsftpd
ls
db_load -T -t hash -f /etc/vsftpd/vuser.txt /etc/vsftpd/vuserdb.db
chmod -v 600 /etc/vsftpd/vuserdb.db

db_load選項:
-T 是translation轉換文件格式
-t hash 指定格式轉換的算法為hash算法
-f 是指定要轉換格式的文件
/etc/vsftpd/vuser.txt 是要轉換格式的文件
/et/vsftpd/vuserdb.db 是轉換格式之后的文件

3.在vsftpd的pam認證文件中添加虛擬用戶賬號文件的認證關系。
cp -av /etc/pam.d/vsftpd{,.bak}
vim /etc/pam.d/vsftpd 做如下修改
#%PAM-1.0
#以下兩行的功能:僅能實現虛擬用戶訪問共享,普通用戶不能訪問共享。(不建議使用)
#required 意思是必須的 sufficient 意思是滿足的、備選的
#auth required pam_userdb.so db=/etc/vsftpd/vuserdb
#account required pam_userdb.so db=/etc/vsftpd/vuserdb
#以下功能選項的功能:既能讓虛擬用戶訪問共享,也能讓普通用戶訪問共享。(推薦使用)
auth sufficient pam_userdb.so db=/etc/vsftpd/vuserdb
account sufficient pam_userdb.so db=/etc/vsftpd/vuserdb
#以下幾行功能選項是vsftpd的默認pam認證文件內容。(無需修改)
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

4.用useradd創建一個普通用戶賬號vftper。
useradd vftper -s /sbin/nologin
id vftper
ls -ld /home/vftper

5.在vsftpd.conf配置文件中設置一個真實用戶賬號,并將真實用戶賬號vftper和虛擬用戶賬號文件關聯起來。
cd /etc/vsftpd
cp -av vsftpd.conf{,.bak}
cat /etc/vsftpd/vsftpd.conf
vim vsftpd.conf 在文件最后添加如下內容
guest_enable=YES 允許來賓用戶訪問共享,即虛擬用戶
guest_username=vftper 指定來賓用戶名為vftper用戶(即第4步新建的用戶)
user_config_dir=/etc/vsftpd/vuser_conf 指定用戶配置文件目錄
allow_writeable_chroot=YES 允許chroot功能下執行寫操作(必須加此行,否則會登錄失敗)
#user_sub_token=$USER 使用用戶子令牌(通常不用)

6.給每個虛擬用戶賬號設置獨立的共享訪問速度和訪問目錄。
cd /etc/vsftpd
mkdir -v vuser_conf
cd vuser_conf
#創建f1、f2虛擬用戶的會員個性化設置文件,允許f1這個虛擬用戶在自己的家目錄中可讀可寫。
touch f1 f2
mkdir -v /home/vftper/{f1,f2,f3}
chmod -v 777 /home/vftper/{f1,f2,f3}
cat > f1 <<EOF
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vftper/f1
EOF

#允許f2這個用戶在自己的家目錄中可讀,但不可寫。
cat > f2 <<EOF
#添加local_root這行即可,其余內容可以不添加。
local_root=/home/vftper/f2
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO

EOF

7.重啟vsftpd服務,并分別用虛擬用戶賬號訪問共享。
systemctl restart vsftpd
ftp 192.168.11.11 -->用f1、f2虛擬用戶分別訪問共享,測試文件的上傳。

轉載于:https://blog.51cto.com/13038253/2367162

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/279845.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/279845.shtml
英文地址,請注明出處:http://en.pswp.cn/news/279845.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

火狐瀏覽器書簽(收藏夾)全部消失,歷史記錄也消失,如何恢復

今天關閉再打開火狐瀏覽器瞬間懵逼&#xff0c;瀏覽器所有的記錄都沒了&#xff0c;映入眼簾的的火狐新手指導頁&#xff0c;而且主頁導航變成了hao123&#xff0c;我估計是外部程序篡改了瀏覽器配置&#xff0c;或者其他異常導致瀏覽器重置。書簽、歷史記錄對開發人員的重要性…

apple tv 開發_如何防止Apple TV進入睡眠狀態

apple tv 開發Your Apple TV, by default, goes to sleep fairly quickly when not in use. That’s great for power saving but not so great if you like to keep it on. Let’s take a look at how to extend how long it stays awake or disable sleep mode altogether. 默…

MASA MAUI Plugin (七)應用通知角標(小紅點)Android+iOS

背景MAUI的出現&#xff0c;賦予了廣大Net開發者開發多平臺應用的能力&#xff0c;MAUI 是Xamarin.Forms演變而來&#xff0c;但是相比Xamarin性能更好&#xff0c;可擴展性更強&#xff0c;結構更簡單。但是MAUI對于平臺相關的實現并不完整。所以MASA團隊開展了一個實驗性項目…

SAP如何查看會計憑證

比如SAP中已經存在著很多會計憑證&#xff0c;你想要進入SAP隨便看看會計憑證的列表&#xff0c;怎么操作呢&#xff1f;事務碼 IDCNDOC運行結果看到了憑證們&#xff0c;和每個憑證的行項目們上圖看到的結果比較凌亂實際上我們重新進入IDCNDOC可以通過輸入的勾選&#xff0c;選…

Spring Data Redis與Jedis的選擇(轉)

說明&#xff1a;內容可能有點舊&#xff0c;需要在業務上做權衡。 Redis的客戶端有兩種實現方式&#xff0c;一是可以直接調用Jedis來實現&#xff0c;二是可以使用Spring Data Redis&#xff0c;通過Spring的封裝來調用。應該使用哪一個呢&#xff1f;基于當前版本Spring Dat…

C# 溫故而知新:Stream篇(五)

MemoryStream 目錄&#xff1a; 1 簡單介紹一下MemoryStream 2 MemoryStream和FileStream的區別 3 通過部分源碼深入了解下MemoryStream 4 分析MemorySteam最常見的OutOfMemory異常 5 MemoryStream 的構造 6 MemoryStream 的屬性 7 MemoryStream 的方法 8 MemoryStream 簡單示例…

dosbox 自動運行_如何使用DOSBox運行DOS游戲和舊應用

dosbox 自動運行New versions of Windows don’t fully support classic DOS games and other old applications — this is where DOSBox comes in. It provides a full DOS environment that runs ancient DOS apps on modern operating systems. Windows的新版本不完全支持經…

WPF 自定義放大鏡控件

控件名&#xff1a;Magnifier作 者&#xff1a;WPFDevelopersOrg - 驚鏵原文鏈接[1]&#xff1a;https://github.com/WPFDevelopersOrg/WPFDevelopers框架使用.NET40&#xff1b;Visual Studio 2019;實現此功能需要用到 VisualBrush &#xff0c;放大鏡展現使用 Canvas ->…

springboot小筆記

如果默認通過IDEA的springboot 插件布置的 的初始啟動類是這樣的&#xff0c;這種就是一個普通的java類&#xff0c;只能以jar打包 package com.how2java.springboot;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.Sprin…

.NET實現之(WebBrowser數據采集—續篇)

我們繼續“.NET實現之(WebBrowser數據采集)“系列篇之最后一篇&#xff0c;這篇本人打算主要講解怎么用WebBrowser控件來實現“虛擬”的交互性程序&#xff1b;比如我們用Winform做為宿主容器&#xff0c;用Asp.net做相關收集程序頁面&#xff0c;我們需要通過客戶端填寫相關數…

ipad和iphone切圖_如何在iPhone,iPad和Mac上使消息靜音

ipad和iphone切圖If you use Messages on your iPhone, iPad, or Mac, then you probably know how quickly you can become overrun with message notifications, especially if you’re part of a group message. Thankfully, there’s an easy way to mute specific message…

Pipy 實現 SOCKS 代理

上篇我們介紹了服務網格 osm-edge 出口網關使用的 HTTP 隧道&#xff0c;其處理方式與另一種代理有點類似&#xff0c;就是今天要介紹的 SOCKS 代理。二者的主要差別簡單來說就是前者使用 HTTP CONNECT 告知代理目的地址&#xff0c;而后者則是通過 SOCKS 協議。值得一提的是&a…

python拓展7(Celery消息隊列配置定時任務)

介紹 celery 定時器是一個調度器&#xff08;scheduler&#xff09;&#xff1b;它會定時地開啟&#xff08;kicks off&#xff09;任務&#xff0c;然后由集群中可用的工人&#xff08;worker&#xff09;來執行。 定時任務記錄&#xff08;entries&#xff09;默認 從 beat_s…

Asia Yokohama Regional Contest 2018 G題 What Goes Up Must Come Down(樹狀數組求逆序對)

https://codeforces.com/gym/102082 題意&#xff1a; 給一個數組大小不超過1e5&#xff0c;每個數的值也是1e5以內&#xff0c;可以交換相鄰兩個數&#xff0c;求保證它呈現一個非遞減再非遞增的趨勢的最小交換次數。 題解&#xff1a;對每個數來說&#xff0c;只有兩種情況&a…

Android系統的開機畫面顯示過程分析(8)

3. 第三個開機畫面的顯示過程第三個開機畫面是由應用程序bootanimation來負責顯示的。應用程序bootanimation在啟動腳本init.rc中被配置成了一個服務&#xff0c;如下所示&#xff1a;service bootanim /system/bin/bootanimation user graphics group graphics disabled o…

chrome連接已重置_如何重置(或調整)Chrome的下載設置

chrome連接已重置By default, Chrome saves all downloaded files to the same location—a dedicated “Downloads” folder. The thing is, this isn’t always practical for all types of download files. The good news is you can easily tweak this setting. 默認情況下…

.Net 7 團隊把國內的龍芯確實當做一等公民和棄用的項目

楔子&#xff1a;國內龍芯據說是用的自己的指令集&#xff0c;在研究ILC的時候&#xff0c;發現了龍芯在微軟那邊確實是一等公民的存在。同X64,ARM,X86一同并列交叉編譯和二進制提取。龍芯官網龍芯平臺.NET&#xff0c;是龍芯公司基于開源社區.NET獨立研發適配的龍芯版本&#…

戴爾押寶iSCSI,由低到高組合成型

戴爾&#xff08;Dell&#xff09;是較早接受SAS技術的主流存儲廠商之一&#xff0c;2006年已推出采用SAS硬盤驅動器的SAS直連存儲&#xff08;DAS&#xff09;系統PowerVault MD3000。一年之后&#xff0c;主機連接改用iSCSI的PowerVault MD3000i問世。2008年1月&#xff0c;E…

仿Gin搭建自己的web框架(七)

本篇介紹HTTP Basic Auth的實現以及Recovery機制。 HTTP Basic Auth Basic Auth是一種開放平臺認證方式&#xff0c;簡單的說就是需要你輸入用戶名和密碼才能繼續訪問。對于Basic Auth的概念不過多的進行介紹&#xff0c;直接進入如何實現的過程。 Basic Auth說白了就是賬號和密…

canvas高斯模糊算法

對于模糊圖片這個效果的實現&#xff0c;其實css3中的filter屬性也能夠實現&#xff0c;但是這個屬性的兼容性不是很好&#xff0c;所以我們通常不用這種方法實現&#xff0c;而使用canvas配合JS實現。 <span style"white-space:pre"> </span>//高斯模糊…