歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 網絡安全linux

網絡安全linux

日期:2017/3/6 15:29:38   编辑:關於Unix
網絡 安全linux 轉貼希望大家能喜歡...... ??§關於分區: ?? ?? 一個潛在的黑客如果要攻擊你的Linux服務器,他首先就會嘗試緩沖區溢出。在過去的幾年中,以緩沖區溢出為類型的安全漏洞是最為 常見的一種形式了。更為嚴重的是,緩沖區溢出漏洞占了遠程 網絡

網絡安全linux

轉貼希望大家能喜歡......

??§關於分區:
??
??  一個潛在的黑客如果要攻擊你的Linux服務器,他首先就會嘗試緩沖區溢出。在過去的幾年中,以緩沖區溢出為類型的安全漏洞是最為

常見的一種形式了。更為嚴重的是,緩沖區溢出漏洞占了遠程網絡攻擊的絕大多數,這種攻擊可以輕易使得一個匿名的Inte.net用戶有機會獲

得一台主機的部分或全部的控制權!
??
??  為了防止此類攻擊,我們從安裝系統時就應該注意。如果用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

§關於開啟的服務:
??
??  默認的linux就是一個強大的系統,運行了很多的服務。但有許多服務是不需要的,很容易引起安全風險。這個文件就

是/etc/inetd.conf,它制定了/usr/sbin/inetd將要監聽的服務,你可能只需要其中的兩個:telnet和ftp,其它的類如shell, login, exec,

talk, ntalk, imap, pop-2, pop-3, finger, auth, etc. 除非你真的想用它。否則統統關閉之。
??
??  你先用下面的命令顯示沒有被注釋掉的服務:
??
??  grep -v "#" /etc/inetd.conf
??
??  這個命令統計面前服務的總數:
??
??  ps -eaf|wc -l
??
??  需要提醒你的是以下三個服務漏洞很多,強烈建議你關閉它們:S34yppasswdd(NIS服務器)、S35ypserv(NIS服務器)和S60nfs

(NFS服務器)。
??
??  我們可以運行#killall -HUP inetd來關閉不需要的服務。當然,你也可以運行
??
??  #chattr +i /etc/inetd.conf
??
??  如果你想使inetd.conf文件具有不可更改屬性,而只有root 才能解開,敲以下命令
??
??  #chattr -i /etc/inetd.conf
??
??  當你關閉一些服務以後,重新運行以上命令看看少了多少服務。運行的服務越少,系統自然越安全了。我們可以用下面命令察看哪些

服務在運行:
??
??  netstat -na --ip
??
??  如果你用的是Redhat那就方便多了。^_^ Redhat提供一個工具來幫助你關閉服務,輸入/usr/sbin/setup,然後選擇"system

services",就可以定制系統啟動時跑哪些服務。另外一個選擇是chkconfig命令,很多linux版本的系統都自帶這個工具。腳本名字中的數字是

啟動的順序,以大寫的K開頭的是殺死進程用的。
??
??§關於日志:
??
??
??  所有的日志都在/var/log下(僅對linux系統而言),默認情況下linux的日志就已經很強大了,但除ftp外。因此我們可以通過修

改/etc/ftpaclearcase/" target="_blank" >ccess 或者/etc/inetd.conf,來保證每一個ftp連接日志都能夠紀錄下來。下面是一個修改inetd.conf的例子,假如有下一行:
??
??
??  ftp  stream  tcp  nowait  root  /usr/sbin/tcpd  in.ftpd -l -L -i -o
??
??  注釋:
??  -l 每一個ftp連接都寫到syslog
??  -L 紀錄用戶的每一個命令
??  -i 文件received,紀錄到xferlog
??  -o 文件transmitted,記錄到xferlog
??
??  不過你也不要太相信日志,因為絕大部分黑客都有“擦腳印”的“好”習慣啰!如果你不放心,最好安裝一個Sniffer吧。
??
??  §關於TCP_WRAPPERS:
??
??  默認的,Redhat Linux允許所有的請求,這是很危險的。如果用TCP_WRAPPERS來增強我們站點的安全性簡直是舉手之勞,你可以將禁

止所有的請求放入“ALL: ALL”到/etc/hosts.deny中,然後放那些明確允許的請求到/etc/hosts.allow中,如:
??
??  sshd: 192.168.1.10/255.255.255.0 gate.openarch.com
??
??  對IP地址192.168.1.10和主機名gate.openarch.com,允許通過ssh連接。配置完了之後,用tcpdchk檢查,你可以直接執行:tcpdchk

。在這裡,tcpchk是TCP_Wrapper配置檢查工具,它檢查你的tcp wrapper配置並報告所有發現的潛在/存在的問題。
??
??  §關於補丁:
??
??  你應該經常到你所安裝的Linux系統發行商的主頁上去找最新的補丁。例如:對於Redhat系統而言可以在:

http://www.redhat.com/corp/support/errata/上找到補丁。 幸運的是,在Redhat6.1以後的版本帶有一個自動升級工具up2date,它能自動夠

測定哪些rpm包需要升級,然後自動從Redhat的站點下載並完成安裝。這對某些懶惰的管理員來說,可是個省精神的福音哦!^_^

Copyright © Linux教程網 All Rights Reserved