大規(guī)模DDos流量清洗
關于服務器被人攻擊的處理,當然先要分兩種情況,如果是大規(guī)模DDos搶注攻擊的話,一般對付辦法不多,根本辦法是通過運營商做流量清洗,分布式部署系統(tǒng)分流。用一些基于公有云的防護手段(費錢,效果一般般),一些安全公司昂貴的設備(作用也不大,有錢就可以多買)。
一般性防護手段一般性防護手段,通過硬防或者軟防火墻比如iptables,主要要限制服務器端口訪問,除了必須的80,443以外其他端口一律不對外開放。
關于對外開放端口限制和檢測的訪問,我的原創(chuàng)文章都提過幾篇介紹過:
「安全掃描」看好你的大門,企業(yè)安全端口掃描實踐
基本上就是在外面掃描你服務器ip,看都開了那些端口,對不該開放端口開放的話就封禁掉。主要對外開放的危險端口有 所有udp端口(比如最近大規(guī)模針對github的攻擊,就用對外開放的memcache udp 11211 udp端口進行的反射式攻擊),tcp重點關注端口: 21(ftp),22(ssh) 23(telnet),2181(zookeeper),3306(mysql),6379(redis),8161和61616(mq),11211(memcache),27017/27018(mongodb),9200(elasticsearch)還有其他的根據(jù)企業(yè)部署情況來增加。
在服務上查看開放的監(jiān)聽端口情況使用命令:
netstat -ntualp
Local地址 類似于 0.0.0.0:3306和 :::22的監(jiān)聽的服務器就要重點關注,一般除了web都不應該對外開放。
對web服務:
1、注意升級所用程序的版本,有漏洞的要及時升級(比如dedecms,struts2的漏洞等),部署的時候注意權限設置,不給多余的權限。
2、部署必要的waf系統(tǒng),安利下筆者有個開源免費的waf,有需要的可以聯(lián)系我。
3、部署時候精良先通過CDN或者自己用nginx返鄉(xiāng)代理來對用戶,不直接把php 應用、tomcat應用服務器對外,這樣即可以提高訪問效率,增加訪問并發(fā),還可以低于短期大流量訪問的沖擊。
如果服務器被人攻擊,掛馬了,怎么排除和解決常見異常情況:異常的流量、異常tcp鏈接(來源端口,往外發(fā)的端口)、異常的訪問日志(大量的ip頻繁的訪問個別文件)。
如果部署了監(jiān)控系統(tǒng)的話(強烈建議部署zabbix,并增加對系統(tǒng)添加專門安全items),可以方便通過zabbix監(jiān)控圖和趨勢對比了解這些信息:
利用last,lastb發(fā)現(xiàn)異常的用戶登錄情況,ip來源。
利用lastlog,/var/log/message,/var/log/secure,日志等,是否權限已經被攻陷。
用history 發(fā)現(xiàn)shell執(zhí)行情況信息。
用top,ps,pstree等發(fā)現(xiàn)異常進程和服務器負載等情況。
用netstat -natlp發(fā)現(xiàn)異常進程情況。用w命令發(fā)現(xiàn)當前系統(tǒng)登錄用戶的情況。
如果發(fā)現(xiàn)異常用戶,立即修改用戶密碼,pkill -kill -t tty 剔除異常用戶。然后進行進一步處理。
發(fā)現(xiàn)異常進程,立即禁止,凍結禁止。
發(fā)現(xiàn)一個惡意進程后通過 ls -al /proc/Pid (Pid為具體的進程號),發(fā)現(xiàn)進程的啟動路徑,啟動的文件所在目錄等信息。
如果發(fā)現(xiàn)異常連接數(shù),通過iptables封禁相關端口或者ip
iptables -I INPUT -s ip -j DROP
iptables -I OUTPUT -p tcp --dport 25 -j DROP
iptables -I INPUT -p tcp --dport 25 -j DROP
對清理移動木馬,殺掉進程
首先清理掉木馬創(chuàng)建的cron 計劃項和啟動項。
ls -al /etc/proc/Pid/ 找的惡意木馬文件。
惡意進程的執(zhí)行目錄和文件
最后用一條命令 kill -9 所有的進程ID && rm -rf 所有涉及的文件和目錄。
更多信息可以關注筆者的文章或者咨詢筆者:
「系統(tǒng)安全」當網站發(fā)生異常,出現(xiàn)安全事故,如何進行排查處置?
「WEB安全」單行命令查殺Webshell(php為例)