Linux網路安全經驗談
一個潛在的駭客如果要攻擊你的 Linux 伺服器,他首先就會嘗試緩衝區溢位。在過去的幾年中,以緩衝區溢位為型別的安全漏洞是最為常見的一種形式了。更為嚴重的是,緩衝區溢位漏洞佔了遠端網路攻擊的絕大多數,這種攻擊可以輕易使得一個匿名的 Internet 使用者有機會獲得一臺主機的部分或全部的控制權 !
為了防止此類攻擊,我們從安裝系統時就應該注意。如果用 root 分割槽紀錄資料,如 log 檔案和 email ,就可能因為拒絕服務產生大量日誌或垃圾郵件,從而導致系統崩潰。所以建議為 /var 開闢單獨的分割槽,用來存放日誌和郵件,以避免 root 分割槽被溢位。最好為特殊的應用程式單獨開一個分割槽,特別是可以產生大量日誌的程式,還有建議為 /home 單獨分一個區,這樣他們就不能填滿 / 分割槽了,從而就避免了部分針對 Linux 分割槽溢位的惡意攻擊。
關於 BIOS
記著要在 BIOS 設定中設定一個 BIOS 密碼,不接收軟盤啟動。這樣可以阻止不懷好意的人用專門的啟動盤啟動你的 Linux 系統,並避免別人更改 BIOS 設定,如更改軟盤啟動設定或不彈出密碼框直接啟動伺服器等等。
關於口令
口令是系統中認證使用者的主要手段,系統安裝時預設的口令最小長度通常為 5 ,但為保證口令不易被猜測攻擊,可增加口令的最小長度,至少等於 8 。為此,需修改檔案 /etc/login.defs 中引數 PASS _ MIN _LEN( 口令最小長度 ) 。同時應限制口令使用時間,保證定期更換口令,建議修改引數 PASS_MIN_DAYS( 口令使用時間 ) 。
關於 Ping
既然沒有人能 ping 通你的機器並收到響應,你可以大大增強你的站點的安全性。你可以加下面的一行命令到 /etc/rc.d/rc.local ,以使每次啟動後自動執行,這樣就可以阻止你的系統響應任何從外部 / 內部來的 ping 請求。
echo 1 > / proc /sys/net/ipv4/icmp_echo_ignore_all
關於 Telnet
如果你希望使用者用 Telnet 遠端登入到你的伺服器時不要顯示作業系統和版本資訊 ( 可以避免有針對性的漏洞攻擊 ) ,你應該改寫 /etc/inetd.conf 中的一行象下面這樣 :
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
加 -h 標誌在最後使得 telnet 後臺不要顯示系統資訊,而僅僅顯示 login 。
關於特權賬號
禁止所有預設的被作業系統本身啟動的且不需要的帳號,當你第一次裝上系統時就應該做此檢查, Linux 提供了各種帳號,你可能不需要,如果你不需要這個帳號,就移走它,你有的帳號越多,就越容易受到攻擊。
為刪除你係統上的使用者,用下面的命令 :userdel username
為刪除你係統上的組使用者帳號,用下面的命令 :groupdel username
在終端上打入下面的命令刪掉下面的特權用賬號 :
userdel adm
userdel lp
userdel sync
userdel shutdown
userdel halt
userdel mail
如果你不用 sendmail 伺服器,就刪除這幾個帳號 :
userdel news
userdel uucp
userdel operator
userdel games
如果你不用 X windows 伺服器,就刪掉這個帳號。
userdel gopher
如果你不允許匿名 FTP ,就刪掉這個使用者帳號 :
userdel ftp
關於 su 命令
如果你不想任何人能夠 su 為 root 的話 , 你應該編輯 /etc/pam.d/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
suid 程式也是非常危險的,這些程式被普通使用者以 euid=0( 即 root) 的身份執行,只能有少量程式被設定為 suid 。用這個命令列出系統的 suid 二進位制程式 :
suneagle# find / -perm -4000 -print
你可以用 chmod -s 去掉一些不需要程式的 suid 位。
關於賬戶登出
如果系統管理員在離開系統時忘了從 root 登出,系統應該能夠自動從 shell 中登出。那麼,你就需要設定一個特殊的 Linux 變數 “tmout” ,用以設定時間。同樣,如果使用者離開機器時忘記了登出賬戶,則可能給系統安全帶來隱患。你可以修改 /etc/profile 檔案,保證賬戶在一段時間沒有操作後,自動從系統登出。 編輯檔案 /etc/profile ,在 “histfilesize=” 行的下一行增加如下一行 :
tmout=600
則所有使用者將在 10 分鐘無操作後自動登出。注意 : 修改了該引數後,必須退出並重新登入 root ,更改才能生效。
關於系統檔案
對於系統中的某些關鍵性檔案如 passwd 、 passwd.old 、 passwd._ 、 shadow 、 shadown._ 、 inetd.conf 、 services 和 lilo.conf 等可修改其屬性,防止意外修改和被普通使用者檢視。如將 inetd 檔案屬性改為 600:
# chmod 600 /etc/inetd.conf
這樣就保證檔案的屬主為 root ,然後還可以將其設定為不能改變 :
# chattr +i /etc/inetd.conf
這樣,對該檔案的任何改變都將被禁止。 你可能要問 : 那我自己不是也不能修改了 ? 當然,我們可以設定成只有 root 重新設定復位標誌後才能進行修改 :
# chattr -i /etc/inetd.conf
關於使用者資源
對你的系統上所有的使用者設定資源限制可以防止 DoS 型別攻擊,如最大程式數,記憶體數量等。例如,對所有使用者的限制, 編輯 /etc/security/limits.con 加入以下幾行 :
* hard core 0
* hard rss 5000
* hard nproc 20
你也必須編輯 /etc/pam.d/login 檔案,檢查這一行的存在 :
session required /lib/security/pam_limits.so
上面的命令禁止 core files“core 0” ,限制程式數為 “nproc 50“ ,且限制記憶體使用為 5M“rss 5000” 。
關於 NFS 伺服器
由於 NFS 伺服器漏洞比較多,你一定要小心。如果要使用 NFS 網路檔案系統服務,那麼確保你的 /etc/exports 具有最嚴格的存取許可權設定,不意味著不要使用任何萬用字元,不允許 root 寫許可權, mount 成只讀檔案系統。你可以編輯檔案 /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
如果你不允許匿名 FTP ,就刪掉這個使用者帳號 :
userdel ftp
關於 su 命令
如果你不想任何人能夠 su 為 root 的話 , 你應該編輯 /etc/pam.d/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
suid 程式也是非常危險的,這些程式被普通使用者以 euid=0( 即 root) 的身份執行,只能有少量程式被設定為 suid 。用這個命令列出系統的 suid 二進位制程式 :
suneagle# find / -perm -4000 -print
你可以用 chmod -s 去掉一些不需要程式的 suid 位。
關於賬戶登出
如果系統管理員在離開系統時忘了從 root 登出,系統應該能夠自動從 shell 中登出。那麼,你就需要設定一個特殊的 Linux 變數 “tmout” ,用以設定時間。同樣,如果使用者離開機器時忘記了登出賬戶,則可能給系統安全帶來隱患。你可以修改 /etc/profile 檔案,保證賬戶在一段時間沒有操作後,自動從系統登出。 編輯檔案 /etc/profile ,在 “histfilesize=” 行的下一行增加如下一行 :
tmout=600
則所有使用者將在 10 分鐘無操作後自動登出。注意 : 修改了該引數後,必須退出並重新登入 root ,更改才能生效。
關於系統檔案
對於系統中的某些關鍵性檔案如 passwd 、 passwd.old 、 passwd._ 、 shadow 、 shadown._ 、 inetd.conf 、 services 和 lilo.conf 等可修改其屬性,防止意外修改和被普通使用者檢視。如將 inetd 檔案屬性改為 600:
# chmod 600 /etc/inetd.conf
這樣就保證檔案的屬主為 root ,然後還可以將其設定為不能改變 :
# chattr +i /etc/inetd.conf
這樣,對該檔案的任何改變都將被禁止。 你可能要問 : 那我自己不是也不能修改了 ? 當然,我們可以設定成只有 root 重新設定復位標誌後才能進行修改 :
# chattr -i /etc/inetd.conf
關於使用者資源
對你的系統上所有的使用者設定資源限制可以防止 DoS 型別攻擊,如最大程式數,記憶體數量等。例如,對所有使用者的限制, 編輯 /etc/security/limits.con 加入以下幾行 :
* hard core 0
* hard rss 5000
* hard nproc 20
你也必須編輯 /etc/pam.d/login 檔案,檢查這一行的存在 :
session required /lib/security/pam_limits.so
上面的命令禁止 core files“core 0” ,限制程式數為 “nproc 50“ ,且限制記憶體使用為 5M“rss 5000” 。
關於 NFS 伺服器
由於 NFS 伺服器漏洞比較多,你一定要小心。如果要使用 NFS 網路檔案系統服務,那麼確保你的 /etc/exports 具有最嚴格的存取許可權設定,不意味著不要使用任何萬用字元,不允許 root 寫許可權, mount 成只讀檔案系統。你可以編輯檔案 /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
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8570952/viewspace-982604/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 必看!網際網路開發模式的經驗之談模式
- 經驗分享 | 網路安全漏洞分析者之路
- 網際網路測試經驗和管理雜談 (如何培養人)
- 經驗談
- 淺談大型網際網路的安全
- 網際網路測試經驗和管理雜談 (如何解決問題)
- Java面經 面試經驗 網際網路公司面試經驗 後端面試經驗Java面試後端
- 【網路安全經驗分享】CC攻擊防禦方法有哪些?
- 【初學者必備】網路安全學習經驗彙總!
- Linux運維安全經驗-賬戶和登入安全Linux運維
- 經驗談集
- 淺談網際網路公司業務安全
- 面經-Java,Linux,Mysql,網路JavaLinuxMySql
- Linux網路流量安全審計Linux
- linux之我的網際網路面試經驗Linux面試
- 伺服器開發中網路資料分析與故障排查經驗漫談伺服器
- 【CentOS Linux 7】實驗4【Linux網路應用】CentOSLinux
- Hugo 建站經驗之談Go
- 安全雜談|《暗網》:網際網路領域的水下冰山
- Linux網路安全技術與實現第2章之原理及實驗Linux
- 網路安全政策法規月月談(第3期)
- 網路安全政策法規月月談(第4期)
- 網易資料基礎平臺建設經驗談
- puppeteer踩坑經驗之談
- linux面試經驗Linux面試
- 阿里P8談談淺層神經網路的學習方法阿里神經網路
- 縱觀愛爾蘭2020年新《國家網路安全戰略》,談全球網路安全時局
- 如何在網際網路創業、五年經驗、少走彎路創業
- 分享:一線網際網路公司的面試經驗面試
- 2020雲天大會|綠盟科技分享5G+工業網際網路安全建設經驗
- 想談談網際網路寫作
- SysML 2019提前看:神經網路安全性神經網路
- Android SDK 開發經驗淺談Android
- 網路安全政策法規月月談(第一期)
- Linux 中如何使用 Htop 監控工具?【網路安全】Linux
- 少走些彎路---學習Linux的竅門與經驗Linux
- 少走些彎路-學習Linux的竅門與經驗Linux
- Token的驗證原理是什麼?網路安全網路協議知識點協議
- 網路安全實驗室題目(選擇題篇)