歡迎您光臨本站 註冊首頁

讓你的Linux系統變成銅牆鐵壁

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
  BIOS安全

  記著要在BIOS設置中設定一個BIOS密碼,不接收軟盤啟動.這樣可以阻止不懷好意的人用專門的啟動盤啟動你的Linux系統,並避免別人更改BIOS設置,如更改軟盤啟動設置或不彈出密碼框直接啟動伺服器等.

  LILO安全

  在“/etc/lilo.conf”文件中添加3個參數:time-out、restricted 和 password.這些選項會在啟動時間(如“linux single”)轉到啟動轉載程序過程中,要求提供密碼.

  步驟1

  編輯lilo.conf文件(/etc/lilo.conf),添加和更改這三個選項:

  QUOTE:

  boot=/dev/hda

  map=/boot/map

  install=/boot/boot.b

  time-out=00 #change this line to 00

  prompt

  Default=linux

  restricted #add this line

  password= #add this line and put your password

  image=/boot/vmlinuz-2.2.14-12

  label=linux

  initrd=/boot/initrd-2.2.14-12.img

  root=/dev/hda6

  read-only

  步驟2

  由於其中的密碼未加密,“/etc/lilo.conf”文件只對根用戶為可讀.

  [root@kapil /]# chmod 600 /etc/lilo.conf (不再為全局可讀)

  步驟3

  作了上述修改後,更新配置文件“/etc/lilo.conf”.

  [Root@kapil /]# /sbin/lilo -v (更新lilo.conf文件)

  步驟4

  還有一個方法使“/etc/lilo.conf”更安全,那就是用chattr命令將其設為不可改:

  [root@kapil /]# chattr i /etc/lilo.conf

  它將阻止任何對“lilo.conf”文件的更改,無論是否故意.

  關於lilo安全的更多信息,請參考LILO.


  禁用所有專門帳號

  在lp, sync, shutdown, halt, news, uucp, operator, games, gopher等系統中,將你不使用的所有默認用戶帳號和群組帳號刪除.

  要刪除用戶帳號:

  [root@kapil /]# userdel LP

  要刪除群組帳號:

  [root@kapil /]# groupdel LP

  選擇恰當的密碼

  選擇密碼時要遵循如下原則:

  密碼長度:安裝Linux系統時默認的最短密碼長度為5個字元.這個長度還不夠,應該增為8個.要改為8個字元,必須編輯 login.defs 文件(/etc/login.defs):

  PASS_MIN_LEN 5
改為:

  PASS_MIN_LEN 8

  “login.defs”是登錄程序的配置文件.

  啟用盲區密碼支持

  請啟用盲區密碼功能.要實現這一點,使用“/usr/sbin/authconfig”實用程序.如果想把系統中現有的密碼和群組改為盲區密碼和群組,則分別用 pwconv 和 grpconv 命令.

  根帳戶

  在UNIX系統中,根帳戶具有最高許可權.如果系統管理員在離開系統時忘了從根系統註銷,系統應該能夠自動從shell中註銷.那麼,你就需要設置一個特殊的 Linux 變數“TMOUT”,用以設定時間.

  編輯“/etc/profile”文件在

  "HISTFILESIZE="

  之後添加:

  TMOUT=3600

  為“TMOUT=”輸入的值代表1小時的妙數(60 * 60 = 3600妙).

  在“/etc/profile”文件中加了這一行后,任何用戶使用該系統時有1小時的休止狀態,將自動執行註銷操作.而如果用戶要對該變數進行分別設定,可以在“.bashrc”文件中定義自動註銷的時間.

  修改了該參數后,必須退出並重新登錄(為根帳戶),更改才能生效.



  禁止普通用戶對控制台的所有訪問

  應該禁止伺服器上的普通用戶對關閉、重啟、掛起等控制台級別程序的訪問.運行如下命令:

  [root@kapil /]# rm -f /etc/security/console.apps其中為禁止訪問的程序名稱.

  禁用 & 卸載所有不使用的服務

  對所有不使用的服務,應該禁用並卸載,這樣可以少些麻煩.查看“/etc/inetd.conf”文件,在不需要的項目行前加“#”號,即改為註釋語句,就可以禁用它們了.然後給 inetd 過程發送一個 SIGHUP 命令,對“inetd.conf”文件進行更新.步驟如下:

  步驟1

  將“/etc/inetd.conf”文件許可改為600,使其只對根用戶為可讀寫.

  [Root@kapil /]# chmod 600 /etc/inetd.conf

  步驟2

  確保“/etc/inetd.conf”文件的所有者為根用戶.

  步驟3

  編輯 inetd.conf 文件(/etc/inetd.conf),禁用如下服務:

  ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth,等等.

  如果不打算用,禁用了這些服務可以減少風險.
步驟4

  給 inetd 過程發送HUP信號:

  [root@kapil /]# killall -HUP inetd

  步驟5

  將“/etc/inetd.conf”文件設為不可更改,chattr 命令可以使任何人都無法對其進行修改:

  [root@kapil /]# chattr i /etc/inetd.conf

  唯一可以設置或清除該屬性的用戶只有根用戶.要修改inetd.conf文件,必須去掉不可更改標記:

  [root@kapil /]# chattr -i /etc/inetd.conf

  TCP_WRAPPERS

  通過 TCP_WRAPPERS,可以使伺服器更好地抵制外部侵入.最好的辦法是拒絕所有主機:在“/etc/hosts.deny”文件中加入“ALL: ALL@ALL, PARANOID”,然後在“/etc/hosts.allow”列出允許訪問的主機.TCP_WRAPPERS 受控於兩個文件,搜索時停在第一個匹配的地方.



  /etc/hosts.allow

  /etc/hosts.deny

  步驟1

  編輯 hosts.deny 文件(/etc/hosts.deny),加入如下行:

  # Deny access to everyone.

  ALL: ALL@ALL, PARANOID

  語句的意思是,除非在 allow 文件中說明允許訪問,所有服務、所有主機都被拒絕.

  步驟2

  編輯 hosts.allow 文件(/etc/hosts.allow),例如在文件中添加如下行:

  ftp: 202.54.15.99 foo.com

  對於你的客戶機來說:202.54.15.99為IP地址,foo.com為允許使用ftp的一個客戶機.

  步驟3

  tcpdchk 程序是tcpd wrapper配置的檢查程序.它對tcpd wrapper的配置進行檢查,並報告所發現的潛在的和實際存在的問題.配置完成後,運行tcpdchk 程序:

  [Root@kapil /]# tcpdchk

  不要顯示系統發行文件

  當別人遠程登錄時,不應該顯示系統發行文件.做法是在“/etc/inetd.conf”文件中更改telnet選項:

  telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
改為:

  telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h

  在末尾加“-h”標記使後台程序不顯示任何系統信息,而只給用戶提供一個 login: 提示符.

  更改“/etc/host.conf”文件

  “/etc/host.conf”文件用來指定如何解析名稱的方法.編輯 host.conf 文件(/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解析主機名稱,然後解析主機文件.multi 選項用於確定“/etc/hosts”文件中的主機是否有多個IP地址(多介面乙太網).



  nospoof 選項指明該機器不允許假信息.

  為“/etc/services”文件免疫

  必須為“/etc/services”文件進行磁碟免疫,以避免對文件未經授權的刪除或添加.使用如下命令:

  [root@kapil /]# chattr i /etc/services

  不接受從不同控制台的根用戶登錄

  “/etc/securetty”文件可以指定“root”用戶允許從哪個TTY設備登錄.編輯“/etc/securetty”文件,在不需要的tty前面加“#”,禁用這些設備.

  禁止任何人使用su命令

  su命令(Substitute User,替代用戶)可以使你成為系統的現有用戶.如果不希望別人使用su進入根帳戶,或者對某些用戶限制使用“su”命令,則在“/etc/pam.d/”目錄的“su”配置文件頂部加上下文中給出的兩行代碼.

  編輯su文件(/etc/pam.d/su),在文件頂部添加如下兩行:

  auth sufficient /lib/security/pam_rootok.so debug

  auth required /lib/security/Pam_wheel.so group=wheel

  意思是,只有“wheel”組的成員可以用su命令;其中還包括了日誌.你可以在wheel組中添加允許使用該命令的用戶.

  shell日誌

  shell可存儲500箇舊命令在“~/.bash_history”文件中(其中“~/”代表主目錄),這樣可以便於重複前面的長命令.系統中的每個帳號用戶在各自的主目錄中都有這個“.bash_history”文件.為安全起見,應使shell存儲較少的命令,並在註銷用戶時將其刪除.

  步驟1

  “/etc/profile”文件中的 HISTFILESIZE 和 HISTSIZE 行決定了系統中所有用戶的“.bash_history”文件可容納的舊命令個數.建議將“/etc/profile”文件中的 HISTFILESIZE 和 HISTSIZE 設為比較小的數,比如30.



  編輯 profile 文件(/etc/profile),並更改:

  HISTFILESIZE=30

  HISTSIZE=30
步驟2

  系統管理員還應在“/etc/skel/.bash_logout”文件中加進“rm -f $HOME/.bash_history”行,這樣就可以在每次用戶退出時刪除“.bash_history”文件.

  編輯 .bash_logout 文件(/etc/skel/.bash_logout),並添加如下行:

  rm -f $HOME/.bash_history

  禁用 Control-Alt-Delete 鍵盤關機命令

  只要在該行前面加“#”,改為註釋行.在“/etc/inittab”文件中找到:

  ca::ctrlaltdel:/sbin/shutdown -t3 -r now

  改為:

  #ca::ctrlaltdel:/sbin/shutdown -t3 -r now

  然後,為使更改生效,在提示符下輸入:

  [root@kapil /]# /sbin/init q

  修正腳本文件在“/etc/rc.d/init.d”目錄下的許可權

  對腳本文件的許可權進行修正,腳本文件用以決定啟動時需要運行的所有正常過程的開啟和停止.添加:

  [root@kapil/]# chmod -R 700 /etc/rc.d/init.d/*

  這句指的是,只有根用戶允許在該目錄下使用 Read、Write,和 Execute 腳本文件.

  隱藏系統信息

  默認情況下,當用戶登錄到 Linux 中時,會顯示 Linux 發行名稱、版本、內核版本,以及伺服器名稱.這些已經足夠讓黑客獲取伺服器的信息了.正確的做法是只為用戶顯示“Login: ”提示符.

  步驟1

  編輯“/etc/rc.d/rc.local” 文件,並將“#”標在下列行的前面:

  QUOTE:

  # 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

  步驟2

  然後在“/etc”目錄下刪除“issue.net”和“issue”文件:

  [root@kapil /]# rm -f /etc/issue

  [root@kapil /]# rm -f /etc/issue.net

  禁用通常不用的 SUID/SGID 程序

  如果設為 SUID 根用戶,普通用戶也可以作為根用戶運行程序.系統管理員應該減少 SUID/GUID 程序的使用,並禁用那些不需要的程序.

  步驟1

  要從根用戶的程序中搜索所有包含“s”字元的文件,使用命令:

  [root@kapil]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;

  要在搜索到的程序中禁用 suid 程序,鍵入如下命令:

  [root@kapil /]# chmod a-s [program]

  按照上述的一些安全指南,系統管理員就可以達到基本的系統安全要求.上述的一些操作是一個連續的過程.系統管理員必須保持它們的連續性,才能使系統真正安全.


[火星人 ] 讓你的Linux系統變成銅牆鐵壁已經有261次圍觀

http://coctec.com/docs/security/show-post-59084.html