當前位置:
首頁 > 最新 > 揭露我是如何一步一步把公司官網整掛的……

揭露我是如何一步一步把公司官網整掛的……

51CTO官微

技術資訊/行業精華/產品心得

網路安全是運維工程師非常關注的一方面,尤其是對於金融公司來說,安全尤為重要。那麼,對安全要做到什麼程度呢?如何避免刪庫跑路呢?

GIF

阿武是一名閑著玩也能玩出花樣的運維小兵,有那麼一點幽默又有那麼一點憂傷。

做了兩年Linux運維,受職業病的影響,每當他看到一個網站,首先想到怎麼「破壞」它,揭露網站各種Bug,唯恐天下不亂,從刪庫到跑路放在他身上再形象不過了。

但一直還沒搞過什麼驚天地泣鬼神的大事件,直到有一天,他真的惹火燒身了...

阿武·Linux運維工程師

17年年底,阿武換了新工作,來到一家金融機構繼續做Linux運維工程師,進公司之後正好要做「三級等保」。這種東西要的文檔很多,系統運維方面更是一大堆,尤其安全這一點要求甚是嚴格。

安全也是大家非常關注的一方面,尤其是對於金融公司來說,安全尤為重要。那麼,對安全要做到什麼程度呢?

先來說說阿武公司的情況,伺服器都在機房託管,頂上有一個物理防火牆,然後倆F5。聽上去確實很安全吧?但至於做的什麼策略無從知曉,因為許可權把控及其嚴格,基本是阿武碰不到的。這次因為三級等保的事,根據安全規定要做一系列調整,OK,開搞!

阿武用了兩天的時間把線上Windows伺服器做好安全,為了這個等保,他特意搞了360天擎,還頭一次見Linux系統上裝360!

刪庫正式開始

搞Linux的安全比Windows好整多了,畢竟開源呢。

第一台Linux遠程之後把該開啟的埠開開(遠程埠10022,zabbix_agent埠10050),關掉SELinux等操作,最後執行了個iptables -P INPUT DROP,準備執行 service iptables save保存的時候,發現扣不動字了,遠程掉了。

腦海中一萬個納尼飛馳而過,在他還沒有回過神的時候,忽然收到zabbix的報警郵件,公司官網掛掉?!?

GIF

意識支配大腦,他趕緊上伺服器看看情況。話說官網是台Windows IIS,在伺服器訪問本地都訪問不了??他看了日誌也沒發現問題,本想著先把流量切到備用機上,卻發現備用機也不能訪問,看來不是Web 的問題,應該在後端的資料庫。

刪庫跑路那不是他的風格,冷靜下來思考,剛才經歷了什麼?

一個聲音在告訴他,一定是剛才修改Linux防火牆的時候,擋住了某個連接,所以只能登錄宿主機檢查,講真,大家可能不相信金融公司線上是Windows2008+VMware虛擬機。

先把那台機子的防火牆iptables -P INPUT ACCEPT之後,終於可以正常訪問官網了。

運維怎樣才能避免誤操作呢?

GIF

比如,一不小心就drop了資料庫...

運維之路壓力很大,畢竟線上那麼多數據在手裡掌控。人不可能做到完美,零失誤是不存在的,當然大佬就另當別論了。

然而究其原因,官網到底為什麼會掛掉?這台機器是轉發什麼的?阿武請教領導後得知這個Linux和另一台做的keepalived,是台Linux 7,用作公司官網的資料庫轉發。

雖然不知道為什麼,線上的系統不是統一版本,Windows就不說了,Linux不統一就很蛋疼,尤其是6和7一塊用的,7上邊的iptables命令不需要save保存,都是自動保存,所以他執行完「禁止所有」之後直接斷掉了。雖然有做keepalived,但不知道為啥沒飄過去。

阿武這次的失誤,事後仔細反思,由於沒有事先了解伺服器的作用和操作過程中的粗心,出現的失誤,本該提前查看系統版本並且做出相應的安全設置調整。

這次的教訓也讓阿武深深的感受到了線上系統千萬別亂動。在平常運維的時候,尤其是操作線上的系統首先要整理好思路,清晰明了,有個先後順序,孰輕孰重心裡要有底,在修改文件的時候一定要備份!!一定要備份!!一定要備份!!

GIF

這次的事故總結幾點:

1. 沒有理清思路,做防火牆策略,既然是遠程連接的系統必須要把遠程埠先放開;

2. 對操作系統的不熟悉,因為線上大部分的Linux都是centos6.5的,所以就理所當然的沒有看系統版本,本來6和7的防火牆做法就不一樣,更別說最後還來了個iptables -P INPUT DROP....

3. 當官網掛掉之後心裡有點慌了,雖然排查的思路是沒錯的,但忽略了某屌絲運維猛如虎的操作,導致沒有第一時間定位問題所在。

整體的說一下Linux6與7的小區別。因為公司用的是centos,所以就說一說這個。centos7與6之間最大的差別就是初始化技術的不同,7採用的初始化技術是Systemd,並行的運行方式,除了這一點之外,服務啟動、開機啟動文件、網路命令方面等等,都與6有所不同。

Centos6.x 啟動服務 service *** start/stop/status

Centos7.x 啟動服務 systemctl start/stop/status ***

網卡配置文件的變化:

相比較而言,7的網卡名稱太長太長了,建議修改。

開機自啟動:

Centos6.x 直接在/etc/rc.local添加啟動命令

Centos7.x 比較麻煩,需要給/etc/rc.d/rc.local賦予可執行許可權

chmod +x ******

等等等等...就不一一列舉。

Linux7版本的優缺點?

這個版本設計目標是克服sysvinit固有的缺點,提高系統的啟動速度和Sysvinit兼容,降低遷移成本;最主要優點:並行啟動Pid為1的進程。

又說到了sysvinit,順便說一下它的特點:

1. 系統第1個進程為init;

2. init進程是所有進程的父進程,不可kill;

3. 大多數Linux發行版的init系統是和SystemV相兼容的,被稱為sysvinti;

Sysvinit運行非常良好,概念簡單並清晰,主要依賴於shell腳本。但畢竟有利也有弊,這東西要按照一定順序執行,啟動太慢。很容易卡住,fstab和nfs的掛載也存在問題。

說這麼多,當了解了解啦。最後聲明一下:阿武剛22歲,性別男愛好女。希望單身的妹紙來撩~

當然也歡迎大佬來打臉——作為一個屌絲運維攻城獅的強烈要求。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 51CTO 的精彩文章:

廢除網路中立法的第 10 天,目前為止一切正常……

TAG:51CTO |