主頁 > 知識庫 > linux設(shè)置iptables防火墻的詳細(xì)步驟(centos防火墻設(shè)置方法)

linux設(shè)置iptables防火墻的詳細(xì)步驟(centos防火墻設(shè)置方法)

熱門標(biāo)簽:昆明crm外呼系統(tǒng)價格 400電話申請安裝 臨沂語音電話機(jī)器人公司 北京地圖標(biāo)注平臺注冊入駐 洛陽外呼增值業(yè)務(wù)線路解決方案 騰沖銷售外呼管理系統(tǒng)服務(wù) 電銷機(jī)器人自動撥號信息 用什么軟件做地圖標(biāo)注 長沙呼叫中心外呼系統(tǒng)穩(wěn)定嗎

我們 來討論一下如何為你的CentOS 服務(wù)器來設(shè)置簡單的防火墻。 這里我們以DigitalOcean的CentOS 6 VPS為基礎(chǔ)來討論的,同樣也適用于 阿里云上其他類型的LINUX系統(tǒng)。 (阿里云有個云盾系統(tǒng),因此在你自己的VPS上不設(shè)置防火墻也是可以的)

需要說明的是: 本文只涉及最基礎(chǔ)最常用的防火墻設(shè)置,能屏蔽一些常用的攻擊,但并不能徹底保證你的服務(wù)器的安全。

系統(tǒng)的隨時更新 以及 關(guān)閉不必要的服務(wù) 仍然是保證系統(tǒng)安全非常重要的步驟。

如果你需要更全面的了解iptables,閱讀本文后,請google或是閱讀更加深入的資料!

首先簡單介紹一下什么是IPTables:

iptables是Linux內(nèi)核中內(nèi)置的防火墻,可以允許管理員通過設(shè)置table, chain以及相關(guān)的規(guī)則來進(jìn)行數(shù)據(jù)包過濾和NAT。 一般來講,iptables防火墻已經(jīng)內(nèi)置于CentOS 6及其他Linux版本中,而且iptables服務(wù)默認(rèn)都是啟動的。  iptables應(yīng)用于IPv4, 如果要用IPv6,需要使用ip6tables.

iptables的命令格式:


復(fù)制代碼
代碼如下:

iptables[-ttable]command[chain][rules][-jtarget]

[-ttable]:用來指明使用的表,有三種選項:filter,nat和mangle,如果未指定,則使用filter作為缺省表。事實上,對于單個服務(wù)器的防火墻配置,一般來講,我們只需要對filter表進(jìn)行配件就OK了。filter表包括INPUT,OUTPUT,和FORWARD三個chain.

command表明iptables命名要做什么,比如

-A(–append):該命令會把一條規(guī)則附件到chain的末尾。

-D(–delete)用來刪除某個規(guī)則。

-F(–flush)如果指定了chain,刪除該chain中的所有規(guī)則,如果未指定chain,則刪除所有chain中的所有規(guī)則。

target:是由規(guī)則指定的操作。包括下面幾種:

ACCEPT:接收信息包(允許它前往目的地),并且將停止遍歷chain.

DROP:拒絕,

此外還有REJECT,RETURN,LOG,REDIRECT,MARK,MIRROR,MAQUERADE等。

具體的iptables的語法和概念就不再多說了,請參照iptablesmanpage官方文檔.

簡單來說,iptables防火墻是由一系列的規(guī)則(rule)組成,一個數(shù)據(jù)請求進(jìn)來,會依次和這些規(guī)則進(jìn)行比較,如果正好符合規(guī)則的定義,那這個數(shù)據(jù)請求要么會被接收ACCEPT,要么被拒絕DRIP。如果不符合任何規(guī)則的定義,最后缺省的規(guī)則會被應(yīng)用。

開始操作之前:

注意:一定要把你在DigitalOcean/Linode/阿里云上的服務(wù)器做一下快照備份,否則一旦你iptables的配置出了問題,極有可能把你自己擋在門外,你自己都無法連接到服務(wù)器了??!出現(xiàn)這種情況可是會欲哭無淚呀,除了重新做系統(tǒng)好像沒有更好的辦法了。(DigitalOcean提供了一個webconsole的界面,有時候會給你反悔和擦除iptables設(shè)置的機(jī)會,但阿里云沒有)

決定哪些端口需要開放

首先,SSH的端口22自然是需要開放的,否則我們就無法登錄服務(wù)器了。

一般來講,CentOS的VPS經(jīng)常作為用LAMP搭建的Web服務(wù)器,F(xiàn)TP服務(wù)器,Mail服務(wù)器等。

對于Web服務(wù)來說,需要開放80端口,如果是HTTPS/SSL協(xié)議的話,還需用開放443端口

對于Mail服務(wù)來說,由于涉及SMTP,POP3,IMAP協(xié)議,需要開放的端口如下:

SMTP:25SecureSMTP:465POP3:110SecurePOP3:995IMAP:143IMAPoverSSL:993

對于FTP服務(wù)來說,需要開放20,21兩個端口

第一步:屏蔽最常見的攻擊

缺省情況下,CentOS的iptables的設(shè)置是允許任何數(shù)據(jù)通過的。

我們首先要清空iptables中的所有的規(guī)則:


復(fù)制代碼
代碼如下:

iptables-F

然后我們加上阻止簡單掃描和攻擊的規(guī)則


復(fù)制代碼
代碼如下:

iptables-AINPUT-ptcp--tcp-flagsALLNONE-jDROP#NONE包(所有標(biāo)識bit都沒有設(shè)置)主要是掃描類的數(shù)據(jù)包
iptables-AINPUT-ptcp!--syn-mstate--stateNEW-jDROP#防止sync-flood攻擊
iptables-AINPUT-ptcp--tcp-flagsALLALL-jDROP#ALL包(所有的標(biāo)注bit都被設(shè)置了)也是網(wǎng)絡(luò)掃描的數(shù)據(jù)包

關(guān)于sync-flood,請參照wikipedia的解釋。

第二步:為相應(yīng)的服務(wù)開放對應(yīng)的端口

首先我們應(yīng)該接受本機(jī)localhost的任何請求,否則,數(shù)據(jù)庫連接等將無法工作

1
iptables-AINPUT-ilo-jACCEPT
對于不同的服務(wù)需要開放不同的端口


復(fù)制代碼
代碼如下:

iptables-AINPUT-ptcp--dport22-jACCEPT#SSH
iptables-AINPUT-ptcp--dport80-jACCEPT#HTTP
iptables-AINPUT-ptcp--dport443-jACCEPT#HTTPS
iptables-AINPUT-ptcp--dport25-jACCEPT#SMTP
iptables-AINPUT-ptcp--dport465-jACCEPT#SecureSMTP
iptables-AINPUT-ptcp--dport110-jACCEPT#POP3
iptables-AINPUT-ptcp--dport995-jACCEPT#SecurePOP3
iptables-AINPUT-ptcp--dport143-jACCEPT#IMAP
iptables-AINPUT-ptcp--dport993-jACCEPT#SecureIMAP

第三步:加上通用的規(guī)則

首先要允許所有從服務(wù)器端發(fā)起的連接,由此返回的響應(yīng)數(shù)據(jù)應(yīng)該是允許的!比如VPS發(fā)起的yumupdate,必須要允許外部的update數(shù)據(jù)進(jìn)來


復(fù)制代碼
代碼如下:

iptables-IINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT

最后,設(shè)置缺省的策略:屏蔽任何進(jìn)入的數(shù)據(jù)請求,允許所有從Server發(fā)出的請求


復(fù)制代碼
代碼如下:

iptables-POUTPUTACCEPT/p> p>iptables-PINPUTDROP

至此,規(guī)則設(shè)置完畢

第四步:保存設(shè)置

首先通過下面的命令查看一下我們的設(shè)置是否正確!


復(fù)制代碼
代碼如下:

iptable-L-n

確認(rèn)沒有問題后,執(zhí)行下面的命令


復(fù)制代碼
代碼如下:

serviceiptablessave

執(zhí)行上述命令后,相應(yīng)的規(guī)則會寫入/etc/sysconfig/iptables這個文件,你可以檢查一下看看。

最后執(zhí)行


復(fù)制代碼
代碼如下:

serviceiptablesrestart.

重新啟動iptables防火墻,以使上述設(shè)置生效。

最佳的方法:

為了更方便的修改和維護(hù)自己的iptables的設(shè)置,我一般是把所有的iptables的設(shè)置先寫到一個單獨(dú)文件中,測試沒有問題后。然后再保存到iptable的配置文件中。

下面是我自己的iptables文件~/script/firewall.sh


復(fù)制代碼
代碼如下:

#!/bin/bash
#Asimpleiptablesfirewallconfiguration/p> p>PATH=/sbin:/bin:/usr/sbin:/usr/bin;exportPATH/p> p>#flush/eraseoriginalrules
iptables-F#清除所有已制定的rule
iptables-X#清除用戶自定義的chain/table
iptables-Z#將所有的chain的計數(shù)和流量統(tǒng)計歸零/p> p>#Acceptlocalhostconnetting,nomatterwhatitis
iptables-AINPUT-ilo-jACCEPT/p> p>#Acceptanyresponsepackagewhichisinitiatedfrominside
iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT/p> p>#blockmostcommonnetworkattacks(reconpacketsandsyn-floodattack)
iptables-AINPUT-ptcp--tcp-flagsALLNONE-jDROP
iptables-AINPUT-ptcp!--syn-mstate--stateNEW-jDROP
iptables-AINPUT-ptcp--tcp-flagsALLALL-jDROP/p> p>#openportsfordifferentservices
iptables-AINPUT-ptcp--dport22-jACCEPT#SSH
iptables-AINPUT-ptcp--dport80-jACCEPT#HTTP
#iptables-AINPUT-ptcp--dport443-jACCEPT#HTTPS
#iptables-AINPUT-ptcp--dport25-jACCEPT#SMTP
#iptables-AINPUT-ptcp--dport465-jACCEPT#SecureSMTP
#iptables-AINPUT-ptcp--dport110-jACCEPT#POP3
#iptables-AINPUT-ptcp--dport995-jACCEPT#SecurePOP/p> p>#ICMPconfiguration
#TopreventICMPDDOS,wedonotallowICMPtype8(echo-request)orlimitthisrequestwith1/second
#someICMPrequestsareallowed.
icmp_type="0341112141618"
forticmpin$icmp_type
do
iptables-AINPUT-picmp--icmp-type$ticmp-jACCEPT
done
#iptables-AINPUT-picmp--icmp-type8-mlimit--limit1/second-jACCEPT/p> p>#defaultpolicies
iptables-POUTPUTACCEPT
iptables-PINPUTDROP/p> p>#saveto/etc/sysconfig/iptables
/etc/init.d/iptablessave

你可以根據(jù)你的需要進(jìn)行相應(yīng)的修改。

標(biāo)簽:汕頭 濰坊 南充 遼寧 涼山 昌都 三亞 通化

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux設(shè)置iptables防火墻的詳細(xì)步驟(centos防火墻設(shè)置方法)》,本文關(guān)鍵詞  linux,設(shè)置,iptables,防火墻,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《linux設(shè)置iptables防火墻的詳細(xì)步驟(centos防火墻設(shè)置方法)》相關(guān)的同類信息!
  • 本頁收集關(guān)于linux設(shè)置iptables防火墻的詳細(xì)步驟(centos防火墻設(shè)置方法)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章