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