1. 程式人生 > >linux 安全基線

linux 安全基線

安全基線

1.物理防護

BIOS設置密碼

引導grub.conf添加密碼

2.系統安裝時采用最小化原則,只安裝base services


3.應用數據分區與系統隔離


4.禁用開機不需要啟動的服務


5.隱藏系統信息


6.服務器和互聯網時間同步


7.sudo對普通用戶權限精細控制


8.密碼策略:有效期90天 復雜度16位


8.ssh安全加固


9.優化Linux內核,增加系統文件描述符、堆棧等配置


10.清除無用的默認系統帳戶或組(非必須)


11.文件權限

限制全局默認權限為0750,文件夾 umask 027

限制敏感文件,使用chattr命令給下列文件加上不可更改的屬性

# chattr +i /etc/passwd

# chattr +i /etc/shadow

# chattr +i /etc/group

# chattr +i /etc/gshadow

# chattr +a .bash_history 避免刪除.bash_history或者重定向到/dev/null

# chattr +i .bash_history

# chmod 700 /usr/bin 恢復 chmod 555 /usr/bin

# chmod 700 /bin/ping 恢復 chmod 4755 /bin/ping

# chmod 700 /usr/bin/vim 恢復 chmod 755 /usr/bin/vim

# chmod 700 /bin/netstat 恢復 chmod 755 /bin/netstat

# chmod 700 /usr/bin/tail 恢復 chmod 755 /usr/bin/tail

# chmod 700 /usr/bin/less 恢復 chmod 755 /usr/bin/less

# chmod 700 /usr/bin/head 恢復 chmod 755 /usr/bin/head

# chmod 700 /bin/cat 恢復 chmod 755 /bin/cat

# chmod 700 /bin/uname 恢復 chmod 755 /bin/uname

# chmod 500 /bin/ps 恢復 chmod 755 /bin/ps

限制非root用戶執行/etc/rc.d/init.d/下的系統命令

# chmod -R 700 /etc/rc.d/init.d/*

# chmod -R 777 /etc/rc.d/init.d/* 恢復默認設置

12.禁止使用Ctrl+Alt+Del快捷鍵重啟服務器

# cp /etc/inittab /etc/inittabbak

# vi /etc/inittab #註釋下面兩行

#start on control-alt-delete

#exec /sbin/shutdown -r now "Control-Alt-Delete pressed"

13.禁止yum update更新系統時不升級內核,只更新軟件包

由於系統與硬件的兼容性問題,有可能升級內核後導致服務器不能正常啟動,沒有特別的需要,建議不要隨意升級內核。


14.調整history大小,刪除MySQL歷史記錄


15.計劃任務


16.實時監控

查詢系統端口及服務狀態

web 服務端口 8081

文件監控

檢查具有suid、sgid權限的文件

# find / -perm -4000 -o -perm -2000

# find 24小時內更改過的文件

檢測Rootkit

17.應用基線

keepalive 15秒

錯誤頁面重定向,出於安全方面的考量,為了避免敏感信息的外泄

上傳文件大小


18.日誌 logstash

 常用的日誌文件如下:

      access-log   紀錄HTTP/web的傳輸

      acct/pacct   紀錄用戶命令

      aculog     紀錄MODEM的活動

      btmp      紀錄失敗的紀錄

      lastlog     紀錄最近幾次成功登錄的事件和最後一次不成功的登錄

      messages    從syslog中記錄信息(有的鏈接到syslog文件)

      sudolog     紀錄使用sudo發出的命令

      sulog      紀錄使用su命令的使用

      syslog     從syslog中記錄信息(通常鏈接到messages文件)

      utmp      紀錄當前登錄的每個用戶

      wtmp      一個用戶每次登錄進入和退出時間的永久紀錄

      xferlog     紀錄FTP會話


用戶登入的信息,安全性和驗證性的日誌

last、lastb、lastlog


utmp文件中保存的是當前正在本系統中的用戶的信息。


wtmp文件中保存的是登錄過本系統的用戶的成功信息。


btmp文件中保存的是登錄失敗的信息。

#使用last命令可以查看btmp文件:例如,”last -f /var/log/btmp | more“


#1、當前登錄用戶的信息記錄在文件utmp中;======who、w命令

#2、登錄和退出記錄在文件wtmp中;========last命令

#3、登錄失敗的記錄在文件btmp中========lastb命令

#4、最後一次登錄可以用lastlog命令

#5、messages======從syslog中記錄信息


註意:wtmp和utmp文件都是二進制文件。

/var/log/messages 包括整體系統信息,其中也包含系統啟動期間的日誌。此外,mail,cron,daemon,kern和auth等內容也記錄在var/log/messages日誌中。

/var/log/dmesg 包含內核緩沖信息(kernel ring buffer)。在系統啟動時,會在屏幕上顯示許多與硬件有關的信息。可以用dmesg查看它們。

/var/log/auth.log 包含系統授權信息,包括用戶登錄和使用的權限機制等。

/var/log/boot.log 包含系統啟動時的日誌。

/var/log/daemon.log 包含各種系統後臺守護進程日誌信息。

/var/log/dpkg.log 包括安裝或dpkg命令清除軟件包的日誌。

/var/log/kern.log 包含內核產生的日誌,有助於在定制內核時解決問題。

/var/log/lastlog 記錄所有用戶的最近信息。這不是一個ASCII文件,因此需要用lastlog命令查看內容。

/var/log/maillog /var/log/mail.log 包含來著系統運行電子郵件服務器的日誌信息。例如,sendmail日誌信息就全部送到這個文件中。

/var/log/user.log 記錄所有等級用戶信息的日誌。

/var/log/Xorg.x.log 來自X的日誌信息。

/var/log/alternatives.log 更新替代信息都記錄在這個文件中。

/var/log/btmp 記錄所有失敗登錄信息。使用last命令可以查看btmp文件。例如,”last -f /var/log/btmp | more“。

/var/log/cups 涉及所有打印信息的日誌。

/var/log/anaconda.log 在安裝Linux時,所有安裝信息都儲存在這個文件中。

/var/log/yum.log 包含使用yum安裝的軟件包信息。

/var/log/cron 每當cron進程開始一個工作時,就會將相關信息記錄在這個文件中。

/var/log/secure 包含驗證和授權方面信息。例如,sshd會將所有信息記錄(其中包括失敗登錄)在這裏。

/var/log/wtmp或/var/log/utmp 包含登錄信息。使用wtmp可以找出誰正在登陸進入系統,誰使用命令顯示這個文件或信息等。

/var/log/faillog 包含用戶登錄失敗信息。此外,錯誤登錄命令也會記錄在本文件中。


除了上述Log文件以外,/var/log還基於系統的具體應用包含以下一些子目錄:

/var/log/httpd/或/var/log/apache2 包含服務器access_log和error_log信息。

/var/log/lighttpd/ 包含light HTTPD的access_log和error_log。

/var/log/mail/ 這個子目錄包含郵件服務器的額外日誌。

/var/log/prelink/ 包含.so文件被prelink修改的信息。

/var/log/audit/ 包含被 Linux audit daemon儲存的信息。

/var/log/samba/ 包含由samba存儲的信息。

/var/log/sa/ 包含每日由sysstat軟件包收集的sar文件。

/var/log/sssd/ 用於守護進程安全服務。

除了手動存檔和清除這些日誌文件以外,還可以使用logrotate在文件達到一定大小後自動刪除。可以嘗試用vi,tail,grep和less等命令查看這些日誌文件。


19.補丁更新


20.定時備份


21.防火墻

Juniper的Netscreen

H3C的Secpath

華為USG6390


IPTABLES

服務器禁ping

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


SELINUX

# 有外網IP的機器要開啟配置防火墻,配置SELINUX


FACL


TCP_Wrappers應用級防火墻

# vi /etc/host.conf),加入下面這行:

  # Lookup names via DNS first then fall back to /etc/hosts.

  order bind,hosts

  # We have machines with multiple IP addresses.

  multi on

  # Check for IP address spoofing.

  nospoof on

  第一項設置首先通過DNS解析IP地址,然後通過hosts文件解析。第二項設置檢測是否"/etc/hosts"文件中的主機是否擁有多個IP地址(比如有多個以太口網卡)。第三項設置說明要註意對本機未經許可的電子欺騙。


入侵檢測

IDS

HIDS: OSSEC 主機入侵檢測系統

NIDS: snort 網絡入侵檢測系統

Filesystem: tripware

AIDE(Adevanced Intrusion Detection Environment,高級入侵檢測環境

IPS

IDS + Firewall


本文出自 “流星工作室” 博客,請務必保留此出處http://redone.blog.51cto.com/5382451/1962343

linux 安全基線