Linux服務器安全配置實例(一)引言
引言
很多企業的服務器經常遭受到攻擊,出現的攻擊方式有: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然后編輯這兩個文件。
今天的分享就到這里了,下一篇我們會繼續講解服務器配置的實例。