linux iptables 防火牆設定

來源:互聯網
上載者:User

標籤:service   防火牆   status   start   開關   


1.啟動指令:service iptables start   

2.重啟指令:service iptables restart   

3.關閉指令:service iptables stop   

http://www.linuxidc.com/Linux/2012-03/56066.htm 


開啟:

chkconfig iptables on 

關閉:

chkconfig iptables off 

 

即時生效,重啟後失效:

 

開啟: 

service iptables start 

關閉: 

service iptables stop 

或者:

 

/etc/init.d/iptables status 

會得到一系列資訊,說明防火牆開著。

 

/etc/rc.d/init.d/iptables stop 

關閉防火牆


 

或者:

 

為了下次啟動不啟動防火牆,你必須刪除

/etc/sysconfig/iptables


1.刪除已有規則

在新設定iptables規則時,我們一般先確保舊規則被清除,用以下命令清除舊規則:

iptables -F(or iptables --flush)

 

2.設定chain策略

對於filter table,預設的chain策略為ACCEPT,我們可以通過以下命令修改chain的策略:

iptables -P INPUT DROPiptables -P FORWARD DROPiptables -P OUTPUT DROP

以上命令配置將接收、轉寄和發出包均丟棄,施行比較嚴格的包管理。由於接收和發包均被設定為丟棄,當進一步配置其他規則的時候,需要注意針對INPUT和OUTPUT分別配置。當然,如果信任本機器往外發包,以上第三條規則可不必配置。

 

3.屏蔽指定ip

有時候我們發現某個ip不停的往伺服器發包,這時我們可以使用以下命令,將指定ip發來的包丟棄:

BLOCK_THIS_IP="x.x.x.x"iptables -A INPUT -i eth0 -p tcp -s "$BLOCK_THIS_IP" -j DROP

以上命令設定將由x.x.x.x ip發往eth0網口的tcp包丟棄。

 

4.佈建服務項

利用iptables,我們可以對日常用到的服務項進行安全管理,比如設定只能通過指定網段、由指定網口通過SSH串連本機:

iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLESHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

若要支援由本機通過SSH串連其他機器,由於在本機連接埠建立串連,因而還需要設定以下規則:

iptables -A INPUT -i eth0 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state ESTABLESHED -j ACCEPTiptables -A OUTPUT -o eth0 -p tcp --sport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

類似的,對於HTTP/HTTPS(80/443)、pop3(110)、rsync(873)、MySQL(3306)等基於tcp已連線的服務,也可以參照上述命令配置。

 

對於基於udp的dns服務,使用以下命令開啟連接埠服務:

iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPTiptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT

 

5.網口轉寄配置

對於用作防火牆或網關的伺服器,一個網口串連到公網,其他網口的包轉寄到該網口實現內網向公網通訊,假設eth0串連內網,eth1串連公網,配置規則如下:

iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

 

6.連接埠轉寄配置

對於連接埠,我們也可以運用iptables完成轉寄配置:

iptables -t nat -A PREROUTING -p tcp -d 192.168.102.37 --dport 422 -j DNAT --to 192.168.102.37:22

以上命令將422連接埠的包轉寄到22連接埠,因而通過422連接埠也可進行SSH串連,當然對於422連接埠,我們也需要像以上“4.佈建服務項”一節一樣,配置其支援串連建立的規則。

 

7.DoS攻擊防範

利用擴充模組limit,我們還可以配置iptables規則,實現DoS攻擊防範:

iptables -A INPUT -p -tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT

--litmit 25/minute 指示每分鐘限制最大串連數為25

--litmit-burst 100 指示當總串連數超過100時,啟動 litmit/minute 限制

 

8.配置web流量均衡

我們可以將一台伺服器作為前端伺服器,利用iptables進行流量分發,配置方法如下:

650) this.width=650;" alt="複製代碼" src="http://common.cnblogs.com/images/copycode.gif" />

iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.101:80iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.102:80iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 3 --packet 0 -j DNAT --to-destination 192.168.1.103:80

650) this.width=650;" alt="複製代碼" src="http://common.cnblogs.com/images/copycode.gif" />

以上配置規則用到nth擴充模組,將80連接埠的流量均衡到三台伺服器。

 

9.將丟棄包情況記入日誌

使用LOG目標和syslog服務,我們可以記錄某協議某連接埠下的收發包情況。拿記錄丟包情況舉例,可以通過以下方式實現。

首先自訂一個chain:

iptables -N LOGGING

其次將所有接收包匯入LOGGING chain中:

iptables -A INPUT -j LOGGING

然後設定日誌首碼、記錄層級:

iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables Packet Dropped: " --log-level 7

最後將包倒向DROP,將包丟棄:

iptables -A LOGGING -j DROP

另可以配置syslog.conf檔案,指定iptables的日誌輸出。


linux iptables 防火牆設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.