讓你的linux操做系統更加安全

Red Hat更安全   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=<password> #add this line and put your password  p_w_picpath=/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其中<servicename>爲禁止訪問的程序名稱。 禁用 & 卸載全部不使用的服務 對全部不使用的服務,應該禁用並卸載,這樣能夠少些麻煩。查看「/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-二、pop-三、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:&nbspALL@ALL, PARANOID」,而後在「/etc/hosts.allow」列出容許訪問的主機。TCP_WRAPPERS 受控於兩個文件,搜索時停在第一個匹配的地方。 /etc/hosts.allow /etc/hosts.deny  步驟1 編輯 hosts.deny 文件(/etc/hosts.deny),加入以下行: # Deny access to everyone.  ALL:&nbspALL@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]  按照上述的一些安全指南,系統管理員就能夠達到基本的系統安全要求。上述的一些操做是一個連續的過程。系統管理員必須保持它們的連續性,才能使系統真正安全。       
相關文章
相關標籤/搜索