萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> Linux下常用安全策略設置的六個方法

Linux下常用安全策略設置的六個方法

   “安全第一”對於linux管理界乃至計算機也都是一個首要考慮的問題。加密的安全性依賴於密碼本身而非算法!而且,此處說到的安全是指數據的完整性,由此,數據的認證安全和完整性高於數據的私密安全,也就是說數據發送者的不確定性以及數據的完整性得不到保證的話,數據的私密性當無從談起!

  1. 禁止系統響應任何從外部/內部來的ping請求攻擊者一般首先通過ping命令檢測此主機或者IP是否處於活動狀態 ,如果能夠ping通 某個主機或者IP,那麼攻擊者就認為此系統處於活動狀態,繼而進行攻擊或破壞。如果沒有人能ping通機器並收到響應,那麼就可以大大增強服務器的安全性,linux下可以執行如下設置,禁止ping請求:

  [root@localhost ~]#echo “1”> /proc/sys/net/ipv4/icmp_echo_ignore_all默認情況下“icmp_echo_ignore_all”的值為“0”,表示響應ping操作。

  可以加上面的一行命令到/etc/rc.d/rc.local文件中,以使每次系統重啟後自動運行。

  2.禁止Control-Alt-Delete組合鍵重啟系統

  在linux的默認設置下,同時按下Control-Alt-Delete鍵,系統將自動重啟,這是很不安全的,因此要禁止Control-Alt-Delete組合鍵重啟系統,只需修改/etc/inittab文件:

  代碼如下:

  [root@localhost ~]#vi /etc/inittab

  找到此行:ca::ctrlaltdel:/sbin/shutdown -t3 -r now在之前加上“#”

  然後執行:

  代碼如下:

  [root@localhost ~]#telinit q

  3.限制Shell記錄歷史命令大小

  默認情況下,bash shell會在文件$HOME/.bash_history中存放多達1000條命令記錄(根據系統不同,默認記錄條數不同)。系統中每個用戶的主目錄下都有一個這樣的文件。

  這麼多的歷史命令記錄,肯定是不安全的,因此必須限制該文件的大小。

  可以編輯/etc/profile文件,修改其中的選項如下:

  HISTSIZE=30

  表示在文件$HOME/.bash_history中記錄最近的30條歷史命令。如果將“HISTSIZE”設置為0,則表示不記錄歷史命令,那麼也就不能用鍵盤的上下鍵查找歷史命令了。

   4.刪除系統默認的不必要用戶和組

  Linux提供了各種系統賬戶,在系統安裝完畢,如果不需要某些用戶或者組,就要立即刪除它,因為賬戶越多,系統就越不安全,越容易受到攻擊。

  刪除系統不必要的用戶用下面命令

  代碼如下:

  [root@localhost ~]# userdel username

  刪除系統不必要的組用如下命令:

  代碼如下:

  [root@localhost ~]# groupdel groupname

  Linux系統中可以刪除的默認用戶和組有:

  刪除的用戶,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。

  刪除的組,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等。

  5. 關閉selinux

  SELinux是 Security-Enhanced Linux的簡稱,是一種內核強制訪問控制安全系統,目前SELinux已經集成到Linux 2.6內核的主線和大多數Linux發行版上,由於SELinux與現有Linux應用程序和Linux內核模塊兼容性還存在一些問題,因此建議初學者先關閉selinux,等到對linux有了深入的認識後,再對selinux深入研究不遲!

  查看linux系統selinux是否啟用,可以使用getenforce命令:

  代碼如下:

  [root@localhost ~]# getenforce

  Disabled

  關閉selinux,在redhat系列發行版中,可以直接修改如下文件:

  代碼如下:

  [root@localhost ~]#vi /etc/sysconfig/selinux# This file controls the state of SELinux on the system.

  # SELINUX= can take one of these three values:

  # enforcing - SELinux security policy is enforced.

  # permissive - SELinux prints warnings instead of enforcing.

  # disabled - SELinux is fully disabled.

  SELINUX=enforcing

  # SELINUXTYPE= type of policy in use. Possible values are:

  # targeted - Only targeted network daemons are protected.

  # strict - Full SELinux protection.

  SELINUXTYPE=targeted

  將SELINUX=enforcing修改為SELINUX=disabled, 重啟系統後將會停止SElinux。

  6.設定tcp_wrappers防火牆

  Tcp_Wrappers是一個用來分析TCP/IP封包的軟件,類似的IP封包軟件還有iptables,linux默認都安裝了此軟件,作為一個安全的系統,Linux本身有兩層安全防火牆,通過IP過濾機制的iptables實現第一層防護,iptables防火牆通過直觀地監視系統的運行狀況,阻擋網絡中的一些惡意攻擊,保護整個系統正常運行,免遭攻擊和破壞。關於iptables的實現,將在下個章節詳細講述。如果通過了第一層防護,那麼下一層防護就是tcp_wrappers了,通過Tcp_Wrappers可以實現對系統中提供的某些服務的開放與關閉、允許和禁止,從而更有效地保證系統安全運行。

  Tcp_Wrappers的使用很簡單,僅僅兩個配置文件:/etc/hosts.allow和/etc/hosts.deny(1) 查看系統是否安裝了Tcp_Wrappers

  [root@localhost ~]#rpm -q tcp_wrappers 或者[root@localhost ~]#rpm -qa | grep tcp

  tcp_wrappers-7.6-37.2

  tcpdump-3.8.2-10.RHEL4

  如果有上面的類似輸出,表示系統已經安裝了tcp_wrappers模塊。如果沒有顯示,可能是沒有安裝,可以從linux系統安裝盤找到對應RPM包進行安裝。

  (2)tcp_wrappers防火牆的局限性

  系統中的某個服務是否可以使用tcp_wrappers防火牆,取決於該服務是否應用了libwrapped庫文件,如果應用了就可以使用tcp_wrappers防火牆,系統中默認的一些服務如:sshd、portmap、sendmail、xinetd、vsftpd、tcpd等都可以使用tcp_wrappers防火牆。

  (3) tcp_wrappers設定的規則

  tcp_wrappers防火牆的實現是通過/etc/hosts.allow和/etc/hosts.deny兩個文件來完成的,首先看一下設定的格式:

  service:host(s) [:action]

  l service:代表服務名,例如sshd、vsftpd、sendmail等。

  l host(s):主機名或者IP地址,可以有多個,例如192.168.60.0、www.ixdba.netl action:動作, 符合條件後所采取的動作。

  幾個關鍵字:

  l ALL:所有服務或者所有IP。

  l ALL EXCEPT:所有的服務或者所有IP除去指定的。

  例如:ALL:ALL EXCEPT 192.168.60.132

  表示除了192.168.60.132這台機器,任何機器執行所有服務時或被允許或被拒絕。

  了解了設定語法後,下面就可以對服務進行訪問限定。

  例如互聯網上一台linux服務器,實現的目標是:僅僅允許222.90.66.4、61.185.224.66以及域名softpark.com通過SSH服務遠程登錄到系統,設置如下:

  首先設定允許登錄的計算機,即配置/etc/hosts.allow文件,設置很簡單,只要修改/etc/hosts.allow(如果沒有此文件,請自行建立)這個文件即可。

  只需將下面規則加入/etc/hosts.allow即可。

  sshd: 222.90.66.4 61.185.224.66 softpark.com接著設置不允許登錄的機器,也就是配置/etc/hosts.deny文件了。

  一般情況下,linux會首先判斷/etc/hosts.allow這個文件,如果遠程登錄的計算機滿足文件/etc/hosts.allow設定的話,就不會去使用/etc/hosts.deny文件了,相反,如果不滿足hosts.allow文件設定的規則的話,就會去使用hosts.deny文件了,如果滿足hosts.deny的規則,此主機就被限制為不可訪問linux服務器,如果也不滿足hosts.deny的設定,此主機默認是可以訪問linux服務器的,因此,當設定好/etc/hosts.allow文件訪問規則之後,只需設置/etc/hosts.deny為“所有計算機都不能登錄狀態”即可。

  sshd:ALL

  這樣,一個簡單的tcp_wrappers防火牆就設置完畢了。

copyright © 萬盛學電腦網 all rights reserved