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