ACL主要用于實現流量的過濾,業務中網絡的需求不止局限于能夠連同。
一、過略工具
你的公司當中有研發部門,包括有財務部門,財務部門的訪問是要做到控制的,防止被攻擊。
這種的過濾方法為,在設備側可以基于訪問需求來實現特定的流量過濾,其中過濾把最基本的ACL策略到Bt防火墻策略,由簡單到復雜有不同的工具,而我們最簡單的工具稱為ACL實現。
簡單來講,我不希望研發部門和財務部門互通,在現實生活中有很多過濾策略要求非常高,比如要求某些文件不能通過,某些文件達到過濾,某些文件達到檢測,這些需要防火墻來實現。
而在基本策略當中,如果僅僅是希望,他們部分網段之間部分部門之間不能互訪,那這個需求相對來說比較簡單。
過濾工具,比如在現實生活中,管理一個班級,需要指定班規,班規就是策略,班規里會有條文去限制,同樣我們的ACL的本質就是寫過濾的條文。在里面寫好,哪些流量可以通信,哪些不能。
二、ACL實現過濾的方式
不同部門之間不能互通,他們很明顯的特征能夠代表部門,最終的結果是流量過來我來執行策略,不同部門之間哪些能夠代表一個部門的,在傳輸的IP報文當中,每一層都可以定義,網絡層當中有網段,如果收到一個數據包,源地址是192.168.2.x這樣2開頭IP全部不行,那么研發部門的流量就不能上網了,這個就叫做訪問控制。
如果VLAM10的主機原MAC為A,那么就禁止原MAC為A的。同樣,如果我不希望你打開某個網站,那么就可以在傳輸層,假設目標端口為80進行禁止。
其實,寫的就是流量特征,實現我們的策略過濾。
#define SOE_MIN 0x6000 //驅動程序處理最小值
#define BANPING 0x6001 //過濾程序和驅動程序對話時禁ping功能編號
#define BANIP 0x6002 //禁ip功能編號
#define BANPORT 0x6003 //禁port功能編號
#define NOWRULE 0x6004 //獲取防火墻當前規則功能編號
#define SOE_MAX 0x6100 //驅動程序處理最大值 typedef struct ban_status{int ping_status; //是否禁ping,1禁止,0未設置 int ip_status; //是否禁ip,1禁止,0未設置 int port_status; //是否禁port,1禁止,0未設置 unsigned int ban_ip; //禁ip數值 unsigned short ban_port; //禁port數值
}ban_status;