標籤:
MikroTik RouterOS能對包狀態過濾;P2P協議過濾;源和目標NAT;對源MAC、IP地址、連接埠、IP協議、協議(ICMP、TCP、MSS等)、介面、對內部的資料包和串連作標記、ToS 位元組、內容過濾、順序優先與資料頻繁和時間控制、包長度控制...
下面是RouterOS對IP流的處理流程:
RouterOS防火牆類型
MikroTik RouterOS具備強大的防火牆,根據不同的環境和類別我們可以把RouterOS的分未如下幾個類型:
從網路層上分類:分為二層過濾防火牆和三層與三層以上過濾防火牆,他們分別在bridge filter和ip firewall filter下進行操作,能對各層的資料進行處理。
從資料轉送上分類:分為input、foreward和output三種鏈表(chain)過濾,不管是二層或者三層過濾上都包含這三個鏈表。
同時RouterOS還支援自訂防火牆鏈表。如下面的virus病毒鏈表。我們可以通過jump命令將資料跳轉到指定的鏈表。
上面的圖片是顯示了幾個自訂鏈表,除了我們在右上方,下拉式功能表看到的input、forward、output基本鏈表外(all、dynamic、static是系統狀態鏈表),可以看到自訂的Robotdog、ICMP、virus這三個鏈表。
RouterOS IP firewall filter工作原理
下面是三條預先設定好了的chains,他們是不被能刪除的:
input – 用於處理進入路由器的資料包,即資料包目標IP地址是到達路由器一個介面的IP地址,經過路由器的資料包不會在input-chains處理。
forward – 用於處理通過路由器的資料包
output – 用於處理源於路由器並從其中一個介面出去的資料包。
當處理一個chain(資料鏈),策略是從chain列表的頂部從上而下執行的。即先進先出法(First In First Out)
我們通過先進先出法可以理解到,過濾資料時我們可以通過以下的兩種原則“先丟棄後接受和先接受後丟棄”:
現在我來看案例中的防火牆規則,我先從input鏈表開始,這裡是對所有訪問路由的資料進行過濾和處理:
從input鏈表中可以看到,我們對進入路由器的資料採用先拒絕非法的資料和串連,並將ICMP資料跳轉到自訂的ICMP的鏈表中過濾。
下面是forward鏈表一個應用防火牆案例:
forward鏈表,我們首先拒絕大多數機器狗訪問的目標地址,然後跳轉到機器狗鏈表中對相應的網域名稱和IP進行過濾,接下來是對非法資料包、TCP串連數、非單播資料、ICMP協議和常見的病毒等進行過濾。
案例:
下面是禁止任何地址通過TCP/135連接埠訪問到本地路由器,因為是訪問本地路由器的資料,這裡進入input鏈表進行操作:
禁止內網192.168.1.100的電腦上網,我們通過forward鏈表進行控制:
我們來看看Jump操作在forward鏈表中的工作過程:
在forward中資料遇到jump規則,會判斷資料是否符合定義jump規則,如果滿足條件將跳轉到指定的鏈表,如的ICMP和virus鏈表,當在資料進入這些鏈表執行完後,會返回jump規則所在的forward鏈表中。
IP Firewall協議深入解析
TCP/IP協議和構架
我們首先理解一下,TCP/IP體繫結構:
(1)網路介面層
網路介面層,也被稱為網路訪問層,包括了能使用TCP/IP與物理網路進行通訊的協議,它對應OSI的物理層和資料連結層。TCP/IP標準並沒有定義具體的網路介面協議。具體的網路介面協議在實際應用的網路如Ethernet、ATM、FDDI、X.25、PPP、Token-Ring 等中定義。
(2)網路層
網路層是在TCP/IP標準中正式定義的第一層。網路層所執行的主要功能是處理來自傳輸層的分組,將分組形成資料包(IP資料包),並為該資料包進行直接選取,最終將資料包從源主機發送到目的主機,在網路層中,最常用是網路通訊協定IP,其他一些協議用來協助IP的操作。
網路層的協議有:IP、ARP、RARP、ICMP、IGMP
(3)傳輸層
TCP/IP的傳輸層也被稱為主機至主機層,與OSI的傳輸層類似,主要負責主機到主機之間的端對端通訊,該層使用了兩種協議來支援兩種資料的傳送方法,即TCP協議和UDP協議。
(4)應用程式層
在TCP/IP模型中,應用程式介面是最高層,它與OSI模型中的高三層的任務相同,用於提供網路服務,比如檔案傳輸、遠程登入、網域名稱服務 (DNS)和簡單網路管理等。
我們的RouterOS 中,ip firewall filter主要負責的是網路層、傳輸層和應用程式層,網路介面層則由bridge filter負責處理。
我們從上面的圖看到,在RouterOS的filter規則中,可以找到Protocol(協議)的選項,我們可以根據情況,選擇自己需要的協議。
TCP/IP協議是一族協議,包括上百個互為關聯的協議,不同功能的協議分布在不同的協議層, 下面是幾個常用協議:
一、網際層協議
IP:網際協議
ARP:位址解析通訊協定
RARP:反向位址解析通訊協定
ICMP/ICMPv6:Internet 訊息控制協議
IPCP and IPv6CP:IP控制協議和IPV6控制協議
IGMP:網際網路群組管理通訊協定
二、傳輸層協議
TCP:傳輸控制通訊協定
UDP:使用者資料包通訊協定
RDP:可靠資料協議,RDP 是一種連線導向的傳輸協議,其主要設計來為主機監控應用程式如下載 / 上傳以及遠端偵錯進行有效大批資料轉送。
RUDP:可靠使用者資料包通訊協定,RUDP 用於傳輸 IP 網路間的電話訊號。
三、應用程式層協議應用程式層協議
HTTP:超文字傳輸通訊協定 (HTTP),用於Internet中的客戶機與WWW伺服器之間的資料轉送
DHCP:動態主機設定通訊協定,實現對主機的地址分配和配置工作
DNS:網域名稱系統(服務)系統,用於實現主機名稱與IP地址之間的映射
FTP:檔案傳輸通訊協定,實現主機之間的檔案傳送
TFTP:簡單檔案傳輸通訊協定
TELNET:TCP/IP 終端模擬協議(又稱遠程登入協議),本地主機作為模擬終端,登入到遠程主機上運行應用程式
SMTP:簡易郵件傳輸通訊協定,實現主機之間電子郵件的傳送;
IMAP4:網際網路資訊訪問協議,用於訪問儲存在郵件伺服器系統內的電子郵件和電子公告板資訊。
POP(POP3):郵局協議,用於使用者與伺服器之間進行郵件的收發。
SNMP:簡易網路管理通訊協定,實現網路的管理
NNTP:網路新聞傳輸通訊協定
UUCP:Unix到Unix的拷貝程式
BOOTP:引導協議,用於無盤主機或工作站的啟動
NFS:網路檔案系統,實現主機之間的檔案系統的共用
NAT:網路位址轉譯
IRCP/IRC:網際網路線上聊天協議
LDAP:輕量級目錄訪問協議
NTP:網路時間協議
RLOGIN:遠程登入命令,僅支援Unix到Unix的串連。
RMON:遠程監控
RWhois:遠程目錄訪問協議
SLP:服務定位協議
SNTP:Simple Network Time Protocol
Finger:使用者資訊協議
IP源地址和目標地址概念
如何判斷源地址和目標地址,與他們在ip firewall filter的鏈表,我們先看看下面的圖:
我們從該圖上可以看到,內網主機192.168.10.88與路由器192.168.10.1通訊的情況,內網主機192.168.10.88向路由和外網的web伺服器時,不同情況下源目標IP地址的轉變和使用的chain鏈表情況。
註:在這裡要記住任何通訊是雙向的,而不僅只有源到目標一條鏈路。
在RouterOS中兩個選擇涉及到源和目標地址,General標籤中的src-address、dst-address和Advanced的src-address-list、dst-address-list如:
Src-address和dst-address可以支援子網格式,同樣支援一段連續的地址如:“192.168.10.10-192.168.10.100”。在src-address-list和dst-address-list裡需要調用/ip firewall address-list的地址清單,通過該地址清單可以設定不同位址區段和不連續的IP地址。
實驗:
1、 允許192.168.10.9和192.168.10.15能訪問外網,禁止其他地址訪問外網資料
2、 路由器有兩段內網IP地址192.168.10.0/24和192.168.11.0/24,禁止這兩個位址區段互訪,但允許192.168.10.9訪問192.168.11.9的主機
病毒和應用程式過濾
在RouterOS中能做到內容過濾,即content,對一些明文傳輸的字元進行過濾,特別是web中的內容
上面是一個過濾www.test.com的網域名稱過濾
至於最新的機器狗病毒我們可以通過匯入機器狗的存在的病毒地址和網域名稱進行過濾,我們在對機器狗目標地址過濾時調用了address-list的地址清單。
我們在中,我們看到對機器狗的目標地址控制我們設定了dst-address-list選擇Robotdog,而Robotdog定義則是在ip firewall address-list中定義:
在address-list常用於某一組相同類型或屬性的IP地址,但這些又不連續,則可以通過address-list來定義。以上的防火牆規則,可以在http://www.mikrotik.com.cn/down.asp下載到。
在RouterOS3.0中增加了Layer7協議過濾功能,即對應用程式的代碼進行過濾,這些代碼我們通過Regexp的指令碼進行編輯,也可以通過我們預先編輯好的RouterOS指令碼匯入Layer7協議應用列表(下載http://www.mikrotik.com.cn/down.asp)
我們可以同在ip firewall filter中調用,操作如下:
我們可以同上面的列表看到,RouterOS的Layer7協議能對常見的網路通訊協定、網路程式和遊戲進行操作,根據我們需要進行拒絕、接受和跳轉等。
RouterOS防火牆規則操作相對比較靈活,相應的操作人員能掌握常見的網路通訊協定和原理,操作中需要根據不同情況進行自訂,特別是防火牆前中上下結構能靈活的處理。
MikroTik RouterOS防火牆與過濾詳解