成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Samba服務器安全指南

系統 Linux
Samba 有很多特性可以限制哪些人能訪問哪些共享文件 — 限制特定用戶名的訪問、強制要求密碼、檢查組成員或在網絡層過濾。本文介紹如何在防火墻級別配置進出 Samba 服務器的訪問,以及如何排除與 Samba 服務器有關的防火墻故障。

在本文中,將了解這些概念:

  • 在防火墻級別配置進出 Samba 服務器的訪問
  • 排除與 Samba 服務器有關的防火墻故障

本文幫助您準備 Linux Professional Institute (LPI) 的混合環境專業考試(302)的主題 315 下的目標 315.2。該目標的權值為 2。

先決條件

為了最有效地利用本系列中的文章,您應該具備高級 Linux 知識,并需要準備一個 Linux 系統,用它來練習本文介紹的命令。另外,您還要能訪問 Windows 環境,從而可以用它來測試安全設置。

防火墻

Samba 有很多特性可以限制哪些人能訪問哪些共享文件 — 限制特定用戶名的訪問、強制要求密碼、檢查組成員或在網絡層過濾。后面的參數,比如 allow hosts 和 smb ports,它們對 IP 地址和 User Datagram Protocol (UDP)/TCP 端口進行操作,提供了一種簡單的方法來控制哪些主機可連接到 Samba 服務器上。

如果能識別哪些設備連接到服務器,比如屬于內部網絡,或者甚至是某個特定的子網或一組服務器,那么就實現了網絡層控制。這是第一道防線:如果攻擊者無法連接到設備,那么設備會更安全。

在 Samba 守護進程中控制網絡網絡訪問,這聽上去是完美的解決方案,但其實有更好的方法。為了確定遠程連接是否滿足要求,Samba 首先要接受連接,因為 Samba 只有在完成連接后才能獲取詳細信息。如果是想要防止不符合要求的用戶連接到 Samba,那么防止 Samba 看到這些連接更有意義。Samba 中的所有配置都只會影響 Samba,因此必須為其他的守護進程(比如 web 服務器和文件傳輸)找到類似的解決方案。

在典型環境中,網絡安全不是由系統管理員而是由其他 IT 員工負責。在主機層(而不是應用程序層)控制訪問能夠實現業務分離,而且會減少由于更改 smb.conf 而導致的錯誤。

了解 iptables

Linux 提供了一個強大的基于主機的防火墻,稱為 iptables。該防火墻能夠檢查進出或通過 Linux 設備的包。iptables 也可以指 Linux 內核中的包過濾系統或用來管理過濾器的命令名稱。經過幾年的發展,內核中的包過濾系統已經從簡單的匹配引擎發展成可動態加載插件的強大防火墻。因此,如果是在基本用例范圍之外,配置起來就相當復雜。

關于 iptables 的第一個重要概念就是表本身。一個表就是一組規則和操作的自包含列表。當內核需要過濾包時,它會查詢 filter 表。如果需要網絡地址轉換 (NAT),就會用到 nat 表。根據加載到內核的網絡特性的不同,還會用到其他表。一個數據包可遍歷多個表 — 例如,在地址轉換前執行包過濾。

每個表的內部都是一組鏈。每個表都有一些預定義的鏈,您也可以將自定義鏈加入列表中。這些預定義的鏈會在數據包生命周期不同時刻使用。例如,filter 表有三個預定義鏈:

  • INPUT。 用來定義如何處理傳向主機自身的數據包。
  • OUTPUT。 適用于從主機傳出的包。
  • FORWARD。 僅用于從一個接口傳遞到另一個接口,比如當主機充當路由器時的數據包。

每條鏈都是一個包含零個或多個規則的有序列表,每個規則由匹配的子句和目標組成。匹配子句可以是任何內容,從 IP 地址或端口到只在特定操作過于頻繁時起作用的速率限制語句。目標可以是另一個鏈或一個操作,比如接受或丟棄數據包的指令。您可以通過內核模塊創建匹配子句和目標,沒有任何限制。

內核會根據需要做什么來選擇鏈,并按順序查看每條規則。符合第一條匹配規則后,內核就跳到目標上。大多數情況下,規則處理會停止,盡管有些目標—比如登錄—被認為是不會結束的,因此內核將繼續處理下一條規則。如果沒有匹配任何規則,將會使用鏈的默認目標。

請注意:出于本文的目的,本文只用到 filter 表。

使用防火墻保護 Samba

有多種不同的方法來設計 Samba 的防火墻策略,選擇時要考慮網絡布局以及誰或哪些主機需要訪問 Samba 服務器等事項。從較高的層面來看,您可以選擇保護整個主機或只關注 Samba。

如果您想要保護整個主機,那么您就不必擔心 Samba 使用哪個端口。以下代碼是一個簡單策略,只允許來自 10.0.0.0/8 專用網絡的流量傳輸到本地服務器:

iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

第一個命令向 INPUT 鏈添加了一條規則,它將規則添加到當前的規則列表中。該規則設置了來自源網絡(-s)10.0.0.0/8 的所有內容都跳到 ACCEPT 目標,它將會接受數據包。第二個命令允許來自現有會話的包,這是通過調用帶有 -m state 的狀態匹配器實現的。匹配器會追蹤哪些連接離開主機。傳出的連接的響應包被認為是 established 或 related,因此規則的其余部分會接受這些包。

最后一個命令設置 INPUT 鏈丟棄數據包的默認策略。如果數據包不是來自 10.0.0.0/8 網絡或者不是主機生成的連接的一部分,那么它不會被接受。

您可以通過在端口層過濾來獲得更加精細的粒度。前一個示例過濾源地址,因此會阻塞所有服務。如果在您的主機上有一個 web 服務器,您想讓它對一般的 Internet 開放訪問,那么之前的策略就不起作用了。

回想一下 “學習 Linux,302(混合環境):配置 Samba”,Samba 使用了四種不同的端口:

  • 137 UDP。 網絡基本輸入/輸出系統 (NetBIOS) 名稱服務。
  • 138 UDP。 NetBIOS 數據報服務。
  • 139 TCP。 NetBIOS 會話服務。
  • 445 TCP。 直接托管(TCP 上的 Common Internet File System [CIFS])。

清單 1 演示了一個策略,允許從 10.0.0.0/8 網絡連接到 Samba 服務,也允許 web 服務器沒有任何限制地進行操作。

清單 1. 在端口層操作的策略

				
iptables -A INPUT -p tcp -m state --state NEW --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/8 --dport 137 -j ACCEPT
iptables -A INPUT -p udp -s 10.0.0.0/8 --dport 138 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -s 10.0.0.0/8 --dport 139 -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW -s 10.0.0.0/8 --dport 445 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

清單 1 的策略比之前的策略復雜得多,因為它對不同的應用程序進行了設置,每個都有不同的策略。前兩條規則匹配所有作為新會話(-m state --state NEW)的一部分,并且發送到端口 80 或端口 443(--dport 80、 --dport 443)的傳入的 TCP 數據包(-p tcp)。對于源地址沒有任何限制,因此會支持所有人。

接下來的兩行匹配所有從內部網絡(-s 10.0.0.0/8)發送到端口 137 或端口 138(--dport 137、--dport 138)的 UDP 數據包(-p udp)。UDP 沒有狀態,因此無需擔心連接是新的還是已建立的。

第 5 行和第 6 行結合狀態匹配器和源地址過濾器,僅僅允許端口 139 和端口 445 上來自內部網絡的新連接。

最后兩行與之前策略的操作相同。如果數據包與當前連接有關,則支持它。其他的將會被丟棄。

排除防火墻故障

防火墻問題很常見,因為會遇到沒有想到的的需求或發現應用程序并沒有按您預計的方式運行。規則本身的錯誤也很常見,尤其是處理一長串端口號和 IP 地址時。但也不是所有問題都與防火墻有關,因此您應該了解一些基本的網絡故障排除步驟。

查看策略

使用 iptables 命令查看策略。-L 選項會列出策略,而 verbose(-v)選項會添加額外的細節信息,比如數據包計數器。清單 2 顯示了 清單 1 的策略。

清單 2. 查看詳細策略

				
# iptables -L -v
Chain INPUT (policy DROP 47 packets, 5125 bytes)
 pkts bytes target  prot opt in   out  source      destination
    0     0 ACCEPT  tcp  --  any  any  anywhere    anywhere     state NEW tcp dpt:http
    0     0 ACCEPT  tcp  --  any  any  anywhere    anywhere     state NEW tcp dpt:https
    0     0 ACCEPT  udp  --  any  any  10.0.0.0/8  anywhere     udp dpt:netbios-ns
    0     0 ACCEPT  udp  --  any  any  10.0.0.0/8  anywhere     udp dpt:netbios-dgm
    0     0 ACCEPT  tcp  --  any  any  10.0.0.0/8  anywhere     state NEW tcp dpt:139
    0     0 ACCEPT  tcp  --  any  any  10.0.0.0/8  anywhere     state NEW tcp dpt:445
  214 15216 ACCEPT  all  --  any  any  anywhere    anywhere     state RELATED,ESTABLISHED

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 292 packets, 35009 bytes)
 pkts bytes target     prot opt in     out     source               destination

明細統計數據會顯示匹配頭兩列規則的數據包數目和字節數目。對于清單 2,您會看到該數據包只匹配最后一條規則。仔細看輸出的第一行,您會看到默認的目標也有一個數據包數目。有 45 個數據包被丟棄,因為它們不匹配任何一條規則;這表示或者是未授權的用戶試圖訪問主機,或者是合法的流量被不正確的防火墻策略所阻塞。

查看防火墻策略的另一用途是完整地了解策略。由于處理會在第一次匹配后停止,因此您應該從策略開頭處開始,一直往下看,確定是否有一條規則會丟棄您的流量。

一個常見場景是不具體的規則出現在具體的規則之前。為了避免出現問題,將最具體的規則放在策略頭部,以便首先發現例外。但這樣的慣例并不總是有效,因此您應該自己查找那些不能連接到服務器的用戶。

清單 3 顯示了 Engineering 網絡中一臺服務器的策略。同一個網絡中的用戶無法連接到服務。

清單 3. 含有覆蓋規則的策略

				
# iptables -L -v
Chain INPUT (policy DROP 21 packets, 2967 bytes)
target   prot opt in   out  source       destination
ACCEPT   tcp  --  any  any  anywhere     anywhere      state NEW tcp dpt:http
ACCEPT   tcp  --  any  any  anywhere     anywhere      state NEW tcp dpt:https
DROP     tcp  --  any  any  10.0.0.0/8   anywhere
ACCEPT   udp  --  any  any  10.2.3.0/24  anywhere      udp dpt:netbios-ns
ACCEPT   udp  --  any  any  10.2.3.0/24  anywhere      udp dpt:netbios-dgm
ACCEPT   tcp  --  any  any  10.2.3.0/24  anywhere      state NEW tcp dpt:netbios-ssn
ACCEPT   tcp  --  any  any  10.2.3.0/24  anywhere      state NEW tcp dpt:microsoft-ds
ACCEPT   all  --  any  any  anywhere     anywhere      state RELATED,ESTABLISHED

清單 3 中的服務器屬于 Engineering 網絡,它是 10.2.3.0/24。從公司其他地方,即 10.0.0.0/8 的訪問也會被阻塞。10.2.3.0/24 網絡是更大網絡的子網,因此阻塞整個 10.0.0.0/8 網絡的規則在 Server Message Block (SMB) 相關規則之前;因此,即使是 Engineering 用戶也會被 DROP 捕獲,因為 iptables 使用的是首次匹配,而非最佳匹配概念。

以上問題的解決方案是在具體規則處理之后阻塞公司網絡。那樣的話,將首先接受 Engineering 網絡的包。

高級故障排除

您通常無法確定是防火墻的問題,還是網絡其他地方出了問題。最簡單的測試方法是關閉防火墻,看看連接是否成功。當然,并不總能這么做,如果不能關閉防火墻,那么其次的最佳方案是觀察進入服務器的數據包。

tcpdump 工具能顯示服務器看到的網絡包,即使防火墻策略丟棄了該包。如果能看到來自服務器的連接嘗試,那么您就知道數據包到達了服務器。假設服務正在運行,那么您很有可能得出防火墻丟棄數據包的結論。清單 4 顯示了 tcpdump 工具正在執行。

清單 4. 被阻塞的 SMB 連接的數據包跟蹤

				
# tcpdump -i eth0 tcp port 445
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
20:24:18.392106 IP CLIENT.search > SERVER.microsoft-ds: S ...
20:24:21.358458 IP CLIENT.search > SERVER.microsoft-ds: S ...
20:24:27.393604 IP CLIENT.search > SERVER.microsoft-ds: S ...

tcpdump 選項如下所示:

  • -i eth0。 監聽 eth0 接口。
  • tcp port 445。 檢查 TCP 端口 445 的數據包。

清單 4 的結果顯示有三個數據包進入服務器。箭頭表示數據流的方向:三個包在 microsoft-ds port 端口(即 455)上從客戶端到達服務器。行末的 S 表示連接嘗試,沒有響應表示服務器未響應。

連接失敗的另一個跡象是連續數據包之間的差別。左側的時間戳顯示第二個包在第一個包之后約 3 秒鐘才到達,第三個包又在這 6 秒鐘后到達。大多數網絡協議會實現指數后退 (exponential back-off) 算法,這意味著每次連續嘗試之間的時間會翻倍。

原文:http://www.ibm.com/developerworks/cn/linux/l-lpic3-315-2/index.html?ca=drs-

責任編輯:yangsai 來源: IBMDW
相關推薦

2010-10-27 10:14:34

2017-01-05 13:41:56

2017-12-04 10:03:45

2014-08-04 11:22:21

linuxsamba服務器

2009-09-01 09:50:22

Samba服務器

2009-09-18 13:00:20

2009-09-24 17:37:23

2010-03-31 10:05:40

CentOS Samb

2011-11-10 13:05:40

刀片服務器機架服務器采購指南

2023-01-27 14:50:45

2009-07-29 15:54:52

家用服務器DIY

2018-01-31 11:20:48

2011-08-08 18:43:26

2012-12-31 10:58:12

2009-12-28 17:23:54

Fedora Samb

2010-03-31 10:41:49

CentOS Samb

2009-10-10 17:29:00

RHEL 5搭建Sam

2010-08-05 09:43:09

NFS服務器安全

2009-02-27 14:31:00

2010-06-02 16:48:49

postfix郵件服務
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久草在线 | 伊人伊人 | 久久久久国产 | 在线观看av免费 | 中文字幕国产 | 欧美精品一区二区三区在线 | 国产亚洲精品综合一区 | 羞羞视频在线观免费观看 | 国产日韩欧美在线 | 成人做爰999 | 成人免费影院 | 日韩三片 | 国产美女在线精品免费 | 欧美日韩国产一区二区三区不卡 | 一区二区三区四区在线视频 | 欧美6一10sex性hd | 伊伊综合网| 免费网站在线 | 狠狠爱免费视频 | 日本 欧美 国产 | 国产高清精品在线 | 亚洲精品白浆高清久久久久久 | 精品日韩一区二区 | www.嫩草| 激情婷婷 | 一区二区免费看 | 亚洲一区二区三区在线免费观看 | aa级毛片毛片免费观看久 | 欧美男男videos | 午夜成人免费视频 | 99久久久久国产精品免费 | www.天天干.com| 巨大黑人极品videos精品 | av一区二区三区四区 | 久久国产精品99久久久大便 | 日韩在线视频精品 | 日韩网 | 亚洲日本国产 | 久久久99国产精品免费 | 日韩毛片免费视频 | 97精品超碰一区二区三区 |