歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下用IPtable實現防火牆實例講解

Linux下用IPtable實現防火牆實例講解

日期:2017/2/28 17:46:04   编辑:Linux教程

一般LINUX防火牆(iptalbes)的運用無非是用nat 表(PREROUTING、OUTPUT、POSTROUTING)和filter表(FORWARD、INPUT、OUTPUT)。我們只有知道了數據的流向才能正確的配置防火牆。現用一個相對比較直觀的圖形解釋數據的走向。(此處只作最基本的iptables數據流走向說明。)

上圖是你的家,藍色的圈是你家院子,有兩扇大門①⑥進出,你家有兩個房間,分別為eth0和 eth1房間,每個房間有兩個門可以進出②③④⑤。旁邊是張三和李四的家,張三家和李四家之間的往返必須要過你家院子。

現假設,eth0網卡IP為:192.168.5.1鏈接內網,eth1網卡IP為:218.100.100.111鏈接互連網。

再假設,“張三家”為一個局域網,“李四家”為互連網。進我家院子用PREROUTING,出我家院子用FORWARD,進我家門用INPUT,出我家門用 OUTPUT。(當我們的操作是征對服務器本身而言的話,如SSH操作,此時肯定會用到PREROUTING、INPUT和OUTPUT,當數據只是通過服務器去訪問別的機器時會用到PREROUTING和FORWARD。)

又假設,默認這六個門都是關的。生成如下代碼。

###########################################################################

*nat

################################

:PREROUTING DROP [0:0]

:OUTPUT DROP [0:0]

:POSTROUTING DROP [0:0]

################################

-F

-Z

-X

### 以後要新增語句請在此處增加。

-L –v

COMMIT

################################################

*filter

##############################

:INPUT DROP [0:0]

:FORWARD DROP [0:0]

:OUTPUT DROP [0:0]

##############################

-F

-Z

-X

### 以後要新增語句請在此處增加。

-L –v

COMMIT

##########################################################################

1、 局域網用戶通過服務器共享上網

(即從張三家到李四家)

1)首先進①號門,再從⑥號門走出。

-A PREROUTING –p tcp --dport 80 –j ACCEPT #允許TCP 80端口通過服務器

-A FORWARD –p tcp --dport 80 –j ACCEPT #允許TCP80 端口轉發

-A FORWARD –p tcp --sport 80 –j ACCEPT #允許接收對方為TCP80端口反回的信息

2)其次,由於我們上網打的是域名,為此有一個公網DNS服務器為我們服務,那當然也要允許內網機器與DNS服務器的數據轉發。DNS用UDP 53或者 TCP 53端口。兩者用其一個就行。

-A PREROUTING –p udp --dport 53 –j ACCEPT

-A FORWARD –p udp --dport 53 –j ACCEPT

-A FORWARD –p udp --sport 53 –j ACCEPT

3)再次,由於局域網的地址在公網上是不被允許的,所以在出公網前應該把其地址轉為服務器地址進行偽裝。

-A POSTROUTING –s 192.168.5.0/24 –j SNAT –to 218.100.100.111

2、 允許局域網和公網可以訪問服務器的SSH

假設SSH采用默認端口TCP 22 。此要求相當於要進我的家的TCP 22號門,為此我們首先要進我家院子,然後再進我家門,最後走出我家門這樣的過程。此操作是征對服務器本身的操作。

-A PREROUTING –p tcp --dport 22 –j ACCEPT

-A INPUT –p tcp --dport 22 –j ACCEPT

-A OUTPUT –p tcp --sport 22 –j ACCEPT

Copyright © Linux教程網 All Rights Reserved