前言
用Linux+iptables做防火墻具有很高的靈活性和穩定性(老兄我的防火墻自從做了之后還一直沒有重啟過),但安裝和設定起來比較麻煩,而且容易出錯,本文旨在用為公司做防火墻的實例,讓大家對Linux+iptables做防火墻的安裝和配置有一個大致的了解,希望能起到拋磚引玉的作用。
系統環境與網絡規化
先了解一下公司的環境,公司利用2M ADSL專線上網,電信分配公用IP為218.4.62.12/29,網關為218.4.62.13 ,公司有電腦五十多臺,使用DHCP,IP是192.168.2.XXX,DHCP Server建在iptables Server上;另公司有一電腦培訓中心,使用指定固定IP,IP為192.168.20.XXX,為了更加快速的瀏覽網頁,我們架了一臺Squid Server,所有電腦通過Squid Server瀏覽網頁,公司還另有一臺WEB Server+Mail Server+Ftp Server。其IP為218.4.62.18。以上電腦和服務器要求全架在防火墻內。我們規化如下:
Iptables Server上有三塊網卡,eth0上加有二個IP,218.4.62.14和218.4.62.18。
其中218.4.62.14為共享上網,218.4.62.18為WEB Server專用,Eth1的IP為192……168.2.9;為了使培訓中心PC與公司PC之間互不訪問,所以直接從Iptables Server接到Switch-B,eth2接至Switch-A,連接培訓中心PC和Squid Server, Web Server。
網絡規化好了后,就開始裝服務器了,Iptables Server 用的系統為Redhat Linux V7.3。在裝服務器時要注意選上防火墻的安裝包。
IPTABLES基礎
Iptables語法:
Iptables [-t TABLE] ACTION [PATTERN] [-j TARGET] |
有filter,nat,mangle;若無指定,預設為filter table.
ACTION(對Chains執行的動作):
ACTION 說明
-L Chain 顯示Chain中的所有規則
-A Chain 對Chain新增一條規則
-D Chain 刪除Chain中的一條規則
-I Chain 在Chain中插入一條規則
-R Chain 替換Chain中的某一條規則
-P Chain 對Chain設定的預設的Policy
-F Chain 清除Chain中的所有規則
-N Chain 自訂一個Chain
-X 清除所有的自訂Chain
CHAINS:
Iptables 有五條默認的Chains(規則鏈),如下表:
Chains 發生的時機
PREROUTING 數據包進入本機后,進入Route Table前
INPUT 數據包通過Route Table后,目地為本機
OUTPUT 由本機發出,進入Route Table前
FORWARD 通過Route Table后,目地不是本機時
POSTROUTING 通過Route Table后,送到網卡前
PATTERN(設定條件部份):
參數 內容 說明
-p Protocol 通訊協議,如tcp,udp,icmp,all等……
-s Address 指定的Source Address為Address
-d Address 指定的Destination Address為Address
-I Interface 指定數據包進入的網卡
-o Interface 指定數據包輸出的網卡
-m Match 指定高級選項,如mac,state,multiport等……
TARGET(常用的動作):
TARGET 說明
ACCEPT 讓這個數據包通過
DROP 丟棄數據包
RETURN 不作對比直接返回
QUEUE 傳給User-Space的應用軟件處理這個數據包
SNAT nat專用:轉譯來源地址
DNAT nat專用:轉譯目地地址
MASQUERADE nat專用:轉譯來源地址成為NIC的MAC
REDIRECT nat專用:轉送到本機的某個PORT
共3頁: 1 [2] [3] 下一頁 | ||
|