如何增強Linux和Unix伺服器系統安全性

2021-09-20 20:25:16 字數 3429 閱讀 8873

一、系統安全記錄檔案

作業系統內部的記錄檔案是檢測是否有網路入侵的重要線索。如果您的系統是直接連到internet,您發現有很多人對您的系統做 telnet/ftp登入嘗試,可以執行"#more /var/log/secure   grep refused"來檢查系統所受到的攻擊,以便採取相應的對策,如使用ssh來替換telnet/rlogin等。

二、啟動和登入安全性

1.bios安全

設定bios密碼且修改引導次序禁止從軟盤啟動系統。

2.使用者口令

使用者口令是linux安全的乙個基本起點,很多人使用的使用者口令過於簡單,這等於給侵入者敞開了大門,雖然從理論上說,只要有足夠的時間和資源可以利用,就沒有不能破解的使用者口令,但選取得當的口令是難於破解的。較好的使用者口令是那些只有他自己容易記得並理解的一串字元,並且絕對不要在任何地方寫出來。

3.預設賬號

應該禁止所有預設的被作業系統本身啟動的並且不必要的賬號,當您第一次安裝系統時就應該這麼做,linux提供了很多預設賬號,而賬號越多,系統就越容易受到攻擊。

可以用下面的命令刪除賬號。

# userdel使用者名稱

或者用以下的命令刪除組使用者賬號。

# groupdel username

4.口令檔案

chattr命令給下面的檔案加上不可更改屬性,從而防止非授權使用者獲得許可權。

# chattr +i /etc/passwd

# chattr +i /etc/shadow

# chattr +i /etc/group

# chattr +i /etc/gshadow

5.禁止ctrl+alt+delete重新啟動機器命令

修改/etc/inittab檔案,將"ca::ctrlaltdel:/sbin/shutdown -t3 -r now"一行注釋掉。然後重新設定/etc/rc.d/init.d/目錄下所有檔案的許可許可權,執行如下命令:

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

這樣便僅有root可以讀、寫或執行上述所有指令碼檔案。

6.限制su命令

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=isd

這時,僅isd組的使用者可以su作為root。此後,如果您希望使用者admin能夠su作為root,可以執行如下命令:

# usermod -g10 admin

7.刪減登入資訊

# 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

然後,進行如下操作:

# rm -f /etc/issue

# rm -f /etc/issue.net

# touch /etc/issue

# touch /etc/issue.net

三、限制網路訪問

1.nfs訪問

如果您使用nfs網路檔案系統服務,應該確保您的/etc/exports具有最嚴格的訪問許可權設定,也就是意味著不要使用任何萬用字元、不允許root寫許可權並且只能安裝為唯讀檔案系統。編輯檔案/etc/exports並加入如下兩行。

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)

/dir/to/export 是您想輸出的目錄,host.mydomain.com是登入這個目錄的機器名,ro意味著mount成唯讀系統,root_squash禁止root寫入該目錄。為了使改動生效,執行如下命令。

# /usr/sbin/exportfs -a 

2.inetd設定

首先要確認/etc/inetd.conf的所有者是root,且檔案許可權設定為600。設定完成後,可以使用"stat"命令進行檢查。

# chmod 600 /etc/inetd.conf

ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth

如果您安裝了ssh/scp,也可以禁止掉telnet/ftp。為了使改變生效,執行如下命令:

#killall -hup inetd

配置完成後,可以用tcpdchk檢查:

# tcpdchk  

3.登入終端設定

# tty1

# tty2

# tty3

# tty4

# tty5

# tty6

這時,root僅可在tty1終端登入。

4.避免顯示系統和版本資訊。

如果您希望遠端登入使用者看不到系統和版本資訊,可以通過一下操作改變/etc/inetd.conf檔案:

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

加-h表示telnet不顯示系統資訊,而僅僅顯示"login:"。

四、防止攻擊

1.阻止ping 如果沒人能ping通您的系統,安全性自然增加了。為此,可以在/etc/rc.d/rc.local檔案中增加如下一行:

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

2.防止ip欺騙

編輯host.conf檔案並增加如下幾行來防止ip欺騙攻擊。

order bind,hosts

multi off

nospoof on 

3.防止dos攻擊

對系統所有的使用者設定資源限制可以防止dos型別攻擊。如最大程序數和記憶體使用數量等。例如,可以在/etc/security/limits.conf中新增如下幾行:

* hard core 0

* hard rss 5000

* hard nproc 20

session required /lib/security/pam_limits.so

上面的命令禁止除錯檔案,限制程序數為50並且限制記憶體使用為5mb。

經過以上的設定,您的linux伺服器已經可以對絕大多數已知的安全問題和網路攻擊具有免疫能力,但一名優秀的系統管理員仍然要時刻注意網路安全動態,隨時對已經暴露出的和潛在安全漏洞進行修補。

Linux和Unix的關係

最開始出現unix作業系統,比較好用,使用者也用慣了,但是後來轉商用和閉源了,導致很多人不能再用。這種情況下,有人提出gnu計畫,目的是 打造和unix一樣的系統,但是開源。很多人為此貢獻 其功能都是模仿unix系統,這個計畫實施到最後,大部分都完成了,但是還缺乏作業系統。linus這個人剛好開發了...

linux和unix修改系統時間

linux和unix修改系統時間 方法一 修改系統日期 optional 將當前日期改為2007 7 13 code date s 07 13 2007 修改系統時間,將當前系統時間改為11 55 00 code date s 11 55 00 將當前系統時間儲存到硬體時間 code hwclock...

Linux和unix之間的關係

unix是乙個功能強大 效能全面的多使用者 多工作業系統,可以應用從巨型計算機到普通pc機等多種不同的平台上,是應用面最廣 影響力最大的作業系統。linux是一種外觀和效能與unix相同或更好的作業系統,但linux不源於任何版本的unix的源 並不是unix,而是乙個類似於unix的產品。區別 l...