阿里云服务器受攻击总结
1.為什么受攻擊
1.1什么是暴力破解攻
暴力破解攻擊是指攻擊者通過系統(tǒng)地組合并嘗試所有的可能性以破解用戶的用戶名、密碼等敏感信息。攻擊者往往借助自動(dòng)化腳本工具來發(fā)動(dòng)暴力破解攻擊。
1.1.1攻擊行為類型
根據(jù)暴力破解的窮舉方式,其攻擊行為可以分為:
- 字典攻擊法。大多攻擊者并沒有高性能的破解算法和CPU/GPU,為節(jié)省時(shí)間和提高效率,會(huì)利用社會(huì)工程學(xué)或其它方式建立破譯字典,使用字典中已存在的用戶名、密碼進(jìn)行猜破。
- 窮舉法。攻擊者首先列出密碼組合的可能性(如數(shù)字、大寫字母、小寫字母、特殊字符等),然后按密碼長度從1位、2位….構(gòu)成不同的賬號(hào)和密碼對(duì),然后逐個(gè)猜試。該方法需要高性能的破解算法和CPU/GPU作支持。
- 組合式攻擊法。使用字典攻擊和窮舉法的組合攻擊方式。
理論上,只要擁有性能足夠強(qiáng)的計(jì)算機(jī)和足夠長的時(shí)間,大多密碼均可以被破解出來。
1.1.2攻擊業(yè)務(wù)類型
- 針對(duì)Windows操作系統(tǒng)的遠(yuǎn)程桌面管理協(xié)議(RDP)、Linux操作系統(tǒng)的管理協(xié)議(SSH)的暴力破解攻擊
- 針對(duì)具有登錄認(rèn)證機(jī)制的軟件服務(wù)(如Mysql、SQLserver、FTP、Web前后端登錄接口等應(yīng)用服務(wù))的暴力破解攻擊
對(duì)于防御者而言,給攻擊者留得時(shí)間越長,其組合出正確的用戶名和密碼的可能性就越大。因此,時(shí)間在檢測暴力破解攻擊時(shí)很重要。
1.2暴力破解攻擊有什么危害
通過自動(dòng)化工具發(fā)起的暴力破解攻擊可以獲取用戶賬號(hào)和密碼。
1.3如何防御暴力破解攻擊
- 制定密碼復(fù)雜度策略,并進(jìn)行服務(wù)加固。密碼的長度要大于 8 位,且最好大于 20 位;密碼應(yīng)由數(shù)字、大小寫字母和特殊符號(hào)混合組成;密碼的最長有效期為 90 天。
- 配置好網(wǎng)絡(luò)訪問控制。嚴(yán)格限制將高危服務(wù)管理端口直接發(fā)布到互聯(lián)網(wǎng);建議您使用 VPN 和堡壘機(jī)的方式集中管理和審計(jì)。
- 提高內(nèi)部全員安全意識(shí),禁止借用或共享使用賬號(hào)。
2.相關(guān)查看命令
2.1查看登陸信息
2.1.1查看是否有異常登陸
last2.1.2以什么途徑被攻擊
cat /var/log/secure port 1579 這個(gè)端口是客戶端使用隨機(jī)端口來連接服務(wù)器ssh服務(wù)的2.2.查看服務(wù)器運(yùn)行狀
2.2.1查看磁盤使用情況
top
TOP命令詳解
2.2.2查看是否有定時(shí)任務(wù)
crontab -l2.3.查看操作記錄
2.3.1查看當(dāng)前IP用戶歷史操作記錄
history # 查看更多操作記錄 cat ~/.bash_history2.3.2查看某用戶某個(gè)時(shí)間點(diǎn)登陸之后的操作記錄
record3.臨時(shí)解決方式
3.1將異常登陸IP加入黑名單
3.1.1阿里云web端(安全組)
3.1.2服務(wù)器端
cat /etc/hosts.deny4.服務(wù)器安全加固
4.1使用密鑰對(duì)方式連接
4.1.1密鑰對(duì)簡介
功能優(yōu)勢
相較于用戶名和密碼認(rèn)證方式,SSH密鑰對(duì)有以下優(yōu)勢:
- 安全性:SSH密鑰對(duì)登錄認(rèn)證更為安全可靠。
- 密鑰對(duì)安全強(qiáng)度遠(yuǎn)高于常規(guī)用戶口令,可以杜絕暴力破解威脅。
- 不可能通過公鑰推導(dǎo)出私鑰。
- 便捷性:
- 如果您將公鑰配置在Linux實(shí)例中,那么,在本地或者另外一臺(tái)實(shí)例中,您可以使用私鑰通過SSH命令或相關(guān)工具登錄目標(biāo)實(shí)例,而不需要輸入密碼。
- 便于遠(yuǎn)程登錄大量Linux實(shí)例,方便管理。如果您需要批量維護(hù)多臺(tái)Linux實(shí)例,推薦使用這種方式登錄。
使用限制
使用SSH密鑰對(duì)有如下限制:
- 如果使用SSH密鑰對(duì)登錄Linux實(shí)例,將會(huì)禁用密碼登錄,以提高安全性。
- 僅支持Linux實(shí)例。
- 目前,ECS只支持創(chuàng)建2048位的RSA密鑰對(duì)。
- 一個(gè)云賬號(hào)在一個(gè)地域最多可以擁有500個(gè)密鑰對(duì)。
- 通過控制臺(tái)綁定密鑰對(duì)時(shí),一臺(tái)Linux實(shí)例只能綁定一個(gè)密鑰對(duì),如果您的實(shí)例已綁定密鑰對(duì),綁定新的密鑰對(duì)會(huì)替換原來的密鑰對(duì)。 如果您有使用多個(gè)密鑰對(duì)登錄實(shí)例的需求,可以在實(shí)例內(nèi)部手動(dòng)修改~/.ssh/authorized_keys文件,添加多個(gè)密鑰對(duì)。
4.1.2密鑰對(duì)使用
生成密鑰對(duì)
登錄ECS管理控制臺(tái)。
在左側(cè)導(dǎo)航欄,選擇網(wǎng)絡(luò)與安全 > 密鑰對(duì)。
在頂部菜單欄左上角處,選擇地域。
單擊創(chuàng)建密鑰對(duì)。
在創(chuàng)建密鑰對(duì)頁面,完成以下配置。
單擊確定。
| 密鑰對(duì)名稱 | 密鑰對(duì)名稱不能和已有密鑰對(duì)重復(fù)。長度為2~128個(gè)字符,不能以特殊字符及數(shù)字開頭,只可包含特殊字符中的英文句號(hào)(.)、下劃線(_)、短劃線(-)和冒號(hào)(:)。 |
| 創(chuàng)建類型 | 您可以選擇以下任一類型創(chuàng)建密鑰對(duì)。建議您選擇自動(dòng)新建密鑰對(duì),并及時(shí)保存私鑰。自動(dòng)新建密鑰對(duì):系統(tǒng)會(huì)為您自動(dòng)創(chuàng)建密鑰對(duì)。創(chuàng)建完成后將自動(dòng)下載私鑰,您只有這一次下載私鑰的機(jī)會(huì),因此請(qǐng)妥善保存私鑰文件。導(dǎo)入已有密鑰對(duì):您可以自行導(dǎo)入Base64編碼的公鑰內(nèi)容。 |
| 資源組 | 您可以為密鑰對(duì)指定一個(gè)資源組,實(shí)現(xiàn)對(duì)資源的分組管理,詳情請(qǐng)參見資源組。 |
| 標(biāo)簽 | 您可以為密鑰對(duì)綁定一個(gè)或多個(gè)標(biāo)簽,便于搜索和資源聚合,詳情請(qǐng)參見標(biāo)簽概述。 |
導(dǎo)入密鑰對(duì)
登錄ECS管理控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊網(wǎng)絡(luò)與安全 > 密鑰對(duì)。
在頂部菜單欄左上角處,選擇地域。
單擊創(chuàng)建密鑰對(duì)。
設(shè)置密鑰對(duì)名稱,并選擇導(dǎo)入已有密鑰對(duì)。
說明:密鑰對(duì)名稱不能重復(fù)。否則,控制臺(tái)會(huì)提示密鑰對(duì)已存在。
在公鑰內(nèi)容文本框中,輸入要導(dǎo)入的公鑰。
單擊確定。
綁定密鑰對(duì)
登錄ECS管理控制臺(tái)。
在左側(cè)導(dǎo)航欄,單擊網(wǎng)絡(luò)與安全 > 密鑰對(duì)。
在頂部菜單欄左上角處,選擇地域。
找到需要操作的密鑰對(duì),在操作列中,單擊綁定密鑰對(duì)。
在選擇ECS實(shí)例欄中,選中需要綁定該密鑰對(duì)的ECS實(shí)例名稱,單擊**>圖標(biāo),移入已選擇**欄中。
如果選擇ECS實(shí)例欄中的ECS實(shí)例名稱顯示為灰色,表示該實(shí)例為Windows實(shí)例,不支持SSH密鑰對(duì)。
單擊確定。
如果ECS實(shí)例處于運(yùn)行中(Running)狀態(tài),重啟實(shí)例使操作生效:
4.2使用普通用戶登陸
4.2.1為什么用普通有戶登陸
自身安全問題
-
先用普通用戶進(jìn)入 再切換成管理員,是一個(gè)良好的習(xí)慣,主要是用于防止誤操作。因?yàn)閞oot用戶具有最高權(quán)限,一些很危險(xiǎn)的操作 如rm -Rivf 等操作是沒有任何提示的刪除,極有可能刪掉重要的文件。
-
root權(quán)限可以對(duì)任何文件進(jìn)行修改,萬一操作錯(cuò)誤,就可能導(dǎo)致系統(tǒng)崩潰,一般良好的操作習(xí)慣,都不用root身份。除非實(shí)在要root的時(shí)候才用。有些系統(tǒng),默認(rèn)也是禁止root遠(yuǎn)程登錄,同樣也是安全考慮。
-
linux一般是企業(yè)建立服務(wù)器用的,網(wǎng)絡(luò)維護(hù)人員99%都是通過ssh遠(yuǎn)程上去對(duì)服務(wù)器進(jìn)行維護(hù)的。一般服務(wù)器本身缺省設(shè)置,為了安全考慮,都屏蔽了root遠(yuǎn)程登錄,管理員都是通過普通用戶,遠(yuǎn)程登錄上去。如果需要操作root權(quán)限的事情,才通過su編程root身份。
-
再比如執(zhí)行某些重要腳本如全系統(tǒng)備份等(在業(yè)務(wù)高峰期時(shí)不應(yīng)該作此操作),會(huì)對(duì)系統(tǒng)性能造成重大影響。
被入侵安全問題
- 萬一被入侵,不會(huì)獲取root權(quán)限,進(jìn)行刪除操作。
4.2.2使用普通用戶
4.3Linux操作系統(tǒng)安全加固
4.3.1. 賬號(hào)和口令
(1) 禁用或刪除無用賬號(hào)
減少系統(tǒng)無用賬號(hào),降低安全風(fēng)險(xiǎn)。
操作步驟
- 使用命令 userdel <用戶名> 刪除不必要的賬號(hào)。
- 使用命令 passwd -l <用戶名> 鎖定不必要的賬號(hào)。
- 使用命令 passwd -u <用戶名> 解鎖必要的賬號(hào)。
(2) 檢查特殊賬號(hào)
檢查是否存在空口令和root權(quán)限的賬號(hào)。
操作步驟
- 使用命令 awk -F: '($2=="")' /etc/shadow 查看空口令賬號(hào)。
- 使用命令 awk -F: '($3==0)' /etc/passwd 查看UID為零的賬號(hào)。
- 使用命令 passwd <用戶名> 為空口令賬號(hào)設(shè)定密碼。
- 確認(rèn)UID為零的賬號(hào)只有root賬號(hào)。
(3) 添加口令策略
加強(qiáng)口令的復(fù)雜度等,降低被猜解的可能性。
操作步驟
使用命令
vi /etc/login.defs修改配置文件。
- PASS_MAX_DAYS 90 #新建用戶的密碼最長使用天數(shù)
- PASS_MIN_DAYS 0 #新建用戶的密碼最短使用天數(shù)
- PASS_WARN_AGE 7 #新建用戶的密碼到期提前提醒天數(shù)
使用chage命令修改用戶設(shè)置。
例如,chage -m 0 -M 30 -E 2000-01-01 -W 7 <用戶名>表示將此用戶的密碼最長使用天數(shù)設(shè)為30,最短使用天數(shù)設(shè)為0,密碼2000年1月1日過期,過期前七天警告用戶。
設(shè)置連續(xù)輸錯(cuò)三次密碼,賬號(hào)鎖定五分鐘。使用命令 vi /etc/pam.d/common-auth修改配置文件,在配置文件中添加 auth required pam_tally.so onerr=fail deny=3 unlock_time=300。
(4) 限制用戶su
限制能su到root的用戶。
操作步驟
使用命令 vi /etc/pam.d/su修改配置文件,在配置文件中添加行。例如,只允許test組用戶su到root,則添加 auth required pam_wheel.so group=test。
(5) 禁止root用戶直接登錄
限制root用戶直接登錄。
操作步驟
4.3.2 服務(wù)
(1) 關(guān)閉不必要的服務(wù)
關(guān)閉不必要的服務(wù)(如普通服務(wù)和xinetd服務(wù)),降低風(fēng)險(xiǎn)。
操作步驟
使用命令systemctl disable <服務(wù)名>設(shè)置服務(wù)在開機(jī)時(shí)不自動(dòng)啟動(dòng)。
說明: 對(duì)于部分老版本的Linux操作系統(tǒng)(如CentOS 6),可以使用命令chkconfig --level <init級(jí)別> <服務(wù)名> off設(shè)置服務(wù)在指定init級(jí)別下開機(jī)時(shí)不自動(dòng)啟動(dòng)。
(2) SSH服務(wù)安全
對(duì)SSH服務(wù)進(jìn)行安全加固,防止暴力破解成功。
操作步驟
使用命令 vim /etc/ssh/sshd_config 編輯配置文件。
- 不允許root賬號(hào)直接登錄系統(tǒng)。
設(shè)置 PermitRootLogin 的值為 no。 - 修改SSH使用的協(xié)議版本。
設(shè)置 Protocol 的版本為 2。 - 修改允許密碼錯(cuò)誤次數(shù)(默認(rèn)6次)。
設(shè)置 MaxAuthTries 的值為 3。
配置文件修改完成后,重啟sshd服務(wù)生效。
4.3.3 文件系統(tǒng)
(1) 設(shè)置umask值
設(shè)置默認(rèn)的umask值,增強(qiáng)安全性。
操作步驟
使用命令 vi /etc/profile 修改配置文件,添加行 umask 027, 即新創(chuàng)建的文件屬主擁有讀寫執(zhí)行權(quán)限,同組用戶擁有讀和執(zhí)行權(quán)限,其他用戶無權(quán)限。
(2) 設(shè)置登錄超時(shí)
設(shè)置系統(tǒng)登錄后,連接超時(shí)時(shí)間,增強(qiáng)安全性。
操作步驟
使用命令 vi /etc/profile 修改配置文件,將以 TMOUT= 開頭的行注釋,設(shè)置為TMOUT=180,即超時(shí)時(shí)間為三分鐘。
4.3.4 日志
(1) syslogd日志
啟用日志功能,并配置日志記錄。
操作步驟
Linux系統(tǒng)默認(rèn)啟用以下類型日志:
- 系統(tǒng)日志(默認(rèn))/var/log/messages
- cron日志(默認(rèn))/var/log/cron
- 安全日志(默認(rèn))/var/log/secure
注意:部分系統(tǒng)可能使用syslog-ng日志,配置文件為:/etc/syslog-ng/syslog-ng.conf。
您可以根據(jù)需求配置詳細(xì)日志。
(2) 記錄所有用戶的登錄和操作日志
通過腳本代碼實(shí)現(xiàn)記錄所有用戶的登錄操作日志,防止出現(xiàn)安全事件后無據(jù)可查。
操作步驟
運(yùn)行 [root@xxx /]# vim /etc/profile打開配置文件。
在配置文件中輸入以下內(nèi)容:
historyUSER=`whoami`USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]; thenUSER_IP=`hostname`fiif [ ! -d /var/log/history ]; thenmkdir /var/log/historychmod 777 /var/log/historyfiif [ ! -d /var/log/history/${LOGNAME} ]; thenmkdir /var/log/history/${LOGNAME}chmod 300 /var/log/history/${LOGNAME}fiexport HISTSIZE=4096DT=`date +"%Y%m%d_%H:%M:%S"`export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null運(yùn)行 [root@xxx /]# source /etc/profile 加載配置生效。
注意: /var/log/history 是記錄日志的存放位置,可以自定義。
通過上述步驟,可以在 /var/log/history 目錄下以每個(gè)用戶為名新建一個(gè)文件夾,每次用戶退出后都會(huì)產(chǎn)生以用戶名、登錄IP、時(shí)間的日志文件,包含此用戶本次的所有操作(root用戶除外)。
總結(jié)
以上是生活随笔為你收集整理的阿里云服务器受攻击总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【读书】2019年阅读记录
- 下一篇: JAVA实现:居民电费阶梯式计价器