如何防止linux伺服器攻擊
A. linux下的Web伺服器。如何提高安全,防止為了保證安全性,受到攻擊
但由於該操作系統是一個多用戶操作系統,黑客們為了在攻擊中隱藏自己,往往會選擇 Linux作為首先攻擊的對象。那麼,作為一名Linux用戶,我們該如何通過合理的方法來防範Linux的安全呢?下面筆者搜集和整理了一些防範 Linux安全的幾則措施,現在把它們貢獻出來,懇請各位網友能不斷補充和完善。 1、禁止使用Ping命令Ping命令是計算機之間進行相互檢測線路完好的一個應用程序,計算機間交流數據的傳輸沒有 經過任何的加密處理,因此我們在用ping命令來檢測某一個伺服器時,可能在網際網路上存在某個非法分子,通過專門的黑客程序把在網路線路上傳輸的信息中途 竊取,並利用偷盜過來的信息對指定的伺服器或者系統進行攻擊,為此我們有必要在Linux系統中禁止使用Linux命令。在Linux里,如果要想使 ping沒反應也就是用來忽略icmp包,因此我們可以在Linux的命令行中輸入如下命令: echo 1 > /proc/sys/net/ipv4/icmp_echo_igore_all 如果想恢復使用ping命令,就可以輸入 echo 0 > /proc/sys/net/ipv4/icmp_echo_igore_all2、注意對系統及時備份為了防止系統在使用的過程中發生以外情況而難以正常運行,我們應該對Linux完好的系統進 行備份,最好是在一完成Linux系統的安裝任務後就對整個系統進行備份,以後可以根據這個備份來驗證系統的完整性,這樣就可以發現系統文件是否被非法修 改過。如果發生系統文件已經被破壞的情況,也可以使用系統備份來恢復到正常的狀態。備份信息時,我們可以把完好的系統信息備份在CD-ROM光碟上,以後 可以定期將系統與光碟內容進行比較以驗證系統的完整性是否遭到破壞。如果對安全級別的要求特別高,那麼可以將光碟設置為可啟動的並且將驗證工作作為系統啟 動過程的一部分。這樣只要可以通過光碟啟動,就說明系統尚未被破壞過。 3、改進登錄伺服器將系統的登錄伺服器移到一個單獨的機器中會增加系統的安全級別,使用一個更安全的登錄伺服器 來取代Linux自身的登錄工具也可以進一步提高安全。在大的Linux網路中,最好使用一個單獨的登錄伺服器用於syslog服務。它必須是一個能夠滿 足所有系統登錄需求並且擁有足夠的磁碟空間的伺服器系統,在這個系統上應該沒有其它的服務運行。更安全的登錄伺服器會大大削弱入侵者透過登錄系統竄改日誌 文件的能力。 4、取消Root命令歷史記錄在Linux下,系統會自動記錄用戶輸入過的命令,而root用戶發出的命令往往具有敏感的 信息,為了保證安全性,一般應該不記錄或者少記錄root的命令歷史記錄。為了設置系統不記錄每個人執行過的命令,我們可以在Linux的命令行下,首先 用cd命令進入到/etc命令,然後用編輯命令來打開該目錄下面的profile文件,並在其中輸入如下內容: HISTFILESIZE=0
B. 如何防禦針對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是否被修改過。
◆ 進行各種嘗試(使用網路的不同部分)以識別出攻擊源。
◆ 為了使用法律武器打擊犯罪行為,必須保留證據,而形成證據需要時間。為了做到這一點,必須忍受攻擊的沖擊(雖然可以制定一些安全措施來確保攻擊不損害網路)。對此情形,我們不但要採取一些法律手段,而且還要至少請一家有權威的安全公司協助阻止這種犯罪。這類操作的最重要特點就是取得犯罪的證據、並查找犯罪者的地址,提供所擁有的日誌。對於所搜集到的證據,應進行有效地保存。在開始時製作兩份,一個用於評估證據,另一個用於法律驗證。
◆ 找到系統漏洞後設法堵住漏洞,並進行自我攻擊測試。
網路安全已經不僅僅是技術問題,而是一個社會問題。企業應當提高對網路安全重視,如果一味地只依靠技術工具,那就會越來越被動;只有發揮社會和法律方面打擊網路犯罪,才能更加有效。我國對於打擊網路犯罪已經有了明確的司法解釋,遺憾的是大多數企業只重視技術環節的作用而忽略法律、社會因素,這也是本文的寫作目的。
C. 如何檢查Linux系統伺服器的安全性
但由於該操作系統是一個多用戶操作系統,黑客們為了在攻擊中隱藏自己,往往會選擇 Linux作為首先攻擊的對象。那麼,作為一名Linux用戶,我們該如何通過合理的方法來防範Linux的安全呢?下面筆者搜集和整理了一些防範 Linux安全的幾則措施,現在把它們貢獻出來,懇請各位網友能不斷補充和完善。 1、禁止使用Ping命令Ping命令是計算機之間進行相互檢測線路完好的一個應用程序,計算機間交流數據的傳輸沒有 經過任何的加密處理,因此我們在用ping命令來檢測某一個伺服器時,可能在網際網路上存在某個非法分子,通過專門的黑客程序把在網路線路上傳輸的信息中途 竊取,並利用偷盜過來的信息對指定的伺服器或者系統進行攻擊,為此我們有必要在Linux系統中禁止使用Linux命令。在Linux里,如果要想使 ping沒反應也就是用來忽略icmp包,因此我們可以在Linux的命令行中輸入如下命令: echo 1 > /proc/sys/net/ipv4/icmp_echo_igore_all 如果想恢復使用ping命令,就可以輸入 echo 0 > /proc/sys/net/ipv4/icmp_echo_igore_all2、注意對系統及時備份為了防止系統在使用的過程中發生以外情況而難以正常運行,我們應該對Linux完好的系統進 行備份,最好是在一完成Linux系統的安裝任務後就對整個系統進行備份,以後可以根據這個備份來驗證系統的完整性,這樣就可以發現系統文件是否被非法修 改過。如果發生系統文件已經被破壞的情況,也可以使用系統備份來恢復到正常的狀態。備份信息時,我們可以把完好的系統信息備份在CD-ROM光碟上,以後 可以定期將系統與光碟內容進行比較以驗證系統的完整性是否遭到破壞。如果對安全級別的要求特別高,那麼可以將光碟設置為可啟動的並且將驗證工作作為系統啟 動過程的一部分。這樣只要可以通過光碟啟動,就說明系統尚未被破壞過。 3、改進登錄伺服器將系統的登錄伺服器移到一個單獨的機器中會增加系統的安全級別,使用一個更安全的登錄伺服器 來取代Linux自身的登錄工具也可以進一步提高安全。在大的Linux網路中,最好使用一個單獨的登錄伺服器用於syslog服務。它必須是一個能夠滿 足所有系統登錄需求並且擁有足夠的磁碟空間的伺服器系統,在這個系統上應該沒有其它的服務運行。更安全的登錄伺服器會大大削弱入侵者透過登錄系統竄改日誌 文件的能力。 4、取消Root命令歷史記錄在Linux下,系統會自動記錄用戶輸入過的命令,而root用戶發出的命令往往具有敏感的 信息,為了保證安全性,一般應該不記錄或者少記錄root的命令歷史記錄。為了設置系統不記錄每個人執行過的命令,我們可以在Linux的命令行下,首先 用cd命令進入到/etc命令,然後用編輯命令來打開該目錄下面的profile文件,並在其中輸入如下內容: HISTFILESIZE=0
HISTSIZE=0當然,我們也可以直接在命令行中輸入如下命令: ln -s /dev/null ~/.bash_history5、為關鍵分區建立只讀屬性Linux的文件系統可以分成幾個主要的分區,每個分區分別進行不同的配置和安裝,一般情況 下至少要建立/、/usr/local、/var和/home等分區。/usr可以安裝成只讀並且可以被認為是不可修改的。如果/usr中有任何文件發生 了改變,那麼系統將立即發出安全報警。當然這不包括用戶自己改變/usr中的內容。/lib、/boot和/sbin的安裝和設置也一樣。在安裝時應該盡 量將它們設置為只讀,並且對它們的文件、目錄和屬性進行的任何修改都會導致系統報警。 當然將所有主要的分區都設置為只讀是不可能的,有的分區如/var等,其自身的性質就決定了不能將它們設置為只讀,但應該不允許它具有執行許可權。 6、殺掉攻擊者的所有進程假設我們從系統的日誌文件中發現了一個用戶從我們未知的主機登錄,而且我們確定該用戶在這台 主機上沒有相應的帳號,這表明此時我們正在受到攻擊。為了保證系統的安全被進一步破壞,我們應該馬上鎖住指定的帳號,如果攻擊者已經登錄到指定的系統,我 們應該馬上斷開主機與網路的物理連接。如有可能,我們還要進一步查看此用戶的歷史記錄,再仔細查看一下其他用戶是否也已經被假冒,攻擊者是否擁有有限權 限;最後應該殺掉此用戶的所有進程,並把此主機的IP地址掩碼加入到文件hosts.deny中。 7、改進系統內部安全機制我們可以通過改進Linux操作系統的內部功能來防止緩沖區溢出,從而達到增強Linux系 統內部安全機制的目的,大大提高了整個系統的安全性。但緩沖區溢出實施起來是相當困難的,因為入侵者必須能夠判斷潛在的緩沖區溢出何時會出現以及它在內存 中的什麼位置出現。緩沖區溢出預防起來也十分困難,系統管理員必須完全去掉緩沖區溢出存在的條件才能防止這種方式的攻擊。正因為如此,許多人甚至包括 Linux Torvalds本人也認為這個安全Linux補丁十分重要,因為它防止了所有使用緩沖區溢出的攻擊。但是需要引起注意的是,這些補丁也會導致對執行棧的 某些程序和庫的依賴問題,這些問題也給系統管理員帶來的新的挑戰。 8、對系統進行跟蹤記錄為了能密切地監視黑客的攻擊活動,我們應該啟動日誌文件,來記錄系統的運行情況,當黑客在攻 擊系統時,它的蛛絲馬跡都會被記錄在日誌文件中的,因此有許多黑客在開始攻擊系統時,往往首先通過修改系統的日誌文件,來隱藏自己的行蹤,為此我們必須限 制對/var/log文件的訪問,禁止一般許可權的用戶去查看日誌文件。當然,系統中內置的日誌管理程序功能可能不是太強,我們應該採用專門的日誌程序,來 觀察那些可疑的多次連接嘗試。另外,我們還要小心保護好具有根許可權的密碼和用戶,因為黑客一旦知道了這些具有根許可權的帳號後,他們就可以修改日誌文件來隱 藏其蹤跡了。 9、使用專用程序來防範安全有時,我們通過人工的方法來監視系統的安全比較麻煩,或者是不周密,因此我們還可以通過專業 程序來防範系統的安全,目前最典型的方法為設置陷井和設置蜜罐兩種方法。所謂陷井就是激活時能夠觸發報警事件的軟體,而蜜罐(honey pot)程序是指設計來引誘有入侵企圖者觸發專門的報警的陷井程序。通過設置陷井和蜜罐程序,一旦出現入侵事件系統可以很快發出報警。在許多大的網路中, 一般都設計有專門的陷井程序。陷井程序一般分為兩種:一種是只發現入侵者而不對其採取報復行動,另一種是同時採取報復行動。 10、將入侵消滅在萌芽狀態入侵者進行攻擊之前最常做的一件事情就是端號掃瞄,如果能夠及時發現和阻止入侵者的端號掃瞄 行為,那麼可以大大減少入侵事件的發生率。反應系統可以是一個簡單的狀態檢查包過濾器,也可以是一個復雜的入侵檢測系統或可配置的防火牆。我們可以採用諸 如Abacus Port Sentry這樣專業的工具,來監視網路介面並且與防火牆交互操作,最終達到關閉埠掃瞄攻擊的目的。當發生正在進行的埠掃瞄時,Abacus Sentry可以迅速阻止它繼續執行。但是如果配置不當,它也可能允許敵意的外部者在你的系統中安裝拒絕服務攻擊。正確地使用這個軟體將能夠有效地防止對 端號大量的並行掃瞄並且阻止所有這樣的入侵者。 11、嚴格管理好口令前面我們也曾經說到過,黑客一旦獲取具有根許可權的帳號時,就可以對系統進行任意的破壞和攻 擊,因此我們必須保護好系統的操作口令。通常用戶的口令是保存在文件/etc/passwd文件中的,盡管/etc/passwd是一個經過加密的文件, 但黑客們可以通過許多專用的搜索方法來查找口令,如果我們的口令選擇不當,就很容易被黑客搜索到。因此,我們一定要選擇一個確保不容易被搜索的口令。另外,我們最好能安裝一個口令過濾工具,並借用該工具來幫助自己檢查設置的口令是否耐得住攻擊。
D. 關閉Linux防火牆快速安全的方式關閉linux的防火牆
隨著互聯網的普及,安全技術的重要性也在不斷提高。Linux防火牆是Linux伺服器安全解決方案的重要組成部分。它能夠保護Linux伺服器免受惡意軟體、惡意攻擊和其他威脅。但是,有時我們需要禁用Linux防火牆以便受保護的系統可以正常訪問網路資源,此時,就需要快速、安全地關閉Linux防火牆了。
在Linux系統中,我們可以使用iptables、firewalld或者ufw三種方式來管理防火牆。下面,我們以Ubuntu系統為例,分別介紹如何使用這三種方式快速、安全地關閉Linux防火牆。
1.關閉iptables:
iptables是Linux中的防火牆,在Ubuntu中默認是開啟狀態。
要快速關閉Ubuntu系統中的iptables,我們可以使用下面的命令:
sudo iptables -F
該命令會將iptables中所有規則清空,無需重啟服務也可以立即生效。
2.關閉firewalld:
firewalld是一款基於網路安全的防火牆,可以用於阻止外部伺服器訪問內部系統的潛在攻擊。
要關閉firewalld,可以使用以下命令:
sudo systemctl stop firewalld
然後使用以下命令關閉防火牆:
sudo systemctl disable firewalld
此外,要重啟firewalld,我們可以使用以下命令:
sudo systemctl start firewalld
3.關閉ufw:
ufw是Ubuntu系統中安裝的默認防火牆,能夠對所有接入系統的外部通信進行安全控制。
要快速關閉ufw,可以使用以下命令:
sudo ufw disable
此外,我們也可以使用以下命令關閉ufw:
sudo ufw reset
以上是快速、安全關閉Linux防火牆的三種方式。當伺服器需要訪問外部網路資源時,可以使用上述命令快速、安全地關閉Linux防火牆,以獲得最佳的安全保護效果。