無論你使用的哪種 Linux 發(fā)行版,你都需要使用基于 iptables 的防火墻來保護它。
啊哈!你已經設置好了你的第一臺 Linux 服務器并且已經準備發(fā)車了!是么?嗯,慢著。
默認情況下,你的 Linux 系統(tǒng)對攻擊者來說并非是足夠安全的。當然,它比 Windows XP 要安全多了,但這說明不了什么。
想要使你的 Linux 系統(tǒng)真正穩(wěn)固,你需要按照 Linode 的 服務器安全指南 來操作。
總的來說,首先你必須關閉那些你不需要的服務。當然要這樣做的話,你先要知道你正在使用哪些網(wǎng)絡服務。
你可以使用 shell 命令來找到是哪些服務:
netstat 將會告訴你正在運行哪些服務和這些服務正在使用的端口是什么。如果你不需要其中的某項服務或端口,你就應該關閉它。例如,除非你正在運行一個網(wǎng)站,否則你是不需要運行中的 Apache 或 Nginx 服務器,也不需要開啟 80 或 8080 端口。
總之一句話,不確定的話,就關了它先。
在一個最簡單的,沒有做過任何額外更改的 Linux 服務器上,你會看到 SSH、 RPC 和 NTPdate 運行在它們的公開端口上。不要添加像 telnet 這樣陳舊而不安全的 shell 程序,否則老司機就會在你不經意間將你的 Linux 小跑車開走了。也許,在上世紀 80 年代的時候你喜歡把 telnet 當作你 SunOS 機器上的備份登錄方式,但是那早已成為了過去。
就 SSH 來說,你應該使用 RSA 密鑰 和 Fail2Ban 來加固。除非你需要 RPC,否則就卸載它——如果你不知道需要不需要它的話,那就是不需要。
關于如何關門已經說的夠多了;讓我們來聊聊利用 iptables 來鎖定進來的流量吧。
當你啟動 Linux 服務器的時候它是沒有任何規(guī)則的。這就意味著所有的流量都是被允許的。這當然是不好的。因此,你需要及時的設置你的防火墻。
Iptables 是一種用來給 netfilter 設置網(wǎng)絡策略規(guī)則的 shell 工具,netfilter 是Linux 系統(tǒng)下的默認防火墻,它利用一組規(guī)則來允許或禁止流量。當有人嘗試連接上你的系統(tǒng)——有些人無時不刻地嘗試這么干,而且從不氣餒——iptables 就會檢查這些請求是否與規(guī)則列表相匹配。如果沒有匹配到任何的規(guī)則,它就會采取默認操作。
這個默認操作應該是將連接“Drop”掉,即禁掉這些意圖闖入者。而且這不會讓他們知道這些網(wǎng)絡探測行為發(fā)生了什么。(你也可以將鏈接“Reject”掉,但是這會同時讓他們知道你有一個正在運行的 Linux 防火墻。就目前而言,讓陌生人能獲取到我們系統(tǒng)的信息越少越好。至少,我是這么認為的。)
現(xiàn)在,你可以用 iptables 來設置你的防火墻了。我已經這么做了。就像以前,我騎著自行車去六英里外上班,并且兩邊都是上坡。而現(xiàn)在,我開車去。
這其實比喻的是我使用 Fedora 發(fā)行版的 FirewallD 和 Debian 系發(fā)行版的 UFW(Uncomplicated Firewall)。這些都是易用的 iptables 的 shell 前端。你可以在以下的 Linode 指南中找到適合的使用方式:FirewallD 和 UFW。
從本質上來說設置這些規(guī)則就是在你的服務器上放置“非請勿入”的告示牌。用起來吧。
但是也別太興奮地把所有的鏈接都關閉了。例如:
sudo ufw default deny incoming
看起來是個好主意哦。別忘了,它禁止了所有鏈接,包括你自己哦!
很好,它就是這么干的。這意味著它也同樣禁止了 SSH 的登錄。也就是說你再也不能登錄你那新服務器了。哇哦!
不過,如果你犯了錯,錯誤的將更多的鏈接都禁止了。你看,老司機也同樣被你擋在門外了。
或者,更準確得說,這不是你或你的服務器所遇到的個別現(xiàn)象。當然,你也不是每天受到 3 億多次攻擊嘗試的美國國家安全局(NSA)。但是攻擊腳本根本不在乎你是誰。它只是不斷的檢查尋找網(wǎng)絡中存在已知漏洞的服務器。在平常的一天中我自己的小服務器就會受到數(shù)以百計的攻擊。
都這樣了,你還在等什么呢?去吧,加固你的網(wǎng)絡服務吧。安裝 FirewallD 或者 UFW 來加固你的服務器吧。你會愿意去做的。
以上就是本文關于淺談為你的 Linux 服務器加把鎖的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!