該怎么描述防火墻的實現(xiàn)呢?既然說不明白那就不說了,自己領(lǐng)悟吧!
創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計,平陸網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:平陸等地區(qū)。平陸做網(wǎng)站價格咨詢:13518219792一、防火墻是什么?
通過一些規(guī)則在網(wǎng)絡(luò)數(shù)據(jù)報文必經(jīng)的幾個鉤子上做端口的限制,實現(xiàn)數(shù)據(jù)過濾的功能。
二、數(shù)據(jù)報文傳輸?shù)穆窂绞窃鯓拥模?/p>
1、 客戶端發(fā)出數(shù)據(jù)報文---->到達服務(wù)器的網(wǎng)絡(luò)接口-----(判斷目標(biāo)是服務(wù)器自己)將報文送入內(nèi)核處理---->將處理好的數(shù)據(jù)報文轉(zhuǎn)發(fā)出去---->通過網(wǎng)絡(luò)接口發(fā)還給客戶端
2、客戶端發(fā)出數(shù)據(jù)報文---->到達服務(wù)器的網(wǎng)絡(luò)接口-----(判斷目標(biāo)不是服務(wù)器)將數(shù)據(jù)轉(zhuǎn)發(fā)出去---->通過網(wǎng)絡(luò)接口送去目標(biāo)地址
三、哪些地方是數(shù)據(jù)流必經(jīng)的點?
1.報文進入網(wǎng)卡,但是還沒有經(jīng)過路由,這個點叫做prerouting
2.報文經(jīng)過路由后送入內(nèi)核之前,這個點叫做input
3.路由功能節(jié)點,這個點叫forward
4.報文由內(nèi)核處理完畢,發(fā)送給路由之前,這個點叫output
5.報文經(jīng)過路由后,就要經(jīng)過網(wǎng)卡發(fā)送出去,這個點叫postrouting
這些點在專業(yè)術(shù)語中稱為hooks funcation即鉤子函數(shù),因為所有的數(shù)據(jù)流必經(jīng)這五個點,所以我們的防火墻規(guī)則寫在這5個點上就可以了。
四、有哪些規(guī)則可以防火?
這就要談一下防火墻的歷史了,最開始linux是沒有防火墻設(shè)計的,基于安全的考慮OpenBSD最先將防火墻的概念在其unix內(nèi)核中實現(xiàn)。后來linux的維護者看到有這么好的東西,就把它移植到linux的內(nèi)核中去了,最開始這個規(guī)則叫做firewall,但是其太簡陋了,只能起到數(shù)據(jù)報文過濾filter的功能。隨著時間的發(fā)展其功能得到了非常多的擴展,比如實現(xiàn)了nat、mangle、raw等功能,所以后來給這些功能統(tǒng)一一起來起了個好聽的名字——netfilter,怎么樣?好聽吧......
netfilter叫做規(guī)則,它有四種功能:
1.filter 過濾
2.nat 網(wǎng)絡(luò)地址轉(zhuǎn)換
3.mangle 修改數(shù)據(jù)報文首部的可修改信息
4.raw 關(guān)閉net表上啟動的連接追蹤功能
五、什么是鏈?chain?
在一個鉤子上添加了很多規(guī)則功能,這些規(guī)則功能連起來就叫chain。但是有些功能只有在特定的鉤子上才起作用,下面是五個鏈的對應(yīng)表:
prerouting | raw | mangle | nat | |
input | mangle | filter | ||
output | raw | mangle | nat | filter |
forward | mangle | filter | ||
postrouting | mangle | nat |
鏈上面的規(guī)則檢查是要按順序檢查的:
1.同類規(guī)則匹配范圍小的方上面
2.不同類規(guī)則,匹配次數(shù)頻繁的方上面
3.應(yīng)該設(shè)定默認的規(guī)則
六、什么是表?table
每個功能都對應(yīng)幾個鏈,把這些鏈排起來就是表,下面是四個功能表:
filter | input | forward | output | ||
nat | prerouting | output | postrouting | ||
mangle | prerouting | input | output | forward | postrouting |
raw | prerouting | output |
七、上面所說的規(guī)則功能怎么添加到linux中?
iptables是一個接口,也是一個工具,可以讓程序員使用命令行模式輸入設(shè)定的規(guī)則到指定的hooks funcation上,實現(xiàn)防火墻的功能。
格式:
# iptables [-t TABLE] SUBCOMMAND CHAIN CRETERIA -j TARGET
TABLE: filter, nat, mangle, raw
SUBCOMMAND:
-P 設(shè)置鏈的默認處理 #iptables -P INPUT DROP
-F 清空指定鏈上的所有規(guī)則 #iptables -F INPUT
-Z 將鏈上的流經(jīng)的數(shù)據(jù)報文數(shù)據(jù)清零
-N 新建一個鏈,自定義的鏈
-X 刪除用戶自定義的空鏈
-E 重命名自定義鏈
-A 在指定鏈的最后添加一條規(guī)則
-I 插入一條規(guī)則,默認插入為第一條
-D 刪除指定的規(guī)則
-R 替換指定的規(guī)則
-L 列出指定鏈上的所有規(guī)則
-L -n 以數(shù)字方式列出
-L -n -v 更相信的信息
-L -n --line-numbers 顯示規(guī)則編號
-L -n -v -x 顯示計數(shù)器的精確值
CHAIN: PREROUTING INPUT FORWARD OUTPUT POSTROUTING
CRETERIA:
通用:-p 檢查協(xié)議tcp,udp,icmp
-s 源IP
-d 目標(biāo)IP
-i 進入網(wǎng)卡接口
-o 出去網(wǎng)卡接口
隱式:(如果-p指明了協(xié)議-m 和協(xié)議可以省略)
-m tcp --dport|sport|syn|tcp-flags LIST1 LIST2
-m udp --dport|sport
-m icmp --icmp-type 8|0(8為ping請求,0為ping響應(yīng))
顯示:
-m multiport 指定多個端口
--sports
--dports
-m iprange 指定IP范圍
--src-range 源 (注意:前面可使用 ! 表示否定含義)
--dst-range 目標(biāo)
-m string 指定過濾的字符串
--algo {kmp|bm} 指定解析算法
--string 字符串
--hex-string 十六進制編碼后的字符串
-m time 基于時間做限制
--datestart
--datestop
--timestart
--timestop
--weekdays
-m connlimit 基于并發(fā)連接數(shù)做限制
--connlimit-above
-m limit 基于鏈接速率做限制
--limit n[/second|/minit|/hour|/day] 限制鏈接速度多久一次
--limit-burst n 突發(fā)鏈接速率最快每秒n個
TARGET:
內(nèi)置目標(biāo):ACCEPT(接受),DROP(不響應(yīng)),REJECT(拒絕)
自定義的鏈chain
八、未完待續(xù)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。