首頁(yè) > 服務(wù)器 > Linux服務(wù)器 > 正文

linux安全設置手冊

2018-10-16 21:31:01
字體:
來(lái)源:轉載
供稿:網(wǎng)友
 

  本文講述了如何通過(guò)基本的安全措施,使你的linux系統變得可靠。

  1、Bios Security

  一定要給Bios設置密碼,以防通過(guò)在Bios中改變啟動(dòng)順序,而可以從軟盤(pán)啟動(dòng)。這樣 可以阻止別人試圖用特殊的啟動(dòng)盤(pán)啟動(dòng)你的系統,還可以阻止別人進(jìn)入Bios改動(dòng)其中的設置(比如允許通過(guò)軟盤(pán)啟動(dòng)等)。

  2、LILO Security

  在“/etc/lilo.conf”文件中加入下面三個(gè)參數:time-out,restricted,password。這三個(gè)參數可以使你的系統在啟動(dòng)lilo時(shí)就要求密碼驗證。
  第一步:編輯lilo.conf文件(vi /etc/lilo.comf),假如或改變這三個(gè)參數:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b

time-out=00 #把這行改為00
prompt
Default=linux
restricted #加入這行
password=<password> #加入這行并設置自己的密碼
image=/boot/vmlinuz-2.2.14-12
label=linux
initrd=/boot/initrd-2.2.14-12.img
root=/dev/hda6
read-only
  第二步:因為"/etc/lilo.conf"文件中包含明文密碼,所以要把它設置為root權限讀取。 [root@kapil /]# chmod 600 /etc/lilo.conf
  第三步:更新系統,以便對“/etc/lilo.conf”文件做的修改起作用。 [Root@kapil /]# /sbin/lilo -v
  第四步:使用“chattr”命令使"/etc/lilo.conf"文件變?yōu)椴豢筛淖儭?[root@kapil /]# chattr +i /etc/lilo.conf
這樣可以防止對“/etc/lilo.conf”任何改變(意外或其他原因)

  3、刪除所有的特殊賬戶(hù)

  你應該刪除所有不用的缺省用戶(hù)和組賬戶(hù)(比如lp, sync, shutdown, halt, news, uucp, operator, games, gopher等)。 刪除用戶(hù): [root@kapil /]# userdel LP 刪除組:[root@kapil /]# groupdel LP

  4、選擇正確的密碼 在選擇正確密碼之前還應作以下修改:

  修改密碼長(cháng)度:在你安裝linux時(shí)默認的密碼長(cháng)度是5個(gè)字節。但這并不夠,要把它設 為8。修改最短密碼長(cháng)度需要編輯login.defs文件(vi /etc/login.defs),把下面這行 PASS_MIN_LEN 5 改為PASS_MIN_LEN 8 login.defs文件是login程序的配置文件。

  5、打開(kāi)密碼的shadow支持功能: 你應該打開(kāi)密碼的shadow功能,來(lái)對password加密。使用“/usr/sbin/authconfig” 工具打開(kāi)shadow功能。如果你想把已有的密碼和組轉變?yōu)閟hadow格式,可以分別使用 “pwcov,grpconv”命令。

  6、root賬戶(hù)

  在unix系統中root賬戶(hù)是具有最高特權的。如果系統管理員在離開(kāi)系統之前忘記注銷(xiāo)root賬戶(hù),系統會(huì )自動(dòng)注銷(xiāo)。通過(guò)修改賬戶(hù)中“TMOUT”參數,可以實(shí)現此功能。TMOUT按秒計算。編輯你的profile文件(vi /etc/profile),在"HISTFILESIZE="后面加入下面這行: TMOUT=3600
3600,表示60*60=3600秒,也就是1小時(shí)。這樣,如果系統中登陸的用戶(hù)在一個(gè)小時(shí) 內都沒(méi)有動(dòng)作,那么系統會(huì )自動(dòng)注銷(xiāo)這個(gè)賬戶(hù)。你可以在個(gè)別用戶(hù)的“.bashrc”文件中添 加該值,以便系統對該用戶(hù)實(shí)行特殊的自動(dòng)注銷(xiāo)時(shí)間。 改變這項設置后,必須先注銷(xiāo)用戶(hù),再用該用戶(hù)登陸才能激活這個(gè)功能。

  7、取消普通用戶(hù)的控制臺訪(fǎng)問(wèn)權限 你應該取消普通用戶(hù)的控制臺訪(fǎng)問(wèn)權限,比如shutdown、reboot、halt等命令。 [root@kapil /]# rm -f /etc/security/console.apps/<servicename>
<servicename>是你要注銷(xiāo)的程序名。

  8、取消并反安裝所有不用的服務(wù)

  取消并反安裝所有不用的服務(wù),這樣你的擔心就會(huì )少很多。察看“/etc/inetd.conf” 文件,通過(guò)注釋取消所有你不需要的服務(wù)(在該服務(wù)項目之前加一個(gè)“#”)。然后用“sighup”命令升級“inetd.conf”文件。
  第一步:更改“/etc/inetd.conf”權限為600,只允許root來(lái)讀寫(xiě)該文件。 [Root@kapil /]# chmod 600 /etc/inetd.conf
  第二步:確定“/etc/inetd.conf”文件所有者為root。
  第三步:編輯 /etc/inetd.conf文件(vi /etc/inetd.conf),取消下列服務(wù)(你不需要的):ftp, telnet, shell, login, exec, talk, ntalk, imap, pop-2, pop-3, finger, auth等等。把不需要的服務(wù)關(guān)閉可以使系統的危險性降低很多。
  第四步:給inetd進(jìn)程發(fā)送一個(gè)HUP信號: [root@kapil /]# killall -HUP inetd
  第五步:用chattr命令把/ec/inetd.conf文件設為不可修改,這樣就沒(méi)人可以修改它:[root@kapil /]# chattr +i /etc/inetd.conf這樣可以防止對inetd.conf的任何修改(以外或其他原因)。唯一可以取消這個(gè)屬性 的人只有root。如果要修改inetd.conf文件,首先要是取消不可修改性質(zhì): [root@kapil /]# chattr -i /etc/inetd.conf別忘了該后再把它的性質(zhì)改為不可修改的。

  9、TCP_WRAPPERS

  使用TCP_WRAPPERS可以使你的系統安全面對外部入侵。最好的策略就是阻止所有的主 機(在"/etc/hosts.deny" 文件中加入"ALL: ALL@ALL, PARANOID" ),然后再在"/etc/hosts.allow" 文件中加入所有允許訪(fǎng)問(wèn)的主機列表。
  第一步:編輯hosts.deny文件(vi /etc/hosts.deny),加入下面這行
# Deny access to everyone.ALL: ALL@ALL, PARANOID這表明除非該地址包好在允許訪(fǎng)問(wèn)的主機列表中,否則阻塞所有的服務(wù)和地址。
  第二步:編輯hosts.allow文件(vi /etc/hosts.allow),加入允許訪(fǎng)問(wèn)的主機列表,比如: ftp: 202.54.15.99 foo.com 202.54.15.99和 foo.com是允許訪(fǎng)問(wèn)ftp服務(wù)的ip地址和主機名稱(chēng)。
  第三步:tcpdchk程序是tepd wrapper設置檢查程序。它用來(lái)檢查你的tcp wrapper設置,并報 告發(fā)現的潛在的和真實(shí)的問(wèn)題。設置完后,運行下面這個(gè)命令: [Root@kapil /]# tcpdchk

  10、禁止系統信息暴露 當有人遠程登陸時(shí),禁止顯示系統歡迎信息。你可以通過(guò)修改“/etc/inetd.conf” 文件來(lái)達到這個(gè)目的。 把/etc/inetd.conf文件下面這行: telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd
修改為:telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
在最后加“-h”可以使當有人登陸時(shí)只顯示一個(gè)login:提示,而不顯示系統歡迎信息。

  11、修改“/etc/host.conf”文件 “/etc/host.conf”說(shuō)明了如何解析地址。編輯“/etc/host.conf”文件 (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
  第一項設置首先通過(guò)DNS解析IP地址,然后通過(guò)hosts文件解析。
  第二項設置檢測是否 “/etc/hosts”文件中的主機是否擁有多個(gè)IP地址(比如有多個(gè)以太口網(wǎng)卡)。
  第三項設置說(shuō)明要注意對本機未經(jīng)許可的電子欺騙。 12、使“/etc/services”文件免疫 使“/etc/services”文件免疫,防止未經(jīng)許可的刪除或添加服務(wù): [root@kapil /]# chattr +i /etc/services

  13、不允許從不同的控制臺進(jìn)行root登陸

  "/etc/securetty"文件允許你定義root用戶(hù)可以從那個(gè)TTY設備登陸。你可以編輯
"/etc/securetty"文件,在不需要登陸的TTY設備前添加“#”標志,來(lái)禁止從該TTY設備進(jìn)行root登陸。

  14、禁止任何人通過(guò)su命令改變?yōu)閞oot用戶(hù)

  su(Substitute User替代用戶(hù))命令允許你成為系統中其他已存在的用戶(hù)。如果你
不希望任何人通過(guò)su命令改變?yōu)閞oot用戶(hù)或對某些用戶(hù)限制使用su命令,你可以在su
配置文件(在"/etc/pam.d/"目錄下)的開(kāi)頭添加下面兩行:
編輯su文件(vi /etc/pam.d/su),在開(kāi)頭添加下面兩行:
auth sufficient /lib/security/pam_rootok.so debug
auth required /lib/security/Pam_wheel.so group=wheel
這表明只有"wheel"組的成員可以使用su命令成為root用戶(hù)。你可以把用戶(hù)添加到
“wheel”組,以使它可以使用su命令成為root用戶(hù)。

  15、Shell logging

  Bash shell在“~/.bash_history”(“~/”表示用戶(hù)目錄)文件中保存了500條使用 過(guò)的命令,這樣可以使你輸入使用過(guò)的長(cháng)命令變得容易。每個(gè)在系統中擁有賬號的用 戶(hù)在他的目錄下都有一個(gè)“.bash_history”文件。bash shell應該保存少量的命令,并且在每次用戶(hù)注銷(xiāo)時(shí)都把這些歷史命令刪除。
  第一步:“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行確定所有用戶(hù)的“.bash_history”文件中可以保存的舊命令條數。強烈建議把“/etc/profile”文件 中的“HISTFILESIZE”和“HISTSIZE”行的值設為一個(gè)較小的數,比如30。編輯profile文件(vi /etc/profile),把下面這行改為:
HISTFILESIZE=30
HISTSIZE=30
這表示每個(gè)用戶(hù)的“.bash_history”文件只可以保存30條舊命令。
  第二步:網(wǎng)管還應該在"/etc/skel/.bash_logout" 文件中添加下面這行 "rm -f $HOME/.bash_history" 。這樣,當用戶(hù)每次注銷(xiāo)時(shí),“.bash_history”文件都
會(huì )被刪除。 編輯.bash_logout文件(vi /etc/skel/.bash_logout) ,添加下面這行:
rm -f $HOME/.bash_history

  16、禁止Control-Alt-Delete 鍵盤(pán)關(guān)閉命令

  在"/etc/inittab" 文件中注釋掉下面這行(使用#):
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
改為: #ca::ctrlaltdel:/sbin/shutdown -t3 -r now
為了使這項改動(dòng)起作用,輸入下面這個(gè)命令:
[root@kapil /]# /sbin/init q

  17、給"/etc/rc.d/init.d" 下script文件設置權限

  給執行或關(guān)閉啟動(dòng)時(shí)執行的程序的script文件設置權限。 [root@kapil/]# chmod -R 700 /etc/rc.d/init.d/*這表示只有root才允許讀、寫(xiě)、執行該目錄下的script文件。 18、隱藏系統信息 在缺省情況下,當你登陸到linux系統,它會(huì )告訴你該linux發(fā)行版的名稱(chēng)、版本、內核版本、服務(wù)器的名稱(chēng)。對于黑客來(lái)說(shuō)這些信息足夠它入侵你的系統了。你應該只給它顯示一個(gè)“login:”提示符。
  第一步:編輯"/etc/rc.d/rc.local" 文件,在下面顯示的這些行前加一個(gè)“#”,把輸出信息的命令注釋掉。 # 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
  第二步:刪除"/etc"目錄下的“isue.net”和"issue"文件: [root@kapil /]# rm -f /etc/issue
[root@kapil /]# rm -f /etc/issue.net

  19、禁止不使用的SUID/SGID程序

  如果一個(gè)程序被設置成了SUID root,那么普通用戶(hù)就可以以root身份來(lái)運行這個(gè)程序。網(wǎng)管應盡可能少使用SUID/SGID 程序,禁止所有不必要的SUID/SGID程序。 查找root-owned程序中使用's'位的程序: [root@kapil]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;
  用下面命令禁止選中的帶有's'位的程序:
  [root@kapil /]# chmod a-s [program]

  根據上面這些安全指導方針設置后,系統管理員就會(huì )擁有一個(gè)基本安全的系統。上面 這些工作有些是個(gè)持續的過(guò)程,網(wǎng)管要不斷進(jìn)行這些工作,以保持系統的安全性。
 

發(fā)表評論 共有條評論
用戶(hù)名: 密碼:
驗證碼: 匿名發(fā)表