雲伺服器運維例項及安全防護

2021-09-20 17:29:28 字數 3361 閱讀 1872

某公司的伺服器發生故障,首先是**的頻寬跑滿,其次是cpu一直上不去。伺服器架構只有簡單的1個nginx負載和2臺web。web上面是2台有幾個tomcat專案包

首先檢視阿里雲監控的流量圖,我們可以看到正常流量。然後突然流量增加:

這裡cpu使用率一直特別高,使用top命令來檢視程序,發現不是這裡的問題。

但是,看到web上面的tomcat專案並沒有占用多少資源。開始進行日誌檢視。

首先檢視的是系統錯誤日誌 :

發現好像是洪水攻擊,且伺服器已經影響到業務。導致無法ssh連線進行管理,當時已設定tcp的連線數,發現設定完成之後好了。但是幾分鐘之後還是出現問題。

當時把所有的伺服器全停了,然後等了半個小時,在次開啟,發現一開起幾分鐘就會出現這種問題:

後來發現一停掉,負載就下去,最後通過nginx負載均衡發現問題 。

在這期間,我檢視了阿里雲監控的態勢感知 :

檢視web訪問日誌,終於發現了問題:

[root@vm-69-6cc2 logs]# grep 07/sep/2016 mallview_access.log |awk 'end'

114.111.167.89 60

111.205.180.168 60

60.205.125.164 407876

netstat -an|grep "established"|awk -f "[ :]+" ''|sort|uniq -c|sort -rn -k1
設定防火牆拒絕這個ip位址 :

重新啟動發現負載正常。

防止syn攻擊(輕量級預防)

iptables -n syn-flood 

iptables -a input -p tcp --syn -j syn-flood

iptables -i syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j return

iptables -a syn-flood -j reject

防止dos太多連線進來,可以允許外網網絡卡每個ip最多15個初始連線,超過的丟棄
iptables -a input -i eth0 -p tcp --syn -m connlimit --connlimit-above 15 -j drop 

iptables -a input -p tcp -m state --state established,related -j accept

用iptables抵禦ddos (引數與上相同)
iptables -a input  -p tcp --syn -m limit --limit 12/s --limit-burst 24 -j accept

iptables -a forward -p tcp --syn -m limit --limit 1/s -j accept

當apache站點受到嚴重的cc攻擊,可以用iptables來防止web伺服器被cc攻擊,實現自動遮蔽ip的功能。

1.系統要求

(1)linux 核心版本:2.6.9-42elsmp或2.6.9-55elsmp(其它核心版本需要重新編譯核心,比較麻煩,但是也是可以實現的)。

(2)iptables版本:1.3.7

2.安裝

安裝iptables1.3.7和系統核心版本對應的核心模組kernel-smp-modules-connlimit

3.配置相應的iptables規則

示例如下:

(1)控制單個ip的最大併發連線數

iptables -i input -p tcp --dport 80 -m connlimit  --connlimit-above 50 -j reject #允許單個ip的最大連線數為 30
(2)控制單個ip在一定的時間(比如60秒)內允許新建立的連線數

iptables -a input -p tcp --dport 80 -m recent --name bad_http_access --update --seconds 60 --hitcount 30 -j reject iptables -a input -p tcp --dport 80 -m recent --name bad_http_access --set -j accept
4.驗證(1)工具:flood_connect.c(用來模擬攻擊)

(2)檢視效果:

使用:

watch 'netstat -an | grep:21 | grep《模擬攻擊客戶機的ip>| wc -l'
實時檢視模擬攻擊客戶機建立起來的連線數,使用:

watch 'iptables -l -n -v | \grep《模擬攻擊客戶機的ip>'
檢視模擬攻擊客戶機被 drop 的資料報數。

5.注意

為了增強iptables防止cc攻擊的能力,最好調整一下ipt_recent的引數如下:

cat/etc/modprobe.conf options ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60
記錄1000個ip位址,每個位址記錄60個資料報 #modprobe ipt_recen

使用雲伺服器的幾個安全防護技巧

1.隨時檢查系統安全漏洞,安裝系統補丁。不管是windows還是linux,作業系統都會有漏洞,及時裝上補丁,避免被不法分子惡意利用攻擊.2.安裝並公升級防毒軟體。目前網路上的病毒越加猖獗,隨時會影響到 伺服器的安全,因此,系統要安裝上防毒軟體來提前預防病毒的傳播,並定期檢查公升級防毒軟體,自動更新...

Linux運維之路 安全防護OpenResty

openresty是乙個基於 nginx 與 lua 的高效能 web 平台,其內部整合了大量精良的 lua 庫 第三方模組以及大多數的依賴項。用於方便地搭建能夠處理超高併發 擴充套件性極高的動態 web 應用 web 服務和動態閘道器。系統環境說明 root jranson cat etc red...

rndc和TSIG安全防護DNS伺服器

bind9提供的rndc remote name daemon control 功能,其實是bind 8的rnc的延伸,方便了系統管理者遠端或本地來管理dns伺服器。rndc 1 本地管理dns 生成rndc.key檔案 輸入命令 生成 etc rndc.key檔案,類似這樣的金鑰 生成rndc.c...