深入分析Linux系統深度安全加固
Linux 系統深度安全加固
author : ayazero drdos@163.com
Personal web — http://overflow.nease.net
Team`s site — http://ph4nt0m.net
注:以下內容可能不適用於某些場合,請對號入座
1. 安裝和升級
儘量選用最新的 Linux 發行版本,安裝前拔掉網線,斷開物理連線,安裝時建議用 custom 自定義方式安裝軟體包,數量以少為好,一般來說伺服器沒有必要安裝 X-windows,在 lilo/grub 引導器中加入口令限制,防止能夠物理接觸的惡意使用者因為 Linux 安裝光碟的 rescue 模式可以跳過這個限制,所以還要給bios加上密碼或伺服器機箱上鎖 /var, /home, /usr, /root 等目錄用獨立的物理分割槽,防止垃圾資料和日誌填滿硬碟而導致 D.o.S 攻擊.
root 賬號給予強壯的口令.
安裝完畢立即用 up2date 或 apt 升級系統軟體,有時升級核心也是必要的,因為核心出現問題同樣會給攻擊者提供機會Apt 是 Debian GNU Linux 下的一個強大的包管理工具,也可用於其他版本的 Linux.
2. 賬號
如果系統中的使用者比較多,可以編輯 /etc/login.defs,更改密碼策略
刪除系統中不必要帳戶和組,
[root@ayazero /]# userdel -r username
如果不開匿名 ftp 則可以把 ftp 賬號也刪了
最安全的方式是本地維護,可惜不太現實,但還是需要限制 root 的遠端訪問,管理員可以用普通賬戶遠端登入,然後 su 到 root,我們可以把使用 su 的使用者加到 wheel 組來提高安全性
在 /etc/pam.d/su 檔案的頭部加入下面兩行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/pam_wheel.so group=wheel
然後把可以執行 su 的使用者放入 wheel 組
[root@ayazero /]# usermod -G10 admin
編輯 /etc/securetty,註釋掉所有允許 root 遠端登入的控制檯,然後禁止使用所有的控制檯程式,[root@ayazero /]# rm -f /etc/security/console.apps/servicename
登入採用加密的 ssh,如果管理員只從固定的終端登陸,還應限制合法 ssh 客戶端的範圍防止嗅探及中間人攻擊
將命令歷史紀錄歸為零,儘可能的隱藏你做過的事情
[root@ayazero /]# unset HISTFILESIZE
3. 服務
最少服務原則,凡是不需要的服務一律註釋掉
在 /etc/inetd.conf 中不需要的服務前加 “#”,較高版本中已經沒有 inetd 而換成了 Xinetd;取消開機自動執行服務,把 /etc/rc.d/rc3.d 下不需要執行的服務第一個字母大寫改稱小寫,或者由 setup 命令啟動的 GUI 介面中的 service 更改
如果你希望簡單一點,可以使用 /etc/host.allow,/etc/host.deny 這兩個檔案,但是本文計劃用 iptables 防火牆,所以不在此詳述.
4. 檔案系統許可權
找出系統中所有含 “s” 位的程式,把不必要得 “s” 位去掉,或者把根本不用的直接刪除
[root@ayazero /]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {}
[root@ayazero /]# chmod a-s filename
防止使用者濫用及提升許可權的可能性
把重要檔案加上不可改變屬性
[root@ayazero /]# chattr +i /etc/passwd
[root@ayazero /]# chattr +i /etc/shadow
[root@ayazero /]# chattr +i /etc/gshadow
[root@ayazero /]# chattr +i /etc/group
[root@ayazero /]# chattr +i /etc/inetd.conf
[root@ayazero /]# chattr +i /etc/httpd.conf
………………………….
具體視需要而定,我懷疑現在的入侵者都知道這個命令,有些 exploit 溢位後往 inetd.conf 寫一條語句繫結 shell 在一個埠監聽,此時這條命令就起了作用,淺薄的入侵者會以為溢位不成功.
找出系統中沒有屬主的檔案:
[root@ayazero /]# find / -nouser -o -nogroup
找出任何人都有寫許可權的檔案和目錄:
[root@ayazero /]# find / -type f ( -perm -2 -o -perm -20 ) -exec ls -lg {}
[root@ayazero /]# find / -type d ( -perm -2 -o -perm -20 ) -exec ls -ldg {}
防止入侵者向其中寫入木馬語句(諸如一個shell的拷貝)或繼承屬主許可權而非法訪問
找出並加固那些歷來被入侵者利用的檔案,比如 .rhosts
編輯 /etc/security/limits.conf,加入或改變如下行:
* hard core 0
* hard rss 5000
* hard nproc 20
5. Banner 偽裝
入侵者通常通過作業系統,服務及應用程式版本來攻擊,漏洞列表和攻擊程式也是按此來分類,所以我們有必要作點手腳來加大入侵的難度
更改 /etc/issue,因為 reboot 後重新載入,所以編輯 /ect/rc.d/rc.local
# This will overwrite /etc/issue at every boot. So, make any changes you
# want to make to /etc/issue here or you will lose them when you reboot.
#echo “” > /etc/issue
#echo “$R” >> /etc/issue
#echo “Kernel $(uname -r) on $a $(uname -m)” >> /etc/issue
#
#cp -f /etc/issue /etc/issue.net
#echo >> /etc/issue
把以上行前的 “#” 去掉
Apache 不回顯版本:
apache 的配置檔案,找到 ServerTokens 和 ServerSignature 兩個 directive,修改預設屬性:
#ServerTokens Full
ServerTokens Prod <———-
#ServerSignature On
ServerSignature Off <———-
修改 uname
拿出 uname.c 的原始碼,找到如下行
print_element (PRINT_SYSNAME, name.sysname);//作業系統名如 linux
print_element (PRINT_NODENAME, name.nodename);//主機名
print_element (PRINT_RELEASE, name.release);//發行版本,如:2.4.20-18
print_element (PRINT_VERSION, name.version);//
print_element (PRINT_MACHINE, name.machine);//機器型別,如i686
print_element (PRINT_PROCESSOR, processor);//處理器型別
可以修改為
print_element (PRINT_SYSNAME,”HP-UX”);
…….
編譯後替換 /bin/uname
其他服務及程式的修改可以檢視其配置檔案或者原始碼不要改太多,否則會給系統管理帶來大麻煩。
6. Iptales 防火牆規則
假設我們的伺服器 server1 執行 apache,sshd (sshd 可以不執行在標準埠,配置檔案中能修改)eth0 網路卡接 Internet,eth1 連線 LAN,管理員在家中撥號登陸到 server2 (其私用網路 IP 為 192.168.0.12),再登陸 server1[roor@ayazero root]# iptables -A INPUT -i eth1 -s 192.168.0.12 -p tcp –dport 22 -j ACCEPT為防止 IP spoofing 的可能,還可以繫結 server2 的網路卡地址:sh-2.05b# iptables -A INPUT -i eth1 -s 192.168.0.12 –mac-source 01:68:4B:91:CC:B7 -p tcp –dport 22 -j ACCEPT不過好像也很少有入侵者能夠做到這種地步,而且沒什麼利用的價值
[root@ayazero root]# iptables -A INPUT -i eth0 -p tcp –dport 80 -j ACCEPT
[root@ayazero root]# iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
[root@ayazero root]# iptables -A INPUT -j DROP
對攻擊有所瞭解的人都知道“埠重定向+反向管道”的美妙結合來穿越防火牆的例子吧這種技巧已經運用太廣,而危害很大為了對抗這種難以防禦的攻擊,我們必須以犧牲一定的易用性為代價 [root@ayazero root]# iptables -A OUTPUT -o eth0 -p tcp –syn -j DROP以上規則將阻止由內而外的 TCP 主動連線另外,用 tftp 或其他客戶端反向攫取檔案的攻擊行為也很普遍,由於 tftp 以及其他一些工具依賴 UDP,所以現在要把它徹底抹煞掉[root@ayazero root]# iptables -A OUTPUT -o eth0 -p udp -j DROPPS: 在更新系統和除錯網路時需要把這兩條規則臨時去掉因為入侵的本質就是通過文字或圖形介面在標準或非標準埠得到目標作業系統的 shell,所以,這不僅能阻止反向管道本身,還能免疫很多入侵技巧不過對一般的系統管理員而言,這太苛刻了!
iptables 的一些攻擊對策
Syn-flood protection:
[root@ayazero foo]# iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT
Furtive port scanner:
[root@ayazero foo]# iptables -A FORWARD -p tcp –tcp-flags SYN,ACK,FIN,RST RST -m limit –limit 1/s -j ACCEPT
Ping of death:
[root@ayazero foo]# iptables -A FORWARD -p icmp –icmp-type echo-request -m limit –limit 1/s -j ACCEPT
此外,iptables 還能配置出讓一些掃描行為比如 nmap 失效的規則,應當注意:防火牆不是萬能的,當一個攻擊者足夠瘋狂時,不要指望你的防火牆能抵擋得住 DDoS 的洪水。
關於 iptables 得更多細節,請參閱 Rusty Russell 的 Packet Filtering HOWTO
7. 完整性校驗
tripwire 是一個比較有名的工具,它能幫你判斷
相關文章
- 深入分析Linux系統深度安全加固(轉)Linux
- 深入分析Linux作業系統深度安全加固Linux作業系統
- 系統安全加固
- 在Linux中,如何進行系統安全加固?Linux
- AIX作業系統安全加固AI作業系統
- Linux系統下對NFS服務安全加固的方法LinuxNFS
- HarmonyOS Next智慧家居系統安全加固:加解密技術的深度應用解密
- 物理機伺服器系統安全加固方法伺服器
- 【Linux】Linux安全加固指令碼Linux指令碼
- 初級安全入門——Windows作業系統的安全加固Windows作業系統
- 伺服器安全加固 - Linux伺服器Linux
- linux 賬號密碼安全加固Linux密碼
- ios安全加固 ios 加固方案iOS
- GNU/Linux安全基線與加固-0.1Linux
- nginx安全加固Nginx
- linux伺服器基線加固、安全漏掃工具(綠盟...)掃出來的系統漏洞Linux伺服器
- linux安全加固常見加密協議(續)Linux加密協議
- 加固系統,從埠做起薦
- JavaScript混淆安全加固JavaScript
- 密碼安全加固密碼
- open Euler安全加固
- Windows伺服器作業系統安全配置檢查和加固方法Windows伺服器作業系統
- 阿里雲ECS伺服器CentOS7上系統安全加固阿里伺服器CentOS
- 安卓移動應用程式碼安全加固系統設計及實現安卓
- MySQL安全加固方法分享MySql
- Linux系統安全保護Linux
- linux系統中 SElinux安全子系統Linux
- 深入分析 Linux作業系統的核心連結串列(轉)Linux作業系統
- 安全使用RedHat Linux系統(轉)RedhatLinux
- Linux的系統的安全如何保障?保護Linux系統安全的九個常用方法Linux
- 《深度探索linux作業系統》贈書活動Linux作業系統
- Linux系統安全常規優化Linux優化
- 深度linux系統怎麼更換賬戶圖片? 深度linux系統使用者頭像的設定方法Linux
- iOS安全加固方法及實現iOS
- iptables配置-Linux系統安全防火牆Linux防火牆
- 用日誌系統保護Linux安全Linux
- 配置安全的Linux作業系統(轉)Linux作業系統
- 熟悉Linux系統的安全和優化Linux優化