萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

打造安全 Linux 作業系統完整指南:磁碟分割、最小安裝、核心升級、服務精簡、SUID 管控、TCP Wrappers、防火牆、日誌稽核

一、磁碟分割規劃安全性

全新安裝時分割應考量安全:

  • 根目錄(/)、使用者目錄(/home)、暫存目錄(/tmp)、/var 目錄應各自獨立分割區
  • 各分割區空間大小充分規劃,避免空間耗盡導致系統崩潰

/tmp 和 /var 分割區多數情況不需 SUID 程式,應加 nosuid 屬性。
方法一:改 /etc/fstab 加 nosuid,如 /dev/hda2 /tmp ext2 exec,dev,nosuid,rw 0 0
方法二:用 linuxconf:選「File systems」→「Access local drive」→選分割區→勾「No setuid programs allowed」→正常離開(系統提示重新 mount)。

二、安裝原則:最小化

  • 非測試主機不裝過多套件,降低漏洞風險
  • 選擇啟動服務時不啟用非必需服務(如 routed、ypbind)

三、安全配置與增強

  • 核心升級:至少 2.2.16 以上
  • GNU libc 升級:無經驗者謹慎操作,可暫緩
  • 關閉危險網路服務: echo、chargen、shell、login、finger、NFS、RPC
  • 關閉非必需網路服務: talk、ntalk、pop-2 等

常見網路服務安全配置

  • 確保服務版本為最新最安全版
  • 取消匿名 FTP 存取
  • 移除非必需 SUID 程式
  • 使用 TCP Wrappers
  • 使用 ipchains 防火牆
  • 啟用日誌系統 syslogd

細節說明

1. 系統 log 是偵測入侵重要線索。 專線連網(固定 IP)可查登入嘗試:more /var/log/secure | grep refused

2. 限制 SUID 程式數量。 SUID 程式以 root 身份跑,是潛在漏洞。必要者(如 passwd)保留,其餘移除。

3. BIOS 安全。 設 BIOS 密碼、改引導順序禁用軟碟啟動。

4. 使用者密碼。 密碼是安全起點。避免簡單密碼(如 password)。好密碼應只有自己能記得理解,絕不書寫。

5. /etc/exports 設定。 用 NFS 時確保最嚴格權限:無萬用字元、禁 root 寫入、唯讀掛載。編輯加入:

/dir/to/export host1.mydomain.com(ro,root_squash)
/dir/to/export host2.mydomain.com(ro,root_squash)

ro 唯讀,root_squash 禁 root 寫入。生效:/usr/sbin/exportfs -a

6. 確認 /etc/inetd.conf 擁有者權限。

chmod 600 /etc/inetd.conf
stat /etc/inetd.conf

擁有者 root、權限 0600。編輯禁用服務(除非確實需用):ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth,特別是 r 指令。已用 SSH/SCP 可禁 telnet/ftp。生效:killall -HUP inetd。可設 chattr +i /etc/inetd.conf 不可改,root 用 chattr -i 解除。

7. TCP Wrappers

Red Hat 預設允許所有請求。用 TCP Wrappers 增強安全:
/etc/hosts.deny 加 ALL: ALL 禁止所有。
/etc/hosts.allow 明確允許,例:sshd: 192.168.1.10/255.255.255.0 gate.openarch.com
用 tcpdchk 檢查配置。

8. 別名檔 /etc/aliases

編輯 /etc/aliases(或 /etc/mail/aliases),移除/註解:

MAILER-DAEMON: postmaster
postmaster: root
bin: root
daemon: root
nobody: root

執行 /usr/bin/newaliases 生效。

9. 阻止回應 ping 請求。

加入 /etc/rc.d/rc.local 每次啟動自動執行:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

10. 不顯示作業系統版本資訊。

改 /etc/inetd.conf telnet 列:telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h,-h 旗標隱藏系統資訊,僅顯示 login:。

11. /etc/host.conf

編輯加入:

order bind,hosts
multi off
nospoof on

IP Spoofing:攻擊者偽裝信任主機取得未授權存取。

12. /etc/securetty

指定允許 root 登入的 tty 裝置。註解除 tty1 外其他:

tty1
#tty2
#tty3
...

表示 root 僅允許在 tty1 終端登入。

copyright © 萬盛學電腦網 all rights reserved