java 做網(wǎng)站 模板在哪可以下新聞 最新消息
一、安全技術(shù)和防火墻
1.1 安全技術(shù)
入侵檢測系統(tǒng):特點(diǎn)是不阻斷網(wǎng)絡(luò)訪問,主要是提供報(bào)警和時(shí)候報(bào)警,不主動(dòng)介入。
入侵防御系統(tǒng):透明模式工作,對(duì)數(shù)據(jù)包、網(wǎng)絡(luò)監(jiān)控、服務(wù)攻擊、木馬蠕蟲、系統(tǒng)漏洞等等進(jìn)行準(zhǔn)確的分析和判斷。在判定為攻擊行為后會(huì)立即阻斷,主動(dòng)防御。所有數(shù)據(jù)在進(jìn)入本機(jī)之前,必須要通過的設(shè)備或軟件。
防火墻:核心功能:隔離,工作在網(wǎng)絡(luò)或者主機(jī)的邊緣,一般在Internet和內(nèi)網(wǎng)之間。對(duì)網(wǎng)絡(luò)或者主機(jī)的數(shù)據(jù)包基于一定的規(guī)則進(jìn)行檢查,根據(jù)匹配到的規(guī)則放行或拒絕(丟棄數(shù)據(jù)包)。
只開放允許訪問的策略。(白名單機(jī)制,拒絕所有,允許個(gè)別。)
防水墻:是一種防止內(nèi)部信息泄露的產(chǎn)品。對(duì)外有防火墻的功能,對(duì)內(nèi)是透明模式工作,類似于監(jiān)控。
?1.2 防火墻
iptables :這個(gè)linux自帶的防火墻,一般用于內(nèi)部配置。對(duì)外一般不適用(對(duì)外都使用專業(yè)的)。
firewalld :CentOS7以后默認(rèn)的防火墻。功能和iptables大體一致。
ufw :是ubantu自帶的防火墻,ubantu也有iptables,功能也一致
iptables ufw 和 firewalld都是包過濾防火墻,對(duì)數(shù)據(jù)包進(jìn)行控制。在網(wǎng)絡(luò)層對(duì)數(shù)據(jù)包進(jìn)行選擇,選擇的依據(jù)是防火墻設(shè)置的策略。
策略:IP地址,端口,協(xié)議。
優(yōu)點(diǎn):處理速度快,利于維護(hù)。
缺點(diǎn):無法檢查應(yīng)用層數(shù)據(jù),無法對(duì)病毒進(jìn)行處理。
- 應(yīng)用層防火墻:在應(yīng)用層對(duì)數(shù)據(jù)進(jìn)行檢查,比較安全。
? 優(yōu)點(diǎn):相對(duì)更安全,可以精準(zhǔn)定位問題。
? 缺點(diǎn):所有數(shù)據(jù)都要檢查,會(huì)增加防火墻的負(fù)載。
? 2.iptables
防火墻
iptables
防火墻工作在網(wǎng)絡(luò)層,針對(duì)數(shù)據(jù)包實(shí)施過濾和限制,屬于包過濾防火墻
1.3 內(nèi)核態(tài)和用戶態(tài)
內(nèi)核態(tài)
涉及到軟件的底層代碼或者是系統(tǒng)的基層邏輯,以及一些硬件的編碼。相對(duì)比較復(fù)雜,開發(fā)人員更關(guān)注內(nèi)核態(tài)。
如果數(shù)據(jù)是內(nèi)核態(tài)處理的,處理速度相對(duì)較快。
iptables的過濾規(guī)則就是由內(nèi)核來進(jìn)行控制的。
用戶態(tài)
應(yīng)用層軟件層面,多是人為控制的一系列操作,使用功能等。
運(yùn)維人員一般只考慮用戶態(tài)。
數(shù)據(jù)只通過用戶態(tài)處理,速度相對(duì)較慢。
二、iptables防火墻
iptables的配置和策略
2.1 四表五鏈
iptables的四表:
1.Raw表 :用于控制數(shù)據(jù)包的狀態(tài),可以跟蹤數(shù)據(jù)包的狀態(tài)
2.Mangle表 :用于修改數(shù)據(jù)包的頭部信息
3.Nat表 :用于網(wǎng)絡(luò)地址轉(zhuǎn)換,可以改變數(shù)據(jù)包的源地址和目的地址
4.Filter表 :也是iptables的默認(rèn)表,不做聲明時(shí),默認(rèn)就是filter表,過濾數(shù)據(jù)包的進(jìn)出,以及接收和拒絕數(shù)據(jù)包
iptables的五鏈:
PREROUTING鏈 :處理數(shù)據(jù)包進(jìn)入本機(jī)之前的規(guī)則(路由前)(Nat表)
INPUT鏈 :處理數(shù)據(jù)包進(jìn)入本機(jī)的規(guī)則(Filter表,是否允許數(shù)據(jù)包進(jìn)入)
OUTPUT鏈 :處理本機(jī)發(fā)出的數(shù)據(jù)包的規(guī)則,或者是數(shù)據(jù)包離開本機(jī)的規(guī)則(Filter表,是否允許數(shù)據(jù)包發(fā)出,一般不做設(shè)置)
FORWARD鏈 :處理數(shù)據(jù)包轉(zhuǎn)發(fā)到其他主機(jī)的規(guī)則,或者是否允許本機(jī)進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā)
POSTROUTING鏈 :處理數(shù)據(jù)包離開本機(jī)之后的規(guī)則(路由后)(Nat表)
通俗的說法:表里面有鏈,鏈里面有規(guī)則。
四表的優(yōu)先級(jí):
Raw
?>?Mangle
?>?Nat
?>?Filter
,匹配規(guī)則由高到低。
2.2 數(shù)據(jù)流向
例:數(shù)據(jù)轉(zhuǎn)發(fā)的過程
按優(yōu)先級(jí)高低查四表里的鏈,并匹配鏈里的規(guī)則
查PREROUTING鏈和POSTROUTING鏈查看地址變換規(guī)則,
查FORWARD鏈?zhǔn)欠裨试S轉(zhuǎn)發(fā),以及轉(zhuǎn)發(fā)的具體規(guī)則。
例:請(qǐng)求響應(yīng)的過程(http https服務(wù)等)
按優(yōu)先級(jí)高低查四表里的鏈,并匹配鏈里的規(guī)則
請(qǐng)求:查INPUT鏈的規(guī)則:是否允許該地址或者端口訪問web服務(wù)。若拒絕,數(shù)據(jù)包將直接丟棄
響應(yīng):查OUTPUT鏈的規(guī)則:是否允許響應(yīng),一般不做約束。如拒絕,響應(yīng)的數(shù)據(jù)包也被丟棄
?2.3?iptables
命令
管理選項(xiàng)?:在表的鏈中插入、增加、刪除、查看規(guī)則。
匹配的條件?:數(shù)據(jù)包的IP地址、端口、協(xié)議。
控制類型?:允許,拒絕,丟棄,地址轉(zhuǎn)換。
注意事項(xiàng):
- 不指定表名的話,默認(rèn)指的是
filter
表 - 不指定鏈名的話,默認(rèn)指的是所有鏈(此乃禁止行為!)
- 除非設(shè)置了鏈的默認(rèn)策略,否則必須指定匹配條件(一般都要指定匹配條件)
- 大部分選項(xiàng)、所有的鏈名和控制類型都是大寫
2.3.1 控制類型
ACCEPT :允許數(shù)據(jù)包通過
DROP :直接丟棄數(shù)據(jù)包,且沒有任何回應(yīng)信息
REJECT :拒絕數(shù)據(jù)包通過,數(shù)據(jù)包也會(huì)被丟棄,但是會(huì)有響應(yīng)的信息
SNAT :修改數(shù)據(jù)包的源地址(source)
DNAT :修改數(shù)據(jù)包的目的地址(destination)
?
2.3.2 常用管理選項(xiàng)
-A :在鏈中添加一條規(guī)則,在鏈尾添加。
-I :指定位置插入一條規(guī)則。
-P :默認(rèn)指定規(guī)則,鏈的規(guī)則一般都是設(shè)置成拒絕(默認(rèn)是允許)
-D :刪除規(guī)則
-R :修改規(guī)則(慎用)
-vnL :-v顯示詳細(xì)信息,-n數(shù)字形式展示內(nèi)容,-L查看
--line-numbers :顯示規(guī)則的編號(hào),一般和查看一起使用
-F :清空鏈中的所有規(guī)則(慎用)
-X :清除自定義鏈中的規(guī)則
?
2.3.3 常用匹配條件
-p :指定協(xié)議類型
-s :指定匹配的源IP地址
-d :指定匹配的目的IP地址
-i :指定數(shù)據(jù)包進(jìn)入本機(jī)的網(wǎng)絡(luò)設(shè)備(指定網(wǎng)卡設(shè)備,如ens33)
-o :指定數(shù)據(jù)包離開本機(jī)的網(wǎng)絡(luò)設(shè)備
--sport :指定源端口
--dprot :指定目的端口
-m :使用擴(kuò)展模塊,擴(kuò)展模塊的使用方法在2.4內(nèi)容中有介紹
?2.3.4?iptables
的命令格式?
注意事項(xiàng):
- [-t 表名]不指定時(shí)默認(rèn)指定
filter
表 - [-j 控制類型],所有控制都要在前面?
-j
- 需要先安裝
iptables
和iptables-services
,安裝完成后啟動(dòng)并enable
服務(wù)iptables
- 命令立即生效,不需要重啟服務(wù),重啟服務(wù)會(huì)恢復(fù)默認(rèn)策略
2.3.5?iptables
匹配原則
- 每個(gè)鏈中的規(guī)則都是從上到下的順序依次匹配,匹配到之后就不再向下匹配。
- 如果鏈中沒有規(guī)則,則執(zhí)行鏈的默認(rèn)策略進(jìn)行處理。
2.4?iptables
實(shí)例
例:插入規(guī)則
拒絕所有主機(jī)來ping本機(jī)
在上一行后再添加一行
在第一行插入規(guī)則
指定源IP地址20.0.0.20
進(jìn)行控制
對(duì)多個(gè)源IP地址時(shí),用逗號(hào)隔開
指定端口,端口要寫在協(xié)議后面
拒絕指定IP20.0.0.20
通過ssh
服務(wù)遠(yuǎn)程登錄主機(jī)
拒絕指定IP20.0.0.20
獲取本機(jī)的web服務(wù)
2.5 iptables的備份和保存
? iptables 的配置文件保存在 /etc/sysconfig/iptables,每次重啟服務(wù)都會(huì)重新讀取配置文件里的規(guī)則
也可以通過iptables-save把當(dāng)前防火墻配置保存在文件中,每次需要讀取這個(gè)配置時(shí)通過iptables-restore命令獲取配置,這個(gè)獲取配置也是臨時(shí)生效??梢耘浜夏_本在系統(tǒng)啟動(dòng)時(shí)自動(dòng)加載配置
?
2.6?iptables
自定義鏈
創(chuàng)建自定義鏈
修改自定義鏈名
刪除自定義鏈
2.7 地址轉(zhuǎn)換
2.7.1 snat和dnat
snat :源地址轉(zhuǎn)換
內(nèi)網(wǎng)—外網(wǎng) :內(nèi)網(wǎng)IP轉(zhuǎn)換成可以訪問外網(wǎng)的IP
內(nèi)網(wǎng)的多個(gè)主機(jī)可以只有一個(gè)有效的公網(wǎng)IP地址訪問外部網(wǎng)絡(luò)
dnat :目的地址轉(zhuǎn)換
外部用戶,可以通過一個(gè)公網(wǎng)地址訪問服務(wù)器內(nèi)部的私網(wǎng)服務(wù)。
私網(wǎng)的IP和公網(wǎng)的IP做一個(gè)映射。
?
2.7.2 實(shí)驗(yàn)
1、test1 :20.0.0.10 ,nginx服務(wù)
2、test2 :兩個(gè)網(wǎng)卡設(shè)備:
? ? ? ens33:20.0.0.254(私網(wǎng)的網(wǎng)關(guān))
? ? ? ens36:12.0.0.254(用來模擬test3的地址是公網(wǎng)地址)
? ? 模擬test1的公網(wǎng)IP :10.0.0.10(test1的地址轉(zhuǎn)換成10.0.0.10和test3進(jìn)行通信)
3、test3 :12.0.0.10 ,nginx服務(wù)
要求:在test2上配置防火墻,使test1作為私網(wǎng)地址,test3作為公網(wǎng)地址,觀察雙方獲取對(duì)方web服務(wù)時(shí),/var/log/nginx/access.log中記錄的訪問主機(jī)地址,理解NAT的工作方式。
對(duì)test1,test2,test3的IP地址分別設(shè)置。其中test2兩個(gè)網(wǎng)卡的IP地址分別作為test1和test3的網(wǎng)關(guān)地址。
對(duì)test2:
Linux 內(nèi)核參數(shù)的配置文件/etc/sysctl.conf
源地址轉(zhuǎn)換:
-t nat
?:指定表為nat表-A POSTROUTING
?:添加規(guī)則到鏈-s 20.0.0.0/24
?:指定網(wǎng)段-o
?:指定輸出設(shè)備-j SNAT
?:指定控制參數(shù)SNAT--to 10.0.0.10
?:20.0.0.0/24
網(wǎng)段的源地址轉(zhuǎn)換為10.0.0.10
這個(gè)公網(wǎng)IP地址
目的地址轉(zhuǎn)換:
-d 10.0.0.10 :指定作為目的地址轉(zhuǎn)換的IP地址
-i :從指定設(shè)備進(jìn)入本機(jī)
-p :指定協(xié)議
--dport :指定端口
-j DNAT :使用目的地址轉(zhuǎn)換
--to 20.0.0.10:80 :外網(wǎng)想要訪問內(nèi)網(wǎng)的20.0.0.10:80(端口號(hào)80也可以不加)的web服務(wù),只需要訪問公網(wǎng)的10.0.0.10這個(gè)IP地址。
2.7.3 tcpdump抓包工具
tcpdump是Linux系統(tǒng)自帶的抓包工具。
固定抓包:
tcp :指定抓包的協(xié)議,這個(gè)位置是第一個(gè)參數(shù),也可以不指定
-i :只抓經(jīng)過指定設(shè)備的包
-t :不顯示時(shí)間戳(可以不加)
-s0 :抓取完整的數(shù)據(jù)包
-c 10 :抓幾個(gè)數(shù)據(jù)包(10就是抓10個(gè)包)
dst port :指定抓包的目的端口
src net :指定抓包的IP網(wǎng)段,如果要指定主機(jī)把net改成host
-w :保存結(jié)果到指定文件
??動(dòng)態(tài)抓包:
?
?一般把抓包的記錄保存在.cap
文件,導(dǎo)出到Windows系統(tǒng)用wireshark之類的抓包軟件分析。需要注意的是,使用wireshark分析,需要tcpdump指定選項(xiàng)-s0
獲取抓包的完整格式。