引言
很多企業的服務器經常遭受到攻擊,出現的攻擊方式有:http服務攻擊、操作系統漏洞溢出攻擊、sql注入攻擊等。
大多服務器都託管在阿里雲或者騰訊雲上,這些雲服務也都提供殺毒軟件和防火牆功能,如:阿里雲盾。上述攻擊大部分都已經被廠商提供的雲安全攔截住了,但是畢竟沒有絕對的安全。
這裏記錄下我平時對服務器的安全配置,希望對大家有一些幫助,還是沒有絕對的安全,但是能夠防患未然還是好的。另外這裏指出,在描述攻擊我們的那些人,我拒絕使用黑客這個詞語,黑客的含義已經被現在的社會塗上了一層讓人憎恨討厭的色彩,但是實際的含義並不是入侵、攻擊、破解,所以在以後的描述中我與其他文章作者不同,採用另外的稱號,就是惡意攻擊者或惡意的小夥伴。
服務器配置
對於Linux操作系統,可以啓動selinux和iptables對系統的訪問進行過濾,同時可以降低用戶權限,降低一些進程的運行權限。來保證服務器被滲透後的威脅降到最低。另外需要及時修復應用的漏洞,升級內核版本到穩定版,web應用程序足夠強壯,降低數據庫用戶權限。
下面拿我的服務器舉例,我的服務器配置如下:
-
阿里雲服務深圳可用區B
-
帶寬:2Mbps
-
CPU: 1核
-
內存: 1024 MB
-
帶寬:2Mbps
-
操作系統: CentOS 7.0 64位
在服務器上配置有tomcat7.0、jre7、nginx1.9.9、mariadb5.5、php5.4.16。對外提供我的blog和微信公衆平臺的接口。
站長站端口掃描結果如下:
可以看到,從掃描的結果來看幾乎沒有可利用的。
使用nmap在服務器上對本機進行掃描,結果:
而在外網對其進行掃描,是無法得出結果的:
這些配置相當簡單,相對而言,對付真正的攻擊還差很多,所以我們還需要進行其他的一系列配置。
ssh服務
ssh服務是最常用的遠程登錄服務,雖然其比telnet安全多,但是也存在一定的安全漏洞。一些不友好的小夥伴們會使用一些不和諧程序對ssh服務進行暴力破解。對ssh服務進行適當的配置可以完全杜絕暴力破解。同時對sshd服務進行優化配置可以加快連接速度,減少耗費帶寬。
編輯/etc/ssh/sshd_config:
修改如下配置(注意如果配置前面有#,代表配置被註釋,這裏我只羅列出需要配置的,如果你的服務器上的配置被註釋掉,去掉#打開註釋即可。另外我會在配置旁邊加上配置說明的註釋):
注意,這裏使用了公鑰認證,所以需要生成登陸的私鑰和公鑰,將公鑰上傳到服務器上,並寫入到上面的AuthorizedKeysFile配置指定的公鑰文件中。對於這個文件有如下要求:
①、該文件權限必須是640,所以需要執行sudo chmod 640 公鑰文件,如:sudo chmod 640 /home/kid/.ssh/authorized_keys。
②、該文件的上層目錄必須爲700權限,所以需要執行sudo chmod 700 上層文件夾路徑,如:sudo chmod 700 /home/kid。
③、該文件可以放多個公鑰,注意公鑰由於特別長,有的生成工具會把一個公鑰拆分成多行,但sshd服務要求一個公鑰只能一行存放,所以一定要編輯成一行纔好使。
上述配置完成後,重啓sshd服務,sudo systemctl restart sshd,即可使用公鑰認證遠程登錄到服務器,如果之前沒使用過公鑰登錄的小夥伴,建議改完配置不要退出當前登錄,等待重啓完後再開一個連接測試下公鑰認證能否發登錄成功。如果不成功,需要注意上面的要求!!!同時可以使用沒斷開連接的終端執行sudo tail -f /var/log/message檢查sshd服務的日誌信息,同樣也需執行sudo tail -f /var/log/secure檢查sshd服務的認證日誌信息。在tail -f
是實時從尾部監聽一個服務,經常用於動態查看相關日誌文件,由於是監聽要退出的話需要按ctrl+c結束。這樣sshd服務的安全性就有很大的提升了,當然在sshd服務中還可以配置允許登陸的ip和禁止登陸的ip,這個以後我會單開文章詳細說明。另外爲了我們的配置不被惡意篡改可以執行,可以執行sudo chattr +i /etc/ssh/sshd_config 和sudo chattr +i 公鑰文件(如:sudo chattr +i /home/kid/.ssh/authorized_keys),chattr +i
命令會多某個文件設置隱藏狀態位,設置後該文件即使是root和文件所有者都無法對該文件進行刪除、修改、移動等操作,保證了該文件的安全。
即使惡意登陸者想對sshd服務進行重新配置,把自己的公鑰加入公鑰文件都是無法操作的。但當你確實想要修改這個文件的時候,可以使用
sudo chattr -i /etc/ssh/sshd_config以及sudo chattr +i /home/kid/.ssh/authorized_keys然後編輯這兩個文件。
今天的分享就到這裏了,下一篇我們會繼續講解服務器配置的實例。