一、防火牆
防火牆是保護伺服器安全的第一道防線。在Linux伺服器上,我們可以使用iptables進行防火牆的配置。
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -j DROP
以上代碼先允許ssh、http和https的訪問,再拒絕其他全部訪問。
二、SSH安全
SSH是遠程連接伺服器的常用方式,但也是黑客攻擊的重點。我們可以通過以下措施增強SSH的安全性:
1、禁止root用戶直接登錄:
# 修改ssh配置文件/etc/ssh/sshd_config
PermitRootLogin no
2、改變SSH埠號:
# 修改ssh配置文件/etc/ssh/sshd_config
Port 2222
修改完後需要重啟ssh服務。
3、使用Key登錄:
使用Key登錄可以避免密碼被盜,具體操作可以參考SSH使用Key登錄教程。
三、安全登錄
1、密碼複雜度要求:
在/etc/login.defs文件中修改密碼複雜度要求:
# 設置密碼最小長度為8
PASS_MIN_LEN 8
# 要求密碼必須包含大小寫字母、數字和特殊字元
PASS_COMPLEXITY 4
2、限制登錄次數:
在/etc/pam.d/system-auth文件中修改登錄失敗次數限制:
auth required pam_tally2.so deny=3 unlock_time=600
以上表示當一個用戶輸錯密碼3次後,賬號將被鎖定,鎖定時間為10分鐘。
四、文件許可權
1、目錄許可權:
在Linux系統中,所有的文件和目錄都有許可權,分別對應三個用戶:文件所有者、文件所在用戶組和其他用戶,我們可以使用chmod命令來控制這些許可權。
# 將文件所有者的讀、寫、執行許可權設置為rw-
chmod u=rw,go= file.txt
# 將文件所有者和所在組的讀、寫許可權,其他用戶的只有讀許可權
chmod ug=rw,o=r file.txt
2、SSH配置文件許可權:
SSH配置文件存放在/etc/ssh/sshd_config文件中,需要設置保護許可權,防止被非法修改。
# 設置只有root用戶可讀寫的許可權
chmod 600 /etc/ssh/sshd_config
五、日誌監控
痕迹分析是伺服器安全的重要部分,因此需要配置相應的日誌監控。
1、系統日誌監控:
在Linux系統中,所有的日誌都存儲在/var/log目錄下,我們可以使用logwatch工具來監控這些日誌文件。
# 安裝logwatch
yum install logwatch -y
# 配置logwatch,將報告發送到指定郵箱
vi /etc/cron.daily/0logwatch
2、SSH登錄監控:
我們可以使用libpam-logintime庫來記錄SSH登錄的時間。
# 安裝libpam-logintime
yum install pam_logintime
# 修改/etc/pam.d/sshd文件,添加以下行
session optional pam_logintime.so file=/var/log/logintime.log
六、更新系統
一些最新的漏洞可能會危及到伺服器的安全,因此需要保證系統中的軟體和內核始終是最新的。
在CentOS中,可以使用以下命令來更新系統:
yum -y update
七、其他措施
1、禁用無用的服務:
請使用chkconfig命令來禁用不需要的服務。
# 列出所有服務
chkconfig --list
# 關閉一個服務,以httpd為例
chkconfig httpd off
2、限制SSH連接IP:
在/etc/hosts.allow和/etc/hosts.deny文件中可以指定哪些IP可以訪問伺服器。
# 禁止所有非本機IP訪問
sshd: ALL
vsftpd: ALL
EXCEPT: 127.0.0.1
總結
以上是Linux伺服器安全加固措施的一些方案和具體實施方法,實施這些措施可以顯著提高伺服器的安全性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/230414.html