海立方娱乐城|济州岛娱乐城
您好,歡迎來到思海網絡,我們將竭誠為您提供優質的服務! 誠征網絡推廣 | 網站備案 | 幫助中心 | 軟件下載 | 購買流程 | 付款方式 | 聯系我們 [ 會員登錄/注冊 ]
促銷推廣
客服中心
業務咨詢
有事點擊這里…  531199185
有事點擊這里…  61352289
點擊這里給我發消息  81721488
有事點擊這里…  376585780
有事點擊這里…  872642803
有事點擊這里…  459248018
有事點擊這里…  61352288
有事點擊這里…  380791050
技術支持
有事點擊這里…  714236853
有事點擊這里…  719304487
有事點擊這里…  1208894568
有事點擊這里…  61352289
在線客服
有事點擊這里…  531199185
有事點擊這里…  61352288
有事點擊這里…  983054746
有事點擊這里…  893984210
當前位置:首頁 >> 技術文章 >> 文章瀏覽
技術文章

Linux設置iptables防火墻的詳細步驟

添加時間:2019-3-1 20:32:42  添加: 思海網絡 
iptables是Linux內核中內置的防火墻,可以允許管理員通過設置table, chain以及相關的規則來進行數據包過濾和NAT。 一般來講,iptables防火墻已經內置于CentOS 6及其他Linux版本中,而且iptables服務默認都是啟動的。  iptables應用于IPv4, 如果要用IPv6,需要使用ip6tables.

iptables的命令格式:


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

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

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

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

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

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

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

DROP:拒絕,

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

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

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

開始操作之前:

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

決定哪些端口需要開放

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

一般來講,CentOS的VPS經常作為用LAMP搭建的Web服務器,FTP服務器,Mail服務器等。

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

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

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

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

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

缺省情況下,CentOS的iptables的設置是允許任何數據通過的。

我們首先要清空iptables中的所有的規則:


iptables-F
然后我們加上阻止簡單掃描和攻擊的規則


iptables-AINPUT-ptcp--tcp-flagsALLNONE-jDROP#NONE包(所有標識bit都沒有設置)主要是掃描類的數據包
iptables-AINPUT-ptcp!--syn-mstate--stateNEW-jDROP#防止sync-flood攻擊
iptables-AINPUT-ptcp--tcp-flagsALLALL-jDROP#ALL包(所有的標注bit都被設置了)也是網絡掃描的數據包
關于sync-flood,請參照wikipedia的解釋。

第二步:為相應的服務開放對應的端口

首先我們應該接受本機localhost的任何請求,否則,數據庫連接等將無法工作

iptables-AINPUT-ilo-jACCEPT
對于不同的服務需要開放不同的端口


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
第三步:加上通用的規則

首先要允許所有從服務器端發起的連接,由此返回的響應數據應該是允許的!比如VPS發起的yumupdate,必須要允許外部的update數據進來


iptables-IINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT
最后,設置缺省的策略:屏蔽任何進入的數據請求,允許所有從Server發出的請求


iptables-POUTPUTACCEPT</p> <p>iptables-PINPUTDROP
至此,規則設置完畢

第四步:保存設置

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


iptable-L-n
確認沒有問題后,執行下面的命令



serviceiptablessave
執行上述命令后,相應的規則會寫入/etc/sysconfig/iptables這個文件,你可以檢查一下看看。

最后執行


serviceiptablesrestart.
重新啟動iptables防火墻,以使上述設置生效。


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

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



代碼如下:

#!/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的計數和流量統計歸零</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
你可以根據你的需要進行相應的修改。

關鍵字:Linux、iptables、防火墻
分享到:

頂部 】 【 關閉
版權所有:佛山思海電腦網絡有限公司 ©1998-2019 All Rights Reserved.
聯系電話:(0757)22630313、22633833
公司地址: 廣東省佛山市順德區大良國際商業城A區4座3樓106號   郵編:528300
機房7x24小時服務熱線:(0757)23628508、23628509
中華人民共和國增值電信業務經營許可證: 粵B1.B2-20030321 備案號:粵B2-20030321-1
網站公安備案編號:44060602000007 交互式欄目專項備案編號:200303DD003  
察察 工商 網安 舉報有獎  警警  手機打開網站
海立方娱乐城 vr彩票计划网页版 二人麻将4399 重庆时时3星彩走势图 飞极速app 炸金花正确搞鬼方法 三d开奖结果l今天 天津时时bug吧 体育彩票nba玩法 最近十期七乐彩的开奖结果 四川时时合法的吗