一、安全技術
1.入侵檢測系統:特點式不阻斷網絡訪問,主要式提供報警和事后監督,不主動介入,默默的看著你(相當于360安全衛士)
2.入侵防御系統:透明模式工作,對數據包,網絡監控,服務攻擊,木馬,蠕蟲,系統漏洞等等進行準確的分析和判斷,在判定為攻擊行為后立即阻斷,主動的防御(所有的數據在進入本機之前,必須要通過的設備或者軟件)
二、防火墻:作用是隔離,工作在網絡或者主機的邊緣,對網絡或者主機的數據包基于一定的規則進行檢查,匹配到的規則,要么放行,要么拒絕(拒絕就就是把數據包丟棄),只開放允許訪問的策略(白名單機制,拒絕所有,允許個別)。
三、防水墻:透明模式工作,華為的ensp監控就是防水墻。一切對于防水墻來說都是透明的。可以在事前、事中、事后都可以進行檢測。
四、防火墻:
1.iptables:這個是linux自帶的防火墻,一般用于內部配置,工作在網絡層,針對數據包實施過濾和限制,是包過濾防火墻,對外一般不適用(對外都使用專業的);iptable的過濾規則就是由內核態來進行控制。
2.firewald :這個也是Linux自帶的防火墻,centos7以后默認的防火墻,也是包過濾防火墻;作用是網絡層對數據包進行選擇,選擇的依據是防火墻設置的策略,策略包括:IP地址,端口,協議;優點是處理速度塊,容易維護;缺點是無法檢查應用層數據,病毒無法進行處理。
3.應用層防火墻:在應用層對數據進行檢查,比較安全;優點是更加安全,問題定位精準;缺點是所有數據都會檢查,會增加防火墻的負載。
五、通信的五大要素:源ip和目的ip
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?源端口和目的端口
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?協議(tcp/upd)
? ? ??通信的四大要素:源ip和目的ip
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?源端口和目的端口
六、內核態和用戶態:
? ? ? ?內核態:設計到軟件的底層代碼或者是系統的基層邏輯,以及一些硬件的編碼,開發人員更關注內核態;數據如果是內核態處理,速度相對較快。
? ? ? ? 用戶態:應用層軟件層面,認為控制的一系列操作,使用功能,運維人員只考慮用戶態;數據通過用戶態處理,速度是比較慢的。
七、iptables的配置和策略:四表五鏈(表里面有鏈,鏈里面有規則)
四表:
Raw表:控制數據的狀態,跟蹤數據包的狀態。優先級最高
Mangle表:修改數據包的頭部信息。
NAT表:網絡地址轉換,可以改變數據包的源地址和目的地址
filter表:也是iptables的默認表,不做聲明,默認就是filter表,作用是過濾數據包,控制數據包的進出,以及接受和拒絕數據包。優先級最低。
五鏈:
PREROUTING鏈:處理數據包進入本機之前的規則(NAT表)
INPUT鏈:處理數據包進入本機的規則(filter表,是否允許數據包進入,拒絕的話數據包將直接丟棄)
output鏈:處理本機發出的數據包規則,或者是數據包離開的本機規則(filter表,一般不做設置,進來肯定會讓其出去)
forward鏈:處理數據包轉發到其它主機的規則,或者是允許本機進行數據包轉發。
postrouting鏈:處理數據包離開本機之后的規則(NAT表)
優先級:
?第一種跨網段數據包轉發的情況
?第二種情況:請求和響應的過程
八、iptables:
1.管理選項:在表的鏈中插入,增加,刪除,查看規則。
-t :? 指定表名+管理選項
-A :在鏈中添加一條規則,在鏈尾添加
-I:指定位置插入一條規則
-P:指定默認規則,鏈的規則一般都是設置成拒絕
-D:刪除規則
-R:修改規則(慎用)
-vnL:v顯示詳細信息,n以數字形式展示內容,L查看
--line-numbers:顯示規則的編號,一般和查看一起使用
-F:清空鏈中的所有規則(慎用)
-X:清除自定義鏈中的規則
2.匹配條件:數據包的ip地址,端口,協議。?
? ?匹配原則:每個鏈中規則都是從上到下的順序匹配,匹配到之后不再向下匹配
? ?如果鏈中沒有規則,則執行鏈的默認策略進行處理
-p:指定協議類型
-s:指定匹配的源ip地址
-d:指定匹配的目的ip地址
-i:指定數據包進入本機的網絡設備(比如ens33)
-o:指定數據包離開本機的網絡設備
--sport:指定原端口
--dport:指定目的端口
3.控制類型:允許,拒絕,丟棄。
-j :后面跟上下面的控制類型
ACCEPT:允許數據包通過。
DROP:直接丟棄數據包,沒有任何回應信息。
REJECT:拒絕數據包通過,數據包也會被丟棄,但是會有一個響應的信息。
SNAT:修改數據包的源地址。
DNAT:修改數據包的目的址。
4.注意事項:不指定表名,默認就是filter表
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?不指定鏈名,默認就是所有鏈(禁止行為)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?除非設置了鏈的默認策略,否則必須執行匹配條件(一般都是指定匹配條件)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?選項、鏈名和控制類型都是大寫,其余的都是小寫。
九、iptables的命令格式:
iptables [ -t? 表名]? 管理選項? 鏈名 (大寫)匹配條件 [ -j? 控制類型]
十、隱藏 擴展模塊
-m:擴展模塊,明確指定類型,多端口,Mac地址,IP范圍。
如何指定多端口:
-m multiport --sport /--dport
iptables -A INPUT -p tcp -m multiport --dport 80,22,21,20,53 -j REJECT
指定IP地址的范圍:
-m iprange --src-range ?源IP范圍
-m iprange --dst-range 目的IP范圍
在20-50范圍內的主機不允許ping主機
iptables -A INPUT -p icmp -m iprange --src-range 20.0.0.20-20.0.0.50 -j REJECT
十一、實驗:
1.首先要關閉firewalld的防火墻:systemctl? stop? firewalld
? 關閉安全機制:setenforce? ?0
? 安裝iptables防火墻:yum? ?-y? ?install? ? iptables? ?iptables-services
? 重啟iptables防火墻:systemctl? restart? ?iptables
? 安裝service:systemctl? ? ?enable? ? ?iptables.service
2.查看規則:iptables? -L
iptables? -vnL:以數字化的形式查看原則
查看iptables的行號 iptables -vnL? --line-numbers
清空規則(不指定的話系統默認只清空的是filter表):iptables? -F
添加一條拒絕所有主機來ping本機的規則
?插入一條允許所有主機都可以ping通本機的規則(當你直接添加一條允許規則是不會生效的,只能是插入,而且是要插入到第一條)
?指定IP地址(拒絕IP20ping主機,允許IP30ping主機)
?
指定多個IP地址(一次拒絕多個IP地址ping主機):多個IP要用逗號隔開,控制類型既可以是REJECT也可以是DROP。
DROP:直接丟棄數據包,沒有任何回應信息。
REJECT:拒絕數據包通過,數據包也會被丟棄,但是會有一個響應的信息。
?拒絕指定端口
--sport:指定原端口
--dport:指定目的端口
?即拒絕IP也拒絕端口
?拒絕主機訪問本機的nginx
?3.刪除規則:根據序號刪除即可
4. 修改策略(一般不用)
5.修改鏈名的默認策略(工作中不用):將默認的INPUT鏈的ACCEPT修改為DROP
?6.如何指定網絡設備
禁止IP192.168.127.20主機通過ens33的網卡來訪問本機的80端口服務
?
?7.備份和還原:iptables 的配置文件保存在 /etc/sysconfig/iptables,每次重啟服務都會重新讀取配置文件里的規則,也可以通過iptables-save把當前防火墻配置保存在文件中,每次需要讀取這個配置時通過iptables-restore命令獲取配置,這個獲取配置也是臨時生效。可以配合腳本在系統啟動時自動加載配置。
8.自定義鏈:iptables -N? 自定義鏈名:添加自定義鏈
? ? ? ? ? ? ? ? ? ? ?iptables? -E? ?原自定義鏈名? 現在的自定義鏈:更改源自定義鏈名
? ? ? ? ? ? ? ? ? ? ?iptables? -X? ?自定義鏈 :刪除自定義鏈名
十二、地址轉換
sant和dnat
snat:源地址轉換(內網的多個主機可以只有一個有效的公網ip地址訪問外部網絡)
dnat:目的地址轉換(外部用戶,可以通過一個公網地址訪問服務內部的私網服務,私網的ip和公網ip做了一個映射)
實驗:
1.分別關閉三臺主機firewalld防火墻及安全機制,并向10及30主機進行安裝nginx
2.給20主機添加一個網卡
3.修改20主機的網卡的IP地址:vim? ifcfg-ens33
4.配置30主機
5.配置10主機
6.配置20主機的linux內核參數配置文件,內核優化都在這個配置文件中設置:vim? ?/etc/sysctl.conf
?十三、在Linux當中如何抓包
tcpdump就是linux自帶的抓包工具(最小化安裝是不帶的,需要額外安裝)
tcpdump命令:
?十四、centos7防火墻:firewalld
firewalld:centos7自帶的。和iptables一樣,也是包過濾防火墻
firewalld過濾,通過區域來進行配置
iptables是一個靜態防火墻,只有滿足條件他才會觸發
firewalld是動態防火墻
iptables靠規則
firewalld靠區域
firewalld的區域:
1.trusted:信任區,所有流量都可以傳入
2.public:公共區域,允許ssh或者dhcpv6-client的流量可以傳入,其他的全部拒絕,也是firewalld的默認區域。
3.dhcpv6-client:獲取ipv6地址的客戶端工具
4.external:外部區域,允許ssh或者dhcpv6-client的流量可以傳入,其他的全部拒絕,默認通過此區域轉發的ipv4流量地址,可以進行偽裝。
5.home:家庭區域,允許ssh或者dhcpv6-client的流量可以傳入,其他的全部拒絕
6.internal:內部區域,默認值與home區域的作用相同
7.work:工作區域。允許ssh或者dhcpv6-client的流量可以傳入,其他的全部拒絕
8.DMZ:隔離區/非軍事區,允許ssh和其他的預定義好的配置,其他的全部拒絕
9.block:限制區,所有流量都會被拒絕
10.drop:丟棄區,所有流量都會丟棄,沒有任何響應
firewalld命令
?
?