FTP-網絡文件服務器

部署思路

  • 單純上傳下載ftp
  • 系統集成間的共享 samba
  • 網絡存儲服務器 NFS

網絡文件服務器:通過網絡共享文件或文件夾,實現數據共享
NAS ( network append storage):共享的是文件夾

  1. FTP:文件服務器
  2. samba:不同系統間的文件夾或設備共享
  3. NFS:網絡文件系統

FTP介紹

  • FTP (File transfer protocol)是TCP/IP 協議組中的協議之一 ,是一個TCP協議。
  • 功能:在服務器與客戶端之間進行文件的傳輸。FTP就是實現兩臺計算機之間的拷貝。從遠程計算機拷貝文件至自己的計算機上,稱之為“下載 (download)”文件將文件從自己計算機中拷貝至遠程計算機上,則稱之為“上傳(upload)”文件
  • 這個古老的協議使用的是明碼傳輸方式,且過去有相當多的安全危機歷史
  • 為了更安全的使用 FTP 協議 ,我們主要介紹較為安全但功能較少的 vsftpd(very secure File transfer protocol )這個軟件。
  • FTP是一個C/S類型的軟件,FTP監聽TCP端口號為21,數據端口為20

應用場景?

  • 文件服務器
  • 下載服務器
  • 上傳服務器

FTP應用模式

  • FTP支持兩種模式,一種方式叫做Standard(也就是 PORT方式,主動方式),一種是 Passive (也就是PASV ,被動方式)。 Standard模式 FTP的客戶端發送 PORT 命令到FTP服務器。 Passive模式FTP的客戶端發送 PASV命令到 FTP Server。
  • 主動模式:Port模式FTP客戶端首先和FTP服務器的TCP21端口建立連接,通過這個通道發送命令,客戶端需要接收數據的時候在這個通道上發送PORT命令。PORT命令包含了客戶端用什么端口接收數據。在傳送數據的時候,服務器端通過自己的TCP20端口連接至客戶端的指定端口發送數據。FTP server必須和客戶端建立一個新的連接用來傳送數據,vsftp默認模式。

  • 被動模式:Passive模式在建立控制通道的時候和Standard模式類似,但建立連接后發送的不是Port命令而是PaSv命令。FTP服務器收到PaSv命令后,隨機打開一個高端端口(端口號大于1024)并且通知客戶端在這個端口上傳送數據的請求,客戶端連接FTP服務器此端口,然后FTP服務器將通過這個端口進行數據的傳送,這個時候FTP server不再需要建立一個新的和客戶端之間的連接。

FTP訪問方式?

  • FTP服務器在默認的情況下,依據使用者登錄的情況而分為三種不同的身份,分別是
    • 實體賬號:本地賬戶
    • 來賓賬戶: guest
    • 匿名登錄者 :anonymous ftp
      ?

FTP服務器部署

// a、 vsftp安裝
yum -y install vsftpd// b、 vsftp開機啟動
systemctl enable vsftpd
// Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to/usr/lib/systemd/system/vsftpd.service.// c、啟動vsftp服務
systemctl start vsftpd//d、 驗證啟動
Isof -i :21
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
vsftpd 1951 root 4u IPv6 32837 0t0 TCP *:ftp (LISTEN)

相關配置文件?

  • 主配文件:/etc/vsftpd/vsftpd.conf
  • 下載目錄:/var/ftp/
  • FTP日志:/var/log/xferlog

FTP客戶端

FTP相關命令

虛擬用戶登陸

案例

為了解決公司員工文件存儲和下載的需求。要求部署內部FTP服務器,員工可以通過自己的賬
號的權限對FTP進行操作。

  1. 公司公共文件可以通過圈名下載
  2. 公司財務部、商務部、行政部、技術部分別擁有自己的部門文件夾,彼此之間相互隔離
  3. 部門之間只有主管才能擁有上傳權限,普通員工只能下載
  4. 禁止用戶查看家目錄以外的數據
  5. 確保ftp賬號安全

?案例拆解

  • FTP需要開啟匿名下載 默認FTP支持匿名下載
  • 分析針對不同部分實現目錄隔離 有兩種方法1.同部門共用本地賬號2.虛擬賬號
  • 部門內部員工權限不同 實現方法 虛擬賬號
  • 禁止用戶切出 chroot
  • 防止本地賬號泄露 虛擬賬號

?部署步驟

  • 創建虛擬用戶映射的本地賬號
創建虛擬用戶映射的本地賬號
useradd -s /sbin/nologin -d /var/tmp/vuser_ftp yudan
新版vsftpd不允許用戶主目錄有w權限,因此在主目錄下新建一個子目錄,賦予700權限。所有上傳、下載、刪除、重命名等操作只能在子目錄中進行
chmod 500 /var/tmp/vuser_ftp設置不同部門之間的根文件夾,給予700權限
mkdir /var/tmp/vuser _ftp/shichang
mkdir /var/tmp/vuser _ftp/caiwu
mkdir /var/tmp/vuser _ftp/xingzheng
mkdir /var/tmp/vuser _ftp/jishu
chmod 700 /var/tmp/vuser_ftp/*修改部門共享文件夾的所有者和屬組為yudan
chown yudan.yudan /var/tmp/vuser_ftp -R
  • 配置文件開啟虛擬用戶驗證
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect _from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
Is_recurse_enable=YES
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_usemame=ayitula
virtual_use_local_privs=NO
user_config_dir=/etc/vsftpd/vconf.d/
  • 建立虛擬用戶驗證數據庫
建立虛擬用戶賬號密碼文件
cat /etc/vsftpd/vuser
sc_01
123
xZ_01
123
js_01
123
cw_01
123
SC_02
222
xz_02
222
js_02
222
cw_02
222生成賬號密碼數據庫文件
db _load -T -t hash -f /etc/vsftpd/vuser /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
  • 開啟pam認證
cat /etc/pam.d/vsftpd
#注意要添加到開頭
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
#% PAM-1.0
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
  • 設置不同部門員工的權限
建立部門員工子配置文件,用于定義權限
mkdir /etc/vsftpd/vconf.d/定義虛擬用戶權限
部門主管有管理權限
主管模板文件
cat /etc/vsftpd/vconf.d/01_temp
#指定家目錄
local_root=/var/tmp/vuser_ftp/xxx
#允許新建文件或目錄權限
anon_umask=077
#開放下載權限
anon_world_readable_only=NO
#開放上傳權限
anon_upload_enable=YES
#開放創建目錄的權限
anon_mkdir_write_enable=YES
#開放刪除和重命名目錄的權限
anon other write enable=YES部門員工只有下載權限
部門員工模板文件
cat /etc/vsftpd/vconf.d/02_temp
local_root=/var/tmp/vuser_ftp/xxx
anon_ world_readable_only=NO

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

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

    相關文章

    在 Ubuntu 22.04 x64 系統安裝/卸載 1Panel 面板

    一、 1Panel 是什么? 1Panel 是一款基于 Go 語言開發的現代化開源服務器管理面板(類似寶塔面板),專注于容器化(Docker)和云原生環境管理,提供可視化界面簡化服務器運維操作。 1. 1Panel主要功…

    Redis | Redis集群模式技術原理介紹

    關注:CodingTechWork Redis 集群模式概述 Redis 集群(Cluster)模式是 Redis 官方提供的分布式解決方案,旨在解決單機 Redis 在數據量和性能上的限制。它通過數據分片、高可用性和自動故障轉移等特性,提供了水平擴展和…

    Servlet小結

    視頻鏈接:黑馬servlet視頻全套視頻教程,快速入門servlet原理servlet實戰 什么是Servlet? 菜鳥教程:Java Servlet servlet: server applet Servlet是一個運行在Web服務器(如Tomcat、Jetty)或應用…

    數據庫進階之MySQL 程序

    1.目標 1> 了解mysqlId服務端程序 2> 掌握mysql客戶端程序的使用 3> 了解工具包中的其他程序 2. MySQL程序簡介 本章介紹 MySQL 命令?程序以及在運?這些程序時指定選項的?般語法(如:mysql -uroot -p)。 對常?程序進?詳細的講解(實用工具的使用方法)&#xf…

    VS2022 設置 Qt Project Settings方法

    本文解決的問題:創建完成后,如需要用到Sql或者Socket等技術,需要設置Qt Project Settings; 1、打開VS2022編譯器,創建QT項目工程 2、創建完成后,點擊 解決方案 →右鍵屬性 3、選擇 Qt Project Settings →…

    React:封裝一個評論回復組件

    分析 用戶想要一個能夠顯示評論列表,并且允許用戶進行回復的組件。可能還需要支持多級回復,也就是對回復進行再回復。然后,我要考慮組件的結構和功能。 首先,數據結構方面,評論應該包含id、內容、作者、時間&#xf…

    wx讀書某sign算法詳解

    未加固 版本&#xff1a;9.2.3 前置知識&#xff1a; (v41 & 0xFFFFFFFFFFFFFFFELL) 是一種高效的奇偶檢查方法&#xff0c;用于判斷數值 v41 是否為奇數。 std::sort<std::lessstd::string,std::string &,std::string>(a1, v6, s); 排序算法 # 完全等價的字…

    Django的異步任務隊列管理_Celery

    1 基本原理 Celery 是一個異步任務隊列&#xff0c;能夠將耗時操作&#xff08;如發郵件、處理圖片、網絡爬蟲等&#xff09;從 Django 主線程中分離出來&#xff0c;由后臺的 worker 處理&#xff0c;避免阻塞請求。Celery 作為獨立運行的后臺進程&#xff08;Worker&#xf…

    【計算機網絡】Linux網絡的幾個常用命令

    &#x1f4da; 博主的專欄 &#x1f427; Linux | &#x1f5a5;? C | &#x1f4ca; 數據結構 | &#x1f4a1;C 算法 | &#x1f152; C 語言 | &#x1f310; 計算機網絡 相關文章&#xff1a;計算機網絡專欄 目錄 ping&#xff08;檢測網絡連通性&#xff09;…

    全開源、私有化部署!輕量級用戶行為分析系統-ClkLog

    ClkLog是一款支持私有化部署的全開源埋點數據采集與分析系統&#xff0c;兼容Web、App、小程序多端埋點&#xff0c;快速洞察用戶訪問路徑、行為軌跡&#xff0c;并生成多維用戶畫像。助力中小團隊搭建輕量靈活的用戶行為分析平臺。 為什么需要一款私有化的埋點分析系統&#x…

    golang定時器的精度

    以 go1.23.3 linux/amd64 為例。 定時器示例代碼&#xff1a; package mainimport ("context""fmt""time" )var ctx context.Contextfunc main() {timeout : 600 * time.Secondctx, _ context.WithTimeout(context.Background(), timeout)dea…

    svn 遠程服務搜索功能

    svn服務器沒有遠程搜索功能&#xff0c;靠人工檢索耗時耗力&#xff0c;當服務器文件過多時&#xff0c;全部checkout到本地檢索&#xff0c;耗時太久。 1. TortoiseSVN 安裝注意事項 下載官網地址&#xff1a;https://tortoisesvn.en.softonic.com/download 安裝時選中 co…

    uniapp-商城-39-shop 購物車 選好了 進行訂單確認4 配送方式2 地址頁面

    上面講基本的樣式和地址信息&#xff0c;但是如果沒有地址就需要添加地址&#xff0c;如果有不同的地址就要選地址。 來看看處理方式&#xff0c; 1、回顧 在delivery-layout中 methods:{goAddress(){uni.navigateTo({url:"/pagesub/pageshop/address/addrlist"})…

    Linux命令-iostat

    iostat 命令介紹 iostat 是一個用于監控 Linux 系統輸入/輸出設備加載情況的工具。它可以顯示 CPU 的使用情況以及設備和分區的輸入/輸出統計信息&#xff0c;對于診斷系統性能瓶頸&#xff08;如磁盤或網絡活動緩慢&#xff09;特別有用。 語法&#xff1a; iostat [options…

    vue2關于Node.js17及以上報digital envelope錯誤的解決辦法

    文章目錄 簡介錯誤原因解決方案設置環境變量修改package.json安裝舊版本Node.js更新依賴項更改加密設置 簡介 digital envelope routines::unsupported錯誤?通常發生在Node.js版本升級到17或更高版本后&#xff0c;因為這些版本開始使用OpenSSL 3.0&#xff0c;它對算法和密鑰…

    LLM - Large Language Model

    回顧2024&#xff1a;與LLM又相伴一年的經歷與思考 - 知乎萬字長文入門大語言模型&#xff08;LLM&#xff09; - 知乎“大模型本質就是兩個文件&#xff01;”特斯拉前AI總監爆火LLM科普&#xff0c;時長1小時&#xff0c;面向普通大眾 - 知乎大模型本質及趨勢剖析&#xff0c…

    Linux 內核網絡協議棧中的關鍵數據結構:inet_skb_parm 與 ip_options

    在 Linux 內核的網絡協議棧中,數據包的高效處理依賴于一系列精心設計的數據結構。這些結構體不僅需要存儲網絡數據的元信息,還需支持復雜的協議邏輯(如路由、分片、安全策略等)。本文聚焦兩個核心結構體 struct inet_skb_parm 和 struct ip_options,解析它們的設計原理、功…

    如何修復卡在恢復模式下的 iPhone:簡短指南

    Apple 建議使用恢復模式作為最后的手段&#xff0c;以便在 iPhone 啟動循環或顯示 Apple 標志時恢復 iPhone。這是解決持續問題的簡單方法&#xff0c;但您很少使用。但是&#xff0c;當您的 iPhone 卡住恢復模式本身時&#xff0c;您會怎么做&#xff1f;雖然 iPhone 卡在這種…

    10前端項目----商品詳情頁/滾輪行為

    商品詳情頁面 商品詳情組件發送請求獲取相應商品詳情信息組件展示數據 優化一下路由配置代碼滾輪自動置頂 商品詳情組件 路由配置 點擊商品進行跳轉—將Detail組件變成路由組件 從商品到詳情&#xff0c;肯定需要傳參(產品ID)告訴Detail是哪個商品&#xff0c;需要展示哪個商品…

    DIFY 又跟新了,來到 1.3.0 版本,看正文

    歡迎來到 1.3.0 版本&#xff01;添加了各種巧妙的功能、修復了錯誤&#xff0c;并帶來了一些新功能&#xff1a; 一、核心亮點&#xff1a; 結構化輸出 1、LLM 節點新增JSON Schema編輯器&#xff0c;確保大語言模型能夠返回符合預設格式的JSON數據。這一功能有助于提升數據…