讓你的linux作業系統更加安全
記著要在BIOS設定中設定一個BIOS密碼,不接收軟盤啟動。這樣可以阻止不懷好意的人用專門的啟動盤啟動你的Linux系統,並避免別人更改BIOS設定,如更改軟盤啟動設定或不彈出密碼框直接啟動等。
LILO安全
在“/etc/lilo.conf”檔案中新增3個引數:time-out、restricted 和 password。這些選項會在啟動時間(如“ single”)轉到啟動轉載程式過程中,要求提供密碼。
[@more@]步驟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=
restricted #add this line
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.confTCP_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]
按照上述的一些安全指南,系統管理員就可以達到基本的系統安全要求。上述的一些操作是一個連續的過程。系統管理員必須保持它們的連續性,才能使系統真正安全。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/262387/viewspace-1029539/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何讓你的作業系統更安全二作業系統
- 讓Windows7更加安全的系統安全設定Windows
- 配置安全的Linux作業系統(轉)Linux作業系統
- 讓Linux懂得為你開門—LINUX系統的自動作業控制(轉)Linux
- 那 6 款讓你痛不欲生的作業系統作業系統
- 作業系統的安全配置作業系統
- Linux 淺談Linux 作業系統的安全設定Linux作業系統
- 使用防火牆讓你的 Linux 更加強大防火牆Linux
- 雲端計算如何讓您的企業更加安全?
- Linux作業系統的安全性怎麼樣?Linux作業系統
- 僅需五步,讓你的個人資料更加安全!
- 深入分析Linux作業系統深度安全加固Linux作業系統
- Linux 作業系統Linux作業系統
- Linux作業系統Linux作業系統
- AIX作業系統安全加固AI作業系統
- 淺談linux作業系統的最佳化及安全Linux作業系統
- 職場真言——讓你變得更加“專業”薦
- 移動OA系統,讓企業管理更加科學高效
- 【linux】Linux作業系統Linux作業系統
- 如何讓自己的程式碼更加安全?
- Linux作業系統概述Linux作業系統
- 作業系統與Linux作業系統Linux
- Linux是什麼作業系統?你瞭解多少?Linux作業系統
- 什麼是Linux?作為熱門的作業系統你瞭解嗎?Linux作業系統
- 作業系統 Linux下的程式作業系統Linux
- 作業系統是什麼?Linux是什麼作業系統?作業系統Linux
- Linux作業系統安全必要保護措施例項(轉)Linux作業系統
- Ftrans檔案擺渡系統:讓資料流動更加自由和安全!
- 淺談linux作業系統的最佳化及安全配置(轉)Linux作業系統
- iOS12系統4個值得關注的新功能 讓裝置更加安全iOS
- 初級安全入門——Windows作業系統的安全加固Windows作業系統
- 關於Linux作業系統,這些你必須知道!Linux作業系統
- “Linux”VS“Windows”作業系統你更青睞誰(轉)LinuxWindows作業系統
- 常見的Linux作業系統有哪些?你都瞭解嗎?Linux作業系統
- 19-作業系統安全保護作業系統
- Linux 作業系統!開篇!!!Linux作業系統
- 科普帖:Linux作業系統Linux作業系統
- Linux作業系統基礎Linux作業系統