查找使用我所有伺服器頻寬的內容
TLDR:如何更深入地了解我的 Mac mini OSX 伺服器,以確定哪些程序正在消耗如此多的頻寬,或者所有入站流量來自哪裡?
資源記憶體已打開,所有資源都被縮小或圖像被粉碎,我們的頁面比上個月的網站 (www.vulytrampolines.com) 消耗的頻寬更少,我們的分析流量也是一樣的。
背景故事:我們有 2x mac mini 伺服器執行我們的網站/登台/數據庫等。自從從美國的專用伺服器轉移到城市的託管地點後,我們的頻寬消耗不知何故翻了兩番。兩者之間有一個數據庫複製過程設置,以及DNS和各種網站(例如大文件、數據庫任務、內網包等在暫存伺服器上,網站和數據庫在生產伺服器上)
我們的登台伺服器在3 DAYS內有7GB 的入站流量。有誰知道如何檢查入站流量來源,以了解在 200k 連接時這種一致的入站流量流可能來自哪裡?我們不知道。我們根本不向它發送文件,唯一應該啟動的是 SSH 和數據庫複製過程。
netstat
$$ see below $$顯示我們有大約 20 多個已建立和 30 多個 close_weight 連接到埠 625。我們還沒有最模糊的情況是如何發生的。 令人討厭的是,webstats 顯示我們沒有使用接近 11.66GB 的 HTTP 流量(它說我們上個月使用了 22GB,但我們的出站流量記錄為超過 100GB)。數據庫統計數據表明,我們也沒有使用任何接近足夠頻寬來導致問題的地方。
這是我們的登台伺服器 venus1(這已經有幾個星期了):
這是我們的生產伺服器 venus2:
netstat -anp tcp
venus1 上的輸出。大多數外部地址來自我們的工作 IP 地址。11211 已記憶體。tcp4 0 0 122.99.117.18.49712 204.93.223.143.80 ESTABLISHED tcp4 0 0 122.99.117.18.11211 122.99.117.18.49711 ESTABLISHED tcp4 0 0 122.99.117.18.49711 122.99.117.18.11211 ESTABLISHED tcp4 0 52 122.99.117.18.22 59.167.152.67.56106 ESTABLISHED tcp4 0 0 122.99.117.18.11211 122.99.117.18.49588 ESTABLISHED tcp4 0 0 122.99.117.18.49588 122.99.117.18.11211 ESTABLISHED tcp4 0 0 122.99.117.18.49410 122.99.117.19.3306 ESTABLISHED tcp4 0 0 122.99.117.18.5432 122.99.117.18.58704 ESTABLISHED tcp4 0 0 122.99.117.18.58704 122.99.117.18.5432 ESTABLISHED tcp4 0 0 127.0.0.1.58699 *.* LISTEN tcp4 0 0 122.99.117.18.625 110.142.234.238.62055 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.71.206.61838 ESTABLISHED tcp4 5 0 122.99.117.18.625 203.206.171.34.61741 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.61270 ESTABLISHED tcp4 0 0 127.0.0.1.54 *.* LISTEN tcp4 0 0 122.99.117.18.53 *.* LISTEN tcp4 0 0 127.0.0.1.53 *.* LISTEN tcp4 0 0 122.99.117.18.625 110.142.234.238.63980 ESTABLISHED tcp4 0 0 122.99.117.18.625 203.206.171.34.55282 ESTABLISHED tcp46 0 0 *.80 *.* LISTEN tcp4 0 0 *.* *.* CLOSED tcp46 0 0 *.443 *.* LISTEN tcp4 0 0 *.* *.* CLOSED tcp4 0 0 122.99.117.18.625 122.99.117.19.50766 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 122.99.117.19.63981 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.60214 ESTABLISHED tcp4 0 0 122.99.117.18.625 27.33.32.204.65196 ESTABLISHED tcp4 0 0 122.99.117.18.625 110.142.234.238.60274 ESTABLISHED tcp4 0 0 122.99.117.18.625 122.99.117.19.53201 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 203.206.171.34.59662 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 122.99.117.19.49869 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 122.99.117.19.53827 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.64678 ESTABLISHED tcp4 0 0 122.99.117.18.625 122.99.117.19.52810 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.62510 ESTABLISHED tcp4 0 0 122.99.117.18.625 122.99.117.19.49909 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.56096 ESTABLISHED tcp4 0 0 122.99.117.18.625 203.206.171.34.53247 ESTABLISHED tcp4 0 0 122.99.117.18.625 203.206.171.34.62051 ESTABLISHED tcp4 0 0 122.99.117.18.625 58.111.93.92.59123 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 122.99.117.19.57173 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 203.206.171.34.49352 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.64362 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 27.33.32.204.59772 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 59.167.152.67.59528 CLOSE_WAIT tcp4 0 0 *.3306 *.* LISTEN tcp4 0 0 122.99.117.18.625 27.33.32.204.56812 ESTABLISHED tcp4 0 0 122.99.117.18.625 110.142.234.238.52987 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 59.167.152.67.50598 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.63339 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.63283 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 59.167.152.67.61312 ESTABLISHED tcp4 0 0 122.99.117.18.625 110.142.234.238.52045 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 122.99.117.19.49172 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 203.206.171.34.50501 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.93.92.56042 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 27.33.32.204.55882 ESTABLISHED tcp4 0 0 122.99.117.18.311 58.111.93.92.55875 ESTABLISHED tcp4 0 0 122.99.117.18.625 203.206.171.34.58776 ESTABLISHED tcp6 0 0 *.5432 *.* LISTEN tcp4 0 0 *.5432 *.* LISTEN tcp4 0 0 122.99.117.18.625 58.111.93.92.52692 ESTABLISHED tcp4 0 0 122.99.117.18.625 203.206.171.34.57121 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 27.33.32.204.54673 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 27.33.32.204.53915 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 27.33.32.204.52109 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 27.33.32.204.51807 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 27.33.32.204.65049 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.93.92.64442 ESTABLISHED tcp4 0 0 122.99.117.18.311 203.206.171.34.51628 ESTABLISHED tcp4 0 0 122.99.117.18.625 203.206.171.34.51594 ESTABLISHED tcp4 0 0 122.99.117.18.625 58.111.79.42.62597 ESTABLISHED tcp4 0 0 122.99.117.18.625 58.111.79.42.62454 ESTABLISHED tcp4 0 0 122.99.117.18.625 58.111.79.42.58088 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.57305 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.53724 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.62224 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.62064 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.58236 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 203.206.171.34.51320 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 203.206.171.34.51297 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 203.206.171.34.50864 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.49800 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 27.33.32.204.50894 ESTABLISHED tcp4 0 0 122.99.117.18.625 59.167.152.67.50411 ESTABLISHED tcp4 0 0 122.99.117.18.625 27.33.32.204.54446 ESTABLISHED tcp4 0 0 122.99.117.18.625 58.111.79.42.51680 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.60797 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.60729 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 59.167.152.67.49209 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.63371 CLOSE_WAIT tcp4 81 0 122.99.117.18.625 113.128.44.66.3842 CLOSE_WAIT tcp4 11 0 122.99.117.18.625 213.57.189.27.55646 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 110.142.234.238.53655 ESTABLISHED tcp4 0 0 122.99.117.18.625 110.142.234.238.53644 ESTABLISHED tcp4 0 0 122.99.117.18.625 58.111.79.42.52146 CLOSE_WAIT tcp4 0 0 127.0.0.1.8005 *.* LISTEN tcp46 0 0 *.8009 *.* LISTEN tcp46 0 0 *.8080 *.* LISTEN tcp4 0 0 122.99.117.18.625 58.111.79.42.50716 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 59.167.152.67.49872 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.63218 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.62471 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.64758 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.64646 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.56788 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.56770 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.56017 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.53131 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.52519 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.51215 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.51131 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 59.167.152.67.57058 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 59.167.152.67.56711 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.50975 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.57209 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.54753 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.60786 CLOSE_WAIT tcp4 0 0 122.99.117.18.625 58.111.79.42.56174 CLOSE_WAIT tcp4 0 0 *.11212 *.* LISTEN tcp6 0 0 *.11212 *.* LISTEN tcp4 0 0 127.0.0.1.5348 127.0.0.1.49167 ESTABLISHED tcp4 0 0 127.0.0.1.49167 127.0.0.1.5348 ESTABLISHED tcp4 0 0 122.99.117.18.5218 122.99.117.18.49166 ESTABLISHED tcp4 0 0 122.99.117.18.49166 122.99.117.18.5218 ESTABLISHED tcp46 0 0 *.5268 *.* LISTEN tcp46 0 0 *.5218 *.* LISTEN tcp4 0 0 127.0.0.1.5348 127.0.0.1.49163 ESTABLISHED tcp4 0 0 127.0.0.1.49163 127.0.0.1.5348 ESTABLISHED tcp4 0 0 127.0.0.1.5348 127.0.0.1.49162 ESTABLISHED tcp4 0 0 127.0.0.1.49162 127.0.0.1.5348 ESTABLISHED tcp4 0 0 127.0.0.1.5348 127.0.0.1.49161 ESTABLISHED tcp4 0 0 127.0.0.1.49161 127.0.0.1.5348 ESTABLISHED tcp4 0 0 127.0.0.1.5348 *.* LISTEN tcp4 0 0 *.11211 *.* LISTEN tcp6 0 0 *.11211 *.* LISTEN tcp4 0 0 *.88 *.* LISTEN tcp6 0 0 *.88 *.* LISTEN tcp6 0 0 *.2000 *.* LISTEN tcp4 0 0 *.2000 *.* LISTEN tcp6 0 0 *.4190 *.* LISTEN tcp4 0 0 *.4190 *.* LISTEN tcp4 0 0 *.464 *.* LISTEN tcp6 0 0 *.464 *.* LISTEN tcp6 0 0 *.25 *.* LISTEN tcp4 0 0 *.25 *.* LISTEN tcp4 0 0 *.749 *.* LISTEN tcp6 0 0 *.749 *.* LISTEN tcp4 0 0 *.22 *.* LISTEN tcp6 0 0 *.22 *.* LISTEN tcp4 0 0 *.5900 *.* LISTEN tcp6 0 0 *.5900 *.* LISTEN tcp4 0 0 *.625 *.* LISTEN tcp6 0 0 *.625 *.* LISTEN tcp4 0 0 127.0.0.1.631 *.* LISTEN tcp6 0 0 ::1.631 *.* LISTEN tcp4 0 0 *.311 *.* LISTEN
除非您有充分的理由不這樣做,否則請**立即為您的 Mac Mini 上的所有非公共埠設置防火牆,並且隻公開您需要的內容!我做了一個快速檢查,您的所有服務目前似乎都對 Internet 完全開放(SSH、SMTP、Tomcat、VNC、MySQL 和 apple-xsrvr-admin (TCP625) 當然是),這是一個非常糟糕的主意。
您看到的大量入站流量很可能是黑客/機器人試圖暴力破解您的服務的登錄名和密碼——我在伺服器上經常看到這種情況,特別是針對 SSH(因為它通常是面向公眾的)和直接針對流行的網路軟體,例如 WordPress 的 /wp-login.php 頁面。從您的 netstat 我可以看到來自以色列和中國的 IP 正在嘗試訪問 TCP625(apple-xsrvr-admin,用於 DirectoryService、Open Directory Assistant 和 Workgroup Manager),這不是一個好兆頭。我希望你所有的使用者名和密碼都是強大的,因為 - 不是想在這裡聽起來危言聳聽,但是 - 7GB 的暴力破解可能會讓一些壞人得到他們不應該訪問的東西,不管安全性/任何軟體的更新檔狀態。
如果您不小心阻止自己訪問您的伺服器,請與您的託管服務提供商/colo 檢查您是否具有某種遠端串列控制台和/或 VNC 訪問權限,然後將您自己遠端管理伺服器所需的絕對最小值添加到規則集中並打開防火牆,我假設他們還沒有。預設情況下,OS X Server 的防火牆會阻止所有傳入埠,但用於遠端配置伺服器的埠除外(TCP22、TCP311、TCP626、TCP625、ICMP 標準 ping(輸入和輸出)、UDP53 DNS 名稱解析),因此您應該可以打開它直截了當,儘管一旦你這樣做了,你想更多地鎖定這些。創建特定於您的辦公室 IP 的地址組(或您的 ISP 的 IP 網路塊,如果您的辦公室沒有靜態 IP 地址)並使用這些來打開管理員訪問權限(例如 SSH、OpenDirectory, VNC) 僅限於這些。為 122.99.117.18 和 122.99.117.19(或 122.99.117.18/31 遮罩)創建另一個具有單一 IP 訪問權限的組以相互通信並允許 MySQL 複製。向全世界開放 SMTP、HTTP、HTTPS 埠,假設它們是面向公眾的。嚴格鎖定所有內容,僅向需要訪問每個埠的 IP 授予權限。考慮對出站流量也這樣做。你想提前計劃好,確保一切順利,但要盡快完成,而不是讓伺服器成為一個空曠的鴨子。嚴格鎖定所有內容,僅向需要訪問每個埠的 IP 授予權限。考慮對出站流量也這樣做。你想提前計劃好,確保一切順利,但要盡快完成,而不是讓伺服器成為一個空曠的鴨子。嚴格鎖定所有內容,僅向需要訪問每個埠的 IP 授予權限。考慮對出站流量也這樣做。你想提前計劃好,確保一切順利,但要盡快完成,而不是讓伺服器成為一個空曠的鴨子。
查看伺服器的日誌並查找可疑活動。特別是尋找從奇怪的位置或在奇怪的時間成功登錄服務。建立一些程序來定期執行此操作。
我不確定您擁有哪個版本的 OS X Server,但猜測是 10.6 或 10.7,這個 Peachpit 文件可能會幫助您開始使用防火牆。
Apple可能支持有關網路服務的 PDF(請參閱第 4 章了解防火牆)。
對於更高級的防火牆配置,請嘗試 Waterroof 或 Icefloor,它們提供了一個簡單的 GUI,而不必在命令行上使用 pf。
(編輯以解決從每個伺服器粘貼的 ipfilter 規則)
好的,讓我們從 venus1 (122.99.117.18) 開始。這裡明顯的問題是沒有包羅萬象的
deny ip from any to any
,所以我們需要立即解決這個問題。從命令行,您可以發出:sudo ipfw add 65534 deny log logamount 1000 ip from any to any
或者,如果您對從命令行操作 ipfw 規則不太滿意(這會讓您感到緊張,因為如果您滑倒可能會以嚴重的後果結束),請在“高級”子選項卡下的“伺服器管理員”選項卡中執行此操作。應該有一個類似於下圖的高級規則列表。假設該規則已經在底部,勾選它以啟用它:
請記住,ipfw 規則沿優先級列表向下流動,因此優先級 1 規則優先於其他所有規則。因此,在 65534 處添加“拒絕一切”規則是列表中的最後一個,這意味著它只會在高於它的所有內容都不允許首先允許的情況下拒絕連接。
好的,讓我們處理一些地址組。您已經定義了一個地址組,它是 122.99.117.16/29,所以 122.99.177.16-22(其中一個 IP 是網關),它是您的 Mac Mini 和其他 co-lo IP 地址。您可能想為您的辦公室位置定義另一個地址組,我猜它的靜態 IP 為 59.167.152.67(或者如果您的工作獲得動態 IP,那麼整個 Internode 網路塊是 59.167.0.0/16)。對 venus1 和 venus2 執行此操作,並為您擁有的任何其他辦公室添加更多。
一旦您定義了您的辦公室組,然後授予這些權限中的每一個訪問 TCP22、TCP311、TCP626、TCP625、TCP3283 和 TCP5900,因此即使您禁用對這些埠的全球訪問,您也可以始終管理您的 Minis。使用 GUI,轉到伺服器管理員設置的服務子選項卡。將“編輯服務:”更改為您的辦公室地址組,然後勾選上述埠的相關框。
現在讓我們解決一些更有問題的 venus1 規則。例如:
12321 1570 78548 allow tcp from any to any dst-port 3306
規則 12321 允許一切連接到 MySQL。為“任何”地址組禁用此規則(再次使用服務子選項卡),當您在那裡時,世界不需要訪問的任何其他服務。您可能希望保持 TCP25(smtp 郵件)、TCP/UDP53(dns)、TCP80(HTTP)、TCP443(HTTPS)全球可訪問,但您是否需要 TCP8080(tomcat 的伺服器狀態)的全球訪問?還要別的嗎?將其全部鎖定並僅在適當的情況下授予對您辦公室地址組和 co-lo 的訪問權限(例如 MySQL 複製)。
記得測試一切!學習使用nmap掃描您的伺服器埠,以便查看打開和關閉的埠。從不同的位置(例如您的辦公室、通過 ssh 連接到您的其他伺服器、在家中通過其他 ISP 等)進行掃描,以確保規則正常執行。小心不要把自己鎖在外面,但要盡可能地把所有東西都鎖緊。重新閱讀上面連結的 Peachpit 文件和 Apple 支持 PDF 並真正學習這些材料,它會讓你受益匪淺。哦,請定期查看您的日誌!
好的,希望這應該讓你正確,或者至少讓你走上一條更好的道路。祝你好運。