Vsftp服務-實戰案例

来源:https://www.cnblogs.com/-bobo/archive/2019/10/03/11615647.html
-Advertisement-
Play Games

Vsftp 實驗案例一:(本地用戶) 試驗版本:Linux7.X版本 公司內部現在有一臺FTP 和WEB 伺服器,FTP 的功能主要用於維護公司的網站內容,包括上傳文 件、創建目錄、更新網頁等等。公司現有兩個部門負責維護任務,他們分別適用team1 和team2 帳號進行管理。先要求僅允許team1 ...


Vsftp 實驗案例一:(本地用戶)

試驗版本:Linux7.X版本

公司內部現在有一臺FTP 和WEB 伺服器,FTP 的功能主要用於維護公司的網站內容,包括上傳文

件、創建目錄、更新網頁等等。公司現有兩個部門負責維護任務,他們分別適用team1 和team2

帳號進行管理。先要求僅允許team1 和team2 帳號登錄FTP 伺服器,但不能登錄本地系統,並將

這兩個帳號的根目錄限製為/var/www/html,不能進入該目錄以外的任何目錄。

 

ftp 和www web伺服器相結合。

www web伺服器根目錄:  /var/www/html

只允許:team1和team2兩用戶 可以上傳。 vsftp禁止匿名。

 

分析:

將FTP 和WEB 伺服器做在一起是企業經常採用的方法,這樣方便實現對網站的維護,為了增強安

全性,首先需要使用僅允許本地用戶訪問,並禁止匿名用戶登錄。其次使用chroot 功能將team1

和team2 鎖定在/var/www/html 目錄下。如果需要刪除文件則還需要註意本地許可權

 

解決方案:

1)建立維護網站內容的ftp 帳號team1 和team2 並禁止本地登錄,然後設置其密碼

[root@localhost ~]# useradd -s /sbin/nologin team1

[root@localhost ~]# useradd -s /sbin/nologin team2

[root@localhost ~]# echo "123456" | passwd --stdin team1

Changing password for user team1.

passwd: all authentication tokens updated successfully.

[root@localhost ~]# echo "123456" | passwd --stdin team2

Changing password for user team2.

passwd: all authentication tokens updated successfully.

2)配置vsftpd.conf 主配置文件並作相應修改

vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO:禁止匿名用戶登錄

local_enable=YES:允許本地用戶登錄

 改:

 

 

為:

 

 

 

local_root=/var/www/html:設置本地用戶的根目錄為/var/www/html

chroot_list_enable=YES:激chroot 功能

chroot_list_file=/etc/vsftpd/chroot_list:設置鎖定用戶在根目錄中的列表文件。此文件存放要鎖定的用戶名;

allow_writeable_chroot=YES :允許鎖定的用戶有寫的許可權

保存退出;

(3)建立/etc/vsftpd/chroot_list 文件,添加team1 和team2 帳號

[root@localhost vsftpd]# touch /etc/vsftpd/chroot_list

[root@localhost ~]# ll !$

-rw-r--r-- 1 root root 0 Nov 10 17:08 /etc/vsftpd/chroot_list

[root@xuegod63 ~]# vim /etc/vsftpd/chroot_list  #寫入以下內容,一行,一個用戶名

team1

team2

(4)修改本地許可權

[root@localhost ~]# ll -d /var/www/html/

drwxr-xr-x. 2 root root 4096 Oct  6  2011 /var/www/html/

[root@localhost ~]# chmod -R o+w /var/www/html/

[root@localhost ~]# ll -d /var/www/html/

drwxr-xrwx. 2 root root 4096 Oct  6  2011 /var/www/html/

(5)重啟vsftpd 服務使配置生效

service vsftpd restart

 

vsftp實驗案例二:(匿名用戶,創建文件下載上傳文件。。。)

公司技術部準備搭建一臺功能簡單的FTP 伺服器,允許所有員工上傳和下載文件,並允許創建用

戶自己的目錄。

分析:

允許所有員工上傳和下載文件需要設置成允許匿名用戶登錄並且需要將允許匿名用戶上傳功能

開啟,

anon_mkdir_write_enable 欄位可以控制是否允許匿名用戶創建目錄。

[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back

vim  /etc/vsftpd/vsftpd.conf  #修改以下內容

 

允許匿名用戶訪問

anonymous_enable=YES

允許匿名用戶上傳文件並可以創建目錄

anon_upload_enable=YES

anon_mkdir_write_enable=YES

 

 

Vsftp實驗案例二:(匿名用戶)

公司技術部準備搭建一臺功能簡單的FTP 伺服器,允許所有員工上傳和下載文件,並允許創建用

戶自己的目錄。

分析:

允許所有員工上傳和下載文件需要設置成允許匿名用戶登錄並且需要將允許匿名用戶上傳功能

開啟,

anon_mkdir_write_enable 欄位可以控制是否允許匿名用戶創建目錄。

[root@localhost vsftpd]# cp vsftpd.conf vsftpd.conf.back

vim  /etc/vsftpd/vsftpd.conf  #修改以下內容

 

允許匿名用戶訪問

anonymous_enable=YES

允許匿名用戶上傳文件並可以創建目錄

anon_upload_enable=YES

anon_mkdir_write_enable=YES

 

 

 

啟動服務:

service vsftpd restart

測試:

 

 

[root@localhost vsftpd]# chown  ftp.ftp  /var/ftp/pub/

然後測試,是可以新建文件夾了,但是不能重命名,不能刪除!


[root@localhost vsftpd]# vim vsftpd.conf

anon_other_write_enable=YES  ##預設沒有,需要手動添加下這行

重啟服務,即可重命名文件夾。

下麵我們來一步一步的實現,先修改目錄許可權,創建一個公司上傳用的目錄,叫xuegoddata,設置擁有者為ftp 用戶所有,目錄許可權是755

[root@localhost vsftpd]# mkdir /var/ftp/xuegoddata

[root@localhost vsftpd]# chown ftp.ftp /var/ftp/xuegoddata/

[root@localhost vsftpd]# ll -d !$

ll -d /var/ftp/xuegoddata/

drwxr-xr-x 2 ftp root 4096 Mar  9 19:30 /var/ftp/xuegoddata/

 

然後重新啟動服務

[root@localhost ~]# service vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

 

最後發現能刪除和創建文件了;實驗完成!

 

 

Vsftp實驗案例三:(虛擬用戶登錄ftp)

實驗說明;

一、允許所有人訪問/var/ftp/soft目錄不能創建文件和目錄,不允許上傳文件,devadm虛擬戶可以對該目錄有修改上傳,刪除等操作許可權。

二、sales虛擬用戶只能讀取/var/market。其餘沒有任何許可權,salesadm對該目錄有刪除修改、上傳、創建等許可權。

三、不允許本地用戶登錄。

1、 關閉防火牆

[root@localhost ~]# systemctl stop firewalld.service

[root@localhost ~]# setenforce 0

2、 安裝vsftpd軟體

3、 建立虛擬用戶賬戶文件

[root@localhost ~]# vim /etc/vsftpd/vusers.list

devadm

123456a

sales

123456b

salesadm

123456c

 

4、 創建資料庫文件

[root@localhost ~]# cd /etc/vsftpd/

[root@localhost vsftpd]# db_load -T -t hash -f vusers.list vusers.db

[root@localhost vsftpd]# chmod 600 /etc/vsftpd/vusers.*

[root@localhost vsftpd]# file  vusers.db    #查看轉換後的文件類型

vusers.db: Berkeley DB (Hash, version 9, native byte-order)     #提示這些是成了

 

5、添加虛擬用戶的映射賬號、FTP根目錄

    [root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin zhangsan

[root@localhost ~]# chmod 755 /var/ftproot

 

6、 為虛擬用戶建立PAM認證文件

[root@localhost ~]# vim /etc/pam.d/vsftpd.vu

auth    required pam_userdb.so db=/etc/vsftpd/vusers

account required pam_userdb.so db=/etc/vsftpd/vusers

 

7、 修改vsftpd配置,添加虛擬用戶支持

[root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf

    pam_service_name=vsftpd.vu         //修改

userlist_enable=NO                   //修改

anon_root=/var/ftp/soft               //末尾添加

guest_enable=yes                     //添加

guest_username=zhangsan           //添加

user_config_dir=/etc/vsftpd/vusers_dir       //添加

allow_writeable_chroot=YES             //添加

 

8、 創建虛擬用戶獨立的配置文件

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

[root@localhost vsftpd]# cd /etc/vsftpd/vusers_dir

[root@localhost vusers_dir]# touch devadm

[root@localhost vusers_dir]# vim devadm

local_root=/var/ftp/soft

write_enable=YES

anon_upload_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

    root@localhost vusers_dir]# vim sales

       local_root=/var/market

    [root@localhost vusers_dir]# vim salesadm

       local_root=/var/market

write_enable=YES

anon_upload_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

[root@localhost vusers_dir]# systemctl restart vsftpd

 

9、創建目錄和文件準備驗證(遇到文件上傳不了或者修改不了的,記得修改許可權或者屬主)

[root@localhost vsftpd]# mkdir /var/ftp/soft

[root@localhost vusers_dir]# touch /var/ftp/soft/devadm

[root@localhost vusers_dir]# mkdir /var/market

[root@localhost var]# chmod 755 /var/market/

[root@localhost vusers_dir]# touch /var/market/sales

[root@localhost var]# chmod 755 /var/ftp/soft

[root@localhost vusers_dir]# chown zhangsan /var/market

[root@localhost vusers_dir]# chown zhangsan /var/ftp/soft

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 點這裡進入ABP開發手記目錄 創建目錄 在應用層(即JD.CRS.Application)下新建文件夾Course //用以存放Course相關應用服務 在JD.CRS.Application/Course下新建文件夾Dto //用以存放Course相關數據傳輸對象 創建數據傳輸對象 在JD.CRS ...
  • 點這裡進入ABP開發手記目錄 設置資料庫 在基礎設施層(即JD.CRS.EntityFrameworkCore)打開資料庫環境設置 JD.CRS.EntityFrameworkCore/EntityFrameworkCore/CRSDbContext.cs添加一行 public DbSet<Cour ...
  • VBA 中的用戶窗體就是指帶 UI 的用戶界面,在運行的時候會單獨彈出一個視窗,類似於在 windows 系統中運行的一個可執行程式一樣(這個說法不太嚴謹,因為可執行程式也可能是只有命令視窗而沒有 UI 的)。再具體一點,就是一個視窗界面當中,有可能會包含有文本框、覆選框、單選按鈕、下拉列表,就如在 ...
  • 點這裡進入ABP開發手記目錄 創建實體 在領域層(即JD.CRS.Core)下新建文件夾Entitys //用以存放實體對象添加一個實體類Course.cs //課程信息 1 using Abp.Domain.Entities; 2 using Abp.Domain.Entities.Auditin ...
  • 前陣子一直期待.net core3.0正式版本的出來,以為這個版本出來,Winform程式又迎來一次新生了,不過9.23日出來的馬上下載更新VS,創建新的.net core Winform項目,發現並沒有Winform窗體設計器。而微軟目前則是通過插件的方式,讓我們單獨下載Winform設計器,這個... ...
  • 1.Autofac基礎使用 參考: https://www.cnblogs.com/li150dan/p/10071079.html 2.ASP.NETCore 3.0 Autofac 容器替換 需要引用:Autofac, Autofac.Extensions.DependencyInjection ...
  • 更改Ubuntu下預設Python版本 首先查看系統內有哪些版本的Python ls /usr/bin/python 查看當前python版本 python --version 基於用戶修改預設版本 想要為某個特定用戶修改 Python 版本,只需要在其 home 目錄下創建一個 alias(別名) ...
  • vim 功能 : 一個強大的文本編輯器 語法格式 :vim [ 選項 ] / 路徑 / 文本文件名 命令格式: vi [ 選項 ] [ 文件名 ] +num 打開某個文件直接跳轉到 num 行 -b 以 binary 方式打開文件 , 用於編輯二進位文件 -R 以只讀方式打開文件 一.VIM 基礎使 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...