全套學(xué)習(xí)資料移步至公眾號【學(xué)神來啦】
本節(jié)所講內(nèi)容:
??18.1 ?OSI七層模型和TCP/IP四層模型
??18.2 ?linux網(wǎng)絡(luò)相關(guān)的調(diào)試命令
??18.3 ?實(shí)戰(zhàn)-局域網(wǎng)中使用?awl偽裝MAC地址進(jìn)行SYN?Flood
18.1 ?OSI七層模型和TCP/IP四層模型
18.1.1 ?OSI七層參考模型降淮,TCP/IP四層參考模型
OSI七層模型:OSI(Open System Interconnection)開放系統(tǒng)互連參考模型是國際標(biāo)準(zhǔn)化組織(ISO)制定的一個(gè)用于計(jì)算機(jī)或通信系統(tǒng)間互聯(lián)的標(biāo)準(zhǔn)體系篓冲。
TCP/IP四層模型:TCP/IP參考模型是計(jì)算機(jī)網(wǎng)絡(luò)的祖父ARPANET和其后繼的因特網(wǎng)使用的參考模型。
分層作用:方便管理
七層模型優(yōu)點(diǎn):????[CCNA]
1、把復(fù)雜的網(wǎng)絡(luò)劃分成為更容易管理的層(將整個(gè)龐大而復(fù)雜的問題劃分為若干個(gè)容易處理的小問題)
2、沒有一個(gè)廠家能完整的提供整套解決方案和所有的設(shè)備,協(xié)議.
3外邓、獨(dú)立完成各自該做的任務(wù),互不影響古掏,分工明確损话,上層不關(guān)心下層具體細(xì)節(jié),分層同樣有益于網(wǎng)絡(luò)排錯(cuò)
功能與代表設(shè)備
分層名字功能工作在該層的設(shè)備
7應(yīng)用層提供用戶界面QQ槽唾,IE?丧枪。應(yīng)用程序
6表示層表示數(shù)據(jù),進(jìn)行加密等處理QQ庞萍,IE?拧烦。應(yīng)用程序
5會話層將不同應(yīng)用程序的數(shù)據(jù)分離QQ,IE?钝计。應(yīng)用程序
4傳輸層提供可靠或不可靠的傳輸恋博,在重傳前執(zhí)行糾錯(cuò)防火墻
3網(wǎng)絡(luò)層提供邏輯地址,路由器使用它們來選擇路徑三層交換機(jī)私恬、路由器
2數(shù)據(jù)鏈路層將分組拆分為字節(jié)债沮,并將字節(jié)組合成幀,使用MAC地址提供介質(zhì)訪問本鸣,執(zhí)行錯(cuò)誤檢測疫衩,但不糾錯(cuò)二層交換機(jī),網(wǎng)卡
1物理層在設(shè)備之間傳輸比特永高,指定電平隧土,電纜速度和電纜針腳集線器
為什么現(xiàn)代網(wǎng)絡(luò)通信過程中用TCP/IP四層模型,而不是用OSI七層模型呢命爬?
OSI七層模型是理論模型曹傀,一般用于理論研究,他的分層有些冗余饲宛,實(shí)際應(yīng)用皆愉,選擇TCP/IP的四層模型。而且 OSI 自身也有缺陷,大多數(shù)人都認(rèn)為 OSI 模型的層次數(shù)量與內(nèi)容可能是最佳的選擇幕庐,其實(shí)并非如此久锥,其中會話層和表示層幾乎是空的,而數(shù)據(jù)鏈路層和網(wǎng)絡(luò)層包含內(nèi)容太多异剥,有很多的子層插入瑟由,每個(gè)子層都有不同的功能。
18.1.2 ?常見網(wǎng)絡(luò)相關(guān)的協(xié)議
ARP(Address Resolution Protocol):地址解析協(xié)議冤寿,將IP解析成MAC地址
地址解析協(xié)議歹苦,即ARP(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的協(xié)議督怜。主機(jī)發(fā)送信息時(shí)將包含目標(biāo)IP地址的ARP請求廣播到網(wǎng)絡(luò)上的所有主機(jī)殴瘦,并接收返回消息,以此確定目標(biāo)的物理地址号杠;收到返回消息后將該IP地址和物理地址存入本機(jī)ARP緩存中并保留一定時(shí)間蚪腋,下次請求時(shí)直接查詢ARP緩存以節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個(gè)主機(jī)互相信任的基礎(chǔ)上的姨蟋,網(wǎng)絡(luò)上的主機(jī)可以自主發(fā)送ARP應(yīng)答消息屉凯,其他主機(jī)收到應(yīng)答報(bào)文時(shí)不會檢測該報(bào)文的真實(shí)性就會將其記入本機(jī)ARP緩存;由此攻擊者就可以向某一主機(jī)發(fā)送偽ARP應(yīng)答報(bào)文芬探,使其發(fā)送的信息無法到達(dá)預(yù)期的主機(jī)或到達(dá)錯(cuò)誤的主機(jī)神得,這就構(gòu)成了一個(gè)ARP欺騙(網(wǎng)絡(luò)執(zhí)法官軟件的工作原理就是arp欺騙)厘惦。
DNS:域名解析協(xié)議 www.baidu.com
SNMP(Simple Network Management Protocol)簡單網(wǎng)絡(luò)管理協(xié)議
DHCP(Dynamic Host Configuration Protocol)動態(tài)主機(jī)配置協(xié)議偷仿,它是在TCP/IP網(wǎng)絡(luò)上使客戶機(jī)獲得配置信息的協(xié)議
FTP(File Transfer Protocol)文件傳輸協(xié)議,它是一個(gè)標(biāo)準(zhǔn)協(xié)議宵蕉,是在計(jì)算機(jī)和網(wǎng)絡(luò)之間交換文件的最簡單的方法酝静。
HTTP(Hypertext Transfer Protocol ):超文本傳輸協(xié)議
HTTPS(Secure Hypertext Transfer Protocol):安全超文本傳輸協(xié)議,它是由Netscape開發(fā)并內(nèi)置于其瀏覽器中羡玛,用于對數(shù)據(jù)進(jìn)行壓縮和解壓操作.
ICMP(Internet Control Message Protocol):Internet控制信息協(xié)議,互聯(lián)網(wǎng)控制報(bào)文協(xié)議
ping ?ip定義消息類型有:TTL超時(shí)别智、地址的請求與應(yīng)答、信息的請求與應(yīng)答稼稿、目的地不可到達(dá)
SMTP(Simple Mail Transfer Protocol):簡單郵件傳送協(xié)議
TELNETProtocol:虛擬終端協(xié)議
TFTP(Trivial File Transfer Protocol):小文件傳輸協(xié)議
UDP(User Datagram Protocol):用戶數(shù)據(jù)報(bào)協(xié)議薄榛,它是定義用來在互連網(wǎng)絡(luò)環(huán)境中提供包交換的計(jì)算機(jī)通信的協(xié)議
TCP(Transmission Control Protocol):傳輸控制協(xié)議,是一種面向連接的让歼、可靠的敞恋、基于字節(jié)流的傳輸層通信協(xié)議 ?log轉(zhuǎn)發(fā):開啟一個(gè)協(xié)議:tcp(三次握手和四次揮手)
面試時(shí)經(jīng)常會問道的問題 TCP和UPD的區(qū)別:
TCP協(xié)議和UDP協(xié)議的區(qū)別
(1)TCP協(xié)議:TCP(Transmission Control Protocol,傳輸控制協(xié)議)是面向連接的協(xié)議谋右,在收發(fā)數(shù)據(jù)前硬猫,必須和對方建立可靠的連接。
(2)UDP協(xié)議:UDP 是User Datagram Protocol的簡稱, 中文名是用戶數(shù)據(jù)報(bào)協(xié)議啸蜜,是一種無連接的傳輸層協(xié)議坑雅,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)
總結(jié):TCP與UDP的區(qū)別:
1.基于連接與無連接;
2.對系統(tǒng)資源的要求(TCP較多衬横,UDP少)裹粤;
3.UDP程序結(jié)構(gòu)較簡單;UDP信息包的標(biāo)題很短蜂林,只有8個(gè)字節(jié)蛹尝,相對于TCP的20個(gè)字節(jié)信息包的額外開銷很小。所以傳輸速度可更快
4.TCP保證數(shù)據(jù)正確性悉尾,UDP可能丟包突那;TCP保證數(shù)據(jù)順序,UDP不保證构眯。
場景:視頻愕难,語音通訊使用udp,或網(wǎng)絡(luò)環(huán)境很好惫霸,比如局域網(wǎng)中通訊可以使用udp猫缭。 ?udp數(shù)據(jù)傳輸完整性,可以通過應(yīng)用層的軟件算法來校對就可以了壹店。
tcp傳文件猜丹,數(shù)據(jù)完整性要求高。
18.1.3 ?TCP和UDP 常用端口號名稱
(1)TCP 端口分配
端口號 服務(wù)? 服務(wù)描述
21ftp文件傳輸服務(wù)
22ssh安全遠(yuǎn)程連接服務(wù)
23telnet遠(yuǎn)程連接服務(wù)
25smtp電子郵件服務(wù)
53DNS域名解析服務(wù)硅卢,有tcp53也有用udp53端口傳輸
80httpweb服務(wù)
443https安全web服務(wù)
如果你不知道哪個(gè)端口對應(yīng)哪個(gè)服務(wù)怎么辦射窒?如873端口是哪個(gè)服務(wù)的?
[root@xuegod63 ~]#vim /etc/services??#此文件中,包含所有常見端口號及服務(wù)名稱
#此文件可以查看常用端口對應(yīng)的名字将塑。iptables或netstat要把端口解析成協(xié)議名時(shí)脉顿,都需要使用到這個(gè)文件。另外后期xinetd服務(wù)管理一些小服務(wù)時(shí)点寥,也會使用到此文件來查詢對應(yīng)的小服務(wù)端口號艾疟。
注:有的服務(wù)是UDP和TCP端口都會監(jiān)聽的
18.1.4 ?IP地址分類
IP地址分5類,常見的地址是A敢辩、B蔽莱、C?三類
A類地址:范圍從0-127,0是保留的并且表示所有IP地址戚长,而127也是保留的地址盗冷,并且是用于測試環(huán)回口用的。因此A類地址的可用的范圍其實(shí)是從1-126之間历葛。子網(wǎng)掩碼:255.0.0.0
A類地址:A類地址的網(wǎng)絡(luò)位由第一組8位二進(jìn)制數(shù)表示正塌,主機(jī)位由后3組8位二進(jìn)制數(shù)表示
例 1.0.0.0 這個(gè)A類ip地址
1是網(wǎng)絡(luò)位嘀略,0.0.0是主機(jī)位,A類地址是大型網(wǎng)絡(luò)乓诽,含126個(gè)網(wǎng)段帜羊,每個(gè)網(wǎng)段主機(jī)數(shù)大約允許有1670萬臺主機(jī),通常分配給擁有大量主機(jī)的網(wǎng)絡(luò)(如主干網(wǎng))
B類地址:范圍從128-191鸠天,如172.168.1.1讼育,以子網(wǎng)掩碼來進(jìn)行區(qū)別:255.255.0.0
B類地址:B類地址的網(wǎng)絡(luò)位由前2組8位二進(jìn)制數(shù)表示,主機(jī)位由后2組8位二進(jìn)制數(shù)表示
例 128.255.0.0 這個(gè)B類IP 地址
128.255是網(wǎng)絡(luò)位稠集,0.0是主機(jī)位奶段,B類地址是中型網(wǎng)絡(luò),含16384個(gè)網(wǎng)段剥纷,每個(gè)網(wǎng)段允許有65534臺主機(jī)痹籍,適用于結(jié)點(diǎn)比較多的網(wǎng)絡(luò)(如區(qū)域網(wǎng))。
C類地址:范圍從192-223晦鞋,以子網(wǎng)掩碼來進(jìn)行區(qū)別: 255.255.255.0
C類地址:C類地址的網(wǎng)絡(luò)位由前3組8位二進(jìn)制數(shù)表示蹲缠,主機(jī)位由后1組8位二進(jìn)制數(shù)表示
例 192.255.255.0 這個(gè)C類IP地址
192.255.255是網(wǎng)絡(luò)位,0是主機(jī)位悠垛,C類地址是小型網(wǎng)絡(luò)线定,允許有254臺主機(jī),適用于結(jié)點(diǎn)比較少的網(wǎng)絡(luò)(如校園網(wǎng))确买。
D類地址:范圍從224-239斤讥,被用在多點(diǎn)廣播(Multicast)中。多點(diǎn)廣播地址用來一次尋址一組計(jì)算機(jī)湾趾,它標(biāo)識共享同一協(xié)議的一組計(jì)算機(jī)芭商。
E類地址:范圍從240-254,為將來使用保留撑帖。
ABC 3類中私有IP地址范圍:
A:10.0.0.0--10.255.255.255 ?子網(wǎng)掩碼為255.0.0.0 ?或用 /8 表示(網(wǎng)絡(luò)位8位二進(jìn)制數(shù))
B: ?172.16.0.0--172.31.255.255 ?子網(wǎng)掩碼為?255.255.0.0 或用 /16 表示???????
C: ?192.168.0.0--192.168.255.255 ?子網(wǎng)掩碼為?255.255.255.0 或用 /24 表示
ping 127.0.0.1 可以ping通蓉坎。ping 127.23.23.23?可以ping通嗎?
結(jié)論:這個(gè)127這個(gè)網(wǎng)段都用于環(huán)回口
ipv4 ??ipv6
18.2 ?linux網(wǎng)絡(luò)相關(guān)的調(diào)試命令
18.2.1 ?查看網(wǎng)卡物理連接是否正常
[root@xuegod63 ~]# ?nmcli device status
DEVICE ?????TYPE ?????STATE ??CONNECTION
ens33 ??????ethernet ? 連接的? ens33 ????
virbr0 ??????bridge ??? 連接的 ?? virbr0 ????
lo ??????????loopback ?未托管? -- ????????
virbr0-nic ??tun ???????未托管 ?? -- ????????
查看IP相關(guān)信息
ifconfig命令被用于配置和顯示Linux內(nèi)核中網(wǎng)絡(luò)接口的網(wǎng)絡(luò)參數(shù)胡嘿。
[root@xuegod63 ~]# ifconfig
常見的一些網(wǎng)絡(luò)接口
eth0 ..... eth4 ... 以太網(wǎng)接口(linux6)
waln0 ?????? 無線接口
eno177776? 以太網(wǎng)接口 (centos7)
ens33? 以太網(wǎng)接口(centos7)
ens160 ???????????以太網(wǎng)接口(centos8)
bond0 ?team0 網(wǎng)卡綁定接口
virbr0? 虛擬交換機(jī)橋接接口
br0? ? 虛擬網(wǎng)橋接口
lo? ? 本地回環(huán)接口
vnet0? KVM虛擬機(jī)網(wǎng)卡接口
18.2.2 ?修改網(wǎng)卡IP地址
方法1:手工修改網(wǎng)卡配置文件
[root@xuegod63 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet#設(shè)置類型是以太網(wǎng)設(shè)備,如圖:
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none# 參數(shù):static靜態(tài)IP 或dhcp 或none無(不指定)钳踊,如是none衷敌,配上IP地址和static效果一樣
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33#網(wǎng)卡名字
UUID=c713acec-674b-411d-9e61-646482a292ca#UUID 每個(gè)網(wǎng)上設(shè)備都不一樣
DEVICE=ens33#設(shè)備名字,在內(nèi)核中識別的名字
ONBOOT=yes#啟用該設(shè)備拓瞪,如果no缴罗,表示不啟動此網(wǎng)絡(luò)設(shè)備
IPADDR=192.168.1.63#IP地址
PREFIX=24#子網(wǎng)掩碼,24相當(dāng)于255.255.255.0
GATEWAY=192.168.1.1#默認(rèn)網(wǎng)關(guān)
DNS1=114.114.114.114#首選DNS地址
DNS2=223.5.5.5#備用DNS地址
DNS3=8.8.8.8 ???#備用DNS地址
IPV6_PRIVACY=no?
PEERDNS=no ?#啟用DHCP后即會更改/etc/resolv.conf祭埂,PEERNDS=no則不會修改resolv.conf
修改完成使配置生效(在修改配置文件后面氓,需要運(yùn)行nmcli con reload使NetworkManager讀取配置文件更改兵钮。接口依然需要重新啟動,以便修改生效):
[root@xuegod63 ~]#?nmcli connection reload
[root@xuegod63 ~]#?nmcli connection down ens33
[root@xuegod63 ~]#?nmcli connection up ens33
[root@xuegod63 ~]# systemctl restart network
[root@xuegod63 ~]# ifdown ens33 && ifup ens33
例1: 給虛擬機(jī)再添加一個(gè)網(wǎng)卡舌界,并手動成生網(wǎng)卡配置文件
[root@xuegod63 ~]# init 0
添加一塊網(wǎng)卡
新加的網(wǎng)卡掘譬,也使用橋接模式。
[root@xuegod63 ~]# ifconfig -a? # -a查看所有網(wǎng)絡(luò)設(shè)備呻拌,包括沒有啟動的網(wǎng)卡設(shè)備
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
葱轩。。藐握。
ens38: flags=4163 ?mtu 1500
注:我這里顯示第二塊網(wǎng)卡名字是ens38靴拱,你那邊可能不是。這是由內(nèi)核識別出來的
默認(rèn)新增加的網(wǎng)卡沒有配置文件猾普,現(xiàn)在手動添加一個(gè)
[root@xuegod63 ~]# cd /etc/sysconfig/network-scripts/
[root@xuegod63 network-scripts]# cp ifcfg-ens33 ifcfg-ens38
[root@xuegod63 network-scripts]# vim ifcfg-ens38? #修改內(nèi)容
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens38
UUID=c713acec-674b-411d-9e61-646482a292ca???#這一行刪除掉
DEVICE=ens38
ONBOOT=yes
IPADDR=192.168.1.68???#改成68 IP(自定義進(jìn)行修改)
PREFIX=24
GATEWAY=192.168.1.1
DNS1=114.114.114.114
IPV6_PRIVACY=no
PEERDNS=no
[root@xuegod63 network-scripts]# systemctl restart network
使用nmcli命令查看網(wǎng)卡UUID
[root@xuegod63 ~]# nmcli con
NAME ??UUID ?????????????????????????????????TYPE ?????DEVICE
ens33 ?fcdcc4d4-65a4-42ec-8325-86f66aad5071 ?ethernet ?ens33 ?
ens37 ?a40a9de1-6c41-3c6a-9f8c-e2c6741d2dca ?ethernet ?ens37
CentOS8添加網(wǎng)卡后配置文件使用nmcli命令生成:
[root@xuegod63 ~]#?nmcli con add con-name ens37 type ethernet ifname ens37
#上面命令為接口ens37添加一個(gè)新連接ens37袜炕,此連接將使用DHCP獲取IP地址并在系統(tǒng)啟動后自動連接。配置文件的名稱基于con-name選項(xiàng)的值ens37初家,并保存到/etc/sysconfig/network-scripts/ifcfg-ens37文件妇蛀。
方法2:[root@xuegod63~]# nmtui-edit ???#字符界面配IP(了解不建議使用)
例1:啟動關(guān)閉指定網(wǎng)卡:
[root@xuegod63 ~]# ifconfig ens38?down
[root@xuegod63 ~]# ifconfig?
[root@xuegod63 ~]# ifconfig ens38 up
例2:臨時(shí)配置IP地址
[root@xuegod63 ~]# ifconfig ens38 192.168.1.90
或
[root@xuegod63 ~]# ifconfig ens38 192.168.1.90 netmask 255.255.255.0
例3:給一個(gè)網(wǎng)絡(luò)臨時(shí)配置多個(gè)IP地址
[root@xuegod63 ~]# ifconfig ens33:1 ?192.168.1.3 netmask 255.255.255.0
[root@xuegod63 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> ?mtu 1500
?。笤成。评架。
ens33:1: flags=4163 ?mtu 1500
????inet 192.168.1.3 netmask 255.255.255.0 ?broadcast 192.168.1.255
注:臨時(shí)ip沒有什么太大用處,臨時(shí)ip因?yàn)闆]有網(wǎng)關(guān)炕泳,dns等配置信息纵诞,無法訪問外網(wǎng),只有內(nèi)網(wǎng)可以互相ping通培遵,要想訪問外網(wǎng)還需要添加網(wǎng)關(guān)等信息浙芙,如route add default gw 192.168.1.1,這樣做不如直接寫入配置文件更方便籽腕。
centos7使用 systemctl restart NetworkManager命令使用臨時(shí)ip嗡呼,使用systemctl restart network或ifdown ens33 && ifup ens33都會恢復(fù)真實(shí)IP。
18.2.3 ?查看端口的監(jiān)聽狀態(tài)
netstat 命令: 查看系統(tǒng)中網(wǎng)絡(luò)連接狀態(tài)信息皇耗, ??
常用的參數(shù)格式 : ?netstat -anutp??
-a, --all??顯示本機(jī)所有連接和監(jiān)聽的端口
-n, --numeric ???don't resolve names??以數(shù)字形式顯示當(dāng)前建立的有效連接和端口
-u ?顯示udp協(xié)議連接
-t ?顯示tcp協(xié)議連接
-p, --programs???顯示連接對應(yīng)的PID與程序名
Proto===連接協(xié)議的種類
Recv-Q====接收到字節(jié)數(shù)
Send-Q====從本服務(wù)器南窗,發(fā)出去的字節(jié)數(shù)
Local Address====本地的IP地址,可以是IP郎楼,也可以是主機(jī)名
Foreign Address====遠(yuǎn)程主機(jī)的IP 地址
網(wǎng)絡(luò)連接狀態(tài)STATE:
CLOSED?:?初始(無連接)狀態(tài)万伤。
LISTEN?:??偵聽狀態(tài),等待遠(yuǎn)程機(jī)器的連接請求呜袁。
ESTABLISHED:?完成TCP三次握手后敌买,主動連接端進(jìn)入ESTABLISHED狀態(tài)。此時(shí)阶界,TCP連接已經(jīng)建立虹钮,可以進(jìn)行通信聋庵。
TIME_WAIT?:??在TCP四次揮手時(shí),主動關(guān)閉端發(fā)送了ACK包之后芙粱,進(jìn)入TIME_WAIT狀態(tài)祭玉,等待最多MSL時(shí)間,讓被動關(guān)閉端收到ACK包宅倒。
擴(kuò)展:MSL
MSL攘宙,即Maximum Segment Lifetime,一個(gè)數(shù)據(jù)分片(報(bào)文)在網(wǎng)絡(luò)中能夠生存的最長時(shí)間拐迁,在RFC 793中定義MSL通常為2分鐘蹭劈,即超過兩分鐘即認(rèn)為這個(gè)報(bào)文已經(jīng)在網(wǎng)絡(luò)中被丟棄了。對于一個(gè)TCP連接线召,在雙方進(jìn)入TIME_WAIT后铺韧,通常會等待2倍MSL時(shí)間后,再關(guān)閉掉連接缓淹,作用是為了防止由于FIN(最后一個(gè)揮手包)報(bào)文丟包哈打,對端重發(fā)導(dǎo)致與后續(xù)的TCP連接請求產(chǎn)生順序混亂
實(shí)戰(zhàn):服務(wù)器上有大量TIME_WAIT連接,如何優(yōu)化TCP連接讯壶,快速釋放tcp連接 料仗?
[root@iZ2zee35aswj00xgdqoanhZ ~]# netstat ?-antup | grep ??TIME_WAIT?
tcp ???????0 ?????0 123.57.82.225:80 ???111.196.245.241:4002 ???????TIME_WAIT ??-
tcp ???????0 ?????0 123.57.82.225:80 ???111.196.245.241:3970 ???????TIME_WAIT ??-
tcp ???????0 ?????0 123.57.82.225:80 ???111.196.245.241:4486 ???????TIME_WAIT ??-
tcp ???????0 ?????0 123.57.82.225:80 ???111.196.245.241:3932 ???????TIME_WAIT ??-
……..
解決:
例:linux下默認(rèn)MSL等待時(shí)間是60秒
[root@xuegod63 ipv4]# cat /proc/sys/net/ipv4/tcp_fin_timeout
60?秒
[root@xuegod63 ipv4]# echo 30 >?/proc/sys/net/ipv4/tcp_fin_timeout??#通過縮短時(shí)間time_wait時(shí)間來快速釋放鏈接
不要看就這樣一個(gè)參數(shù),Linux內(nèi)核調(diào)優(yōu)伏蚊,就是由這樣一個(gè)一個(gè)參數(shù)累積起來的立轧。
修改主機(jī)名配置文件,作用:設(shè)置主機(jī)名永久生效
[root@xuegod63 ~]# vim ?/etc/hostname
xuegod63.cn
[root@xuegod63 ~]# hostnamectl set-hostname 主機(jī)名
配置IP與主機(jī)名(域名)的對應(yīng)關(guān)系躏吊。
[root@xuegod63 ~]# vim?/etc/hosts??#優(yōu)先級高于DNS解析
127.0.0.1 ??localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 ????????localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.63 ??xuegod63.cn
192.168.1.64 ??xuegod64.cn
192.168.1.62???xuegod62.cn
Windows中的位置
C:\Windows\System32\drivers\etc\hosts
18.2.4 ?配置DNS-路由相關(guān)信息
DNS配置的配置文件
[root@xuegod63 ~]# cat?/etc/resolv.conf
# Generated by NetworkManager
search cn
nameserver 114.114.114.114?
注:在centos5/6版本氛改,配置DNS用這個(gè)文件。在centos6以后比伏,直接在網(wǎng)卡配置文件中指定:DNS1=192.168.1.1
默認(rèn)情況下胜卤,域名解析順序: 本地hosts文件-》DNS查詢
是不是一定先解析hosts再解析DNS?
本機(jī)域名解析順序
[root@xuegod63 ~]# vim /etc/nsswitch.conf???#查找以下內(nèi)容 hosts
#hosts: ????db files nisplus nis dns
hosts: ?????files dns myhostname ??#可以看到是先查看 files hosts文件赁项,再查看DNS的
查看路由信息:
[root@xuegod63 ~]# route ?-n
Kernel IP routing table
Destination ????Gateway ????????Genmask ????????Flags Metric Ref ???Use Iface
192.168.1.0 ????0.0.0.0 ????????255.255.255.0???????U ????0 ?????0 ???????0 eth0
169.254.0.0 ????0.0.0.0 ????????255.255.0.0 ????????U ????1002 ??0 ???????0 eth0
0.0.0.0 ????????192.168.1.1 ????0.0.0.0 ???UG ???0 ?????0 ???????0 eth0
注:0.0.0.0 ????????192.168.1.1 ????0.0.0.0 ??#前面0.0.0.0表示匹配任何網(wǎng)段葛躏,后面0.0.0.0表示匹配所有主機(jī),這行就是默認(rèn)網(wǎng)關(guān)
參數(shù):? -n? :不要使用通訊協(xié)定或主機(jī)名稱肤舞,直接使用 IP 或 port number紫新;
route命令輸出的路由表字段含義如下:
Destination 目標(biāo)??:The destination network or destination host. 目標(biāo)網(wǎng)絡(luò)或目標(biāo)主機(jī)。
Gateway 網(wǎng)關(guān)??:網(wǎng)關(guān)地址李剖,如果是本地網(wǎng)段IP,就顯示0.0.0.0
Genmask ?:子網(wǎng)掩碼??
添加/刪除路由條目:
[root@linux ~]# route add [-net|-host] [網(wǎng)域或主機(jī)] netmask [mask] [gw|dev]
[root@linux ~]# route del [-net|-host] [網(wǎng)域或主機(jī)] netmask [mask] [gw|dev]
增加 (add) 與刪除 (del) 路由的相關(guān)參數(shù):
? -net? ? :表示后面接的路由為一個(gè)網(wǎng)域囤耳;
? -host? :表示后面接的為連接到單部主機(jī)的路由篙顺;
? netmask :與網(wǎng)域有關(guān)偶芍,可以設(shè)定 netmask 決定網(wǎng)域的大小德玫;
? gw? ? ? :gateway 的簡寫匪蟀,后續(xù)接的是 IP 的數(shù)值喔,與 dev 不同宰僧;
? dev? ? :如果只是要指定由那一塊網(wǎng)路卡連線出去材彪,則使用這個(gè)設(shè)定,后面接 eth0 等
例:
添加/刪除路由條目:
添加路由(把Linux做成路由器時(shí)或服務(wù)器有多個(gè)網(wǎng)卡琴儿,指定到不同網(wǎng)段走哪個(gè)網(wǎng)卡)
實(shí)戰(zhàn)場景:多個(gè)網(wǎng)卡段化,多個(gè)網(wǎng)段,實(shí)現(xiàn)不同數(shù)據(jù)走不同網(wǎng)卡造成。如果網(wǎng)絡(luò)管理和生產(chǎn)數(shù)據(jù)分開管理显熏。
比如生產(chǎn)數(shù)據(jù)走1.0網(wǎng)段,網(wǎng)絡(luò)管理走2.0網(wǎng)段晒屎,網(wǎng)絡(luò)管理數(shù)據(jù)不走生產(chǎn)或?qū)ν馓峁┓?wù)的網(wǎng)段喘蟆,這樣也不會亂(前提你得有多個(gè)網(wǎng)卡)
[root@xuegod63 ~]# ?route add -net 192.168.2.0 netmask 255.255.255.0 dev ens38
[root@xuegod63 ~]# route -n
Kernel IP routing table
Destination ????Gateway ????????Genmask ????????Flags Metric Ref ???Use Iface
0.0.0.0 ????????192.168.1.1 ????0.0.0.0 ????????UG ???100 ???0 ???????0 ens33
0.0.0.0 ????????192.168.1.1 ????0.0.0.0 ????????UG ???101 ???0 ???????0 ens38
192.168.1.0 ????0.0.0.0 ????????255.255.255.0 ??U ????100 ???0 ???????0 ens33
192.168.1.0 ????0.0.0.0 ????????255.255.255.0 ??U ????101 ???0 ???????0 ens38
192.168.2.0 ????0.0.0.0 ????????255.255.255.0 ??U ????0 ?????0 ???????0 ens38
刪除路由
[root@xuegod63 ~]# route del -net 192.168.2.0 netmask 255.255.255.0
路由跟蹤
[root@xuegod63 ~]# yum -y install ?traceroute
[root@xuegod63 ~]# traceroute baidu.com
路由跟蹤:查看經(jīng)過多少個(gè)路由器到目標(biāo)網(wǎng)址:
實(shí)戰(zhàn)場景:查看一個(gè)新上線的服務(wù)器www.xuegod.cn,北京用戶需要經(jīng)過多少跳可以到達(dá)服務(wù)器鼓鲁。
ping?命令的一般格式為:
-c數(shù)目在發(fā)送指定數(shù)目的包后停止蕴轨。
-i 秒數(shù)設(shè)定間隔幾秒送一個(gè)網(wǎng)絡(luò)封包給一臺機(jī)器,默認(rèn)值是1秒送1次
-w等待指定時(shí)間后停止ping程序的執(zhí)行骇吭,時(shí)間單位是秒橙弱。
[root@xuegod63 ~]# ping -i 0.01 -c 20 192.168.1.1
大寫的I參數(shù),網(wǎng)絡(luò)界面:
使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包绵跷,即192.168.1.63是發(fā)出ping命令的主機(jī)IP地址膘螟,baidu.com是被ping的地址。
[root@xuegod63 ~]# ping -I 192.168.1.63 baidu.com -w 3
當(dāng)IP地址沖突后或有網(wǎng)關(guān)沖突后碾局,在windows下有這個(gè)荆残,在linux怎么辦?
arping大寫I
[root@xuegod63 ~]# arping -I ens33 192.168.100.1 ?
ARPING 192.168.1.1 from 192.168.1.74 ens33
Unicast reply from 192.168.1.1 [94:0B:19:46:3D:C8] ?1.824ms
Unicast reply from 192.168.1.1 [94:0B:19:46:34:41] ?2.564ms
ping向一個(gè)網(wǎng)關(guān)净当,mac地址都是一樣的内斯,說明正常,但是mac地址不一樣
同一個(gè)ip地址解析出2個(gè)mac地址像啼,那么就有人冒充網(wǎng)關(guān)了俘闯。
網(wǎng)絡(luò)執(zhí)法官利用ARP欺騙原理使被攻擊的電腦無法上網(wǎng),使該電腦無法找到網(wǎng)關(guān)的MAC地址
watch
作用:實(shí)時(shí)監(jiān)測命令的運(yùn)行結(jié)果忽冻,可以看到所有變化數(shù)據(jù)包的大小
-d??高亮顯示變化的區(qū)域(指令信息不同之處)
-n??指定指令執(zhí)行的間隔時(shí)間(秒)
例1:每隔1秒高亮顯示ens33網(wǎng)卡相關(guān)信息
[root@xuegod63 ~]# watch -d -n 1 'ifconfig ens33'
每秒顯示ens33網(wǎng)卡信息真朗,RXpackets接收到的數(shù)據(jù)包, TXpackets發(fā)送出的數(shù)據(jù)包
18.3 ?實(shí)戰(zhàn)-局域網(wǎng)中使用?awl偽裝MAC地址進(jìn)行SYN Flood?
http://ssa.yundun.com/cc?云盾全球?qū)崟r(shí)攻防圖 ?
現(xiàn)在學(xué)得是第一階段中的內(nèi)容僧诚,這個(gè)案例是讓你開眼界遮婶!
18.3.1 ?tcp三次握手及tcp連接狀態(tài)
TCP報(bào)文段的首部格式:
需要了解的信息:
ACK?: TCP協(xié)議規(guī)定蝗碎,只有ACK=1時(shí)有效,也規(guī)定連接建立后所有發(fā)送的報(bào)文的ACK必須為1
SYN(SYNchronization) : 在連接建立時(shí)用來同步序號旗扑。當(dāng)SYN=1而ACK=0時(shí)蹦骑,表明這是一個(gè)連接請求報(bào)文。對方若同意建立連接臀防,則應(yīng)在響應(yīng)報(bào)文中使SYN=1和ACK=1. 因此,? SYN置1就表示這是一個(gè)連接請求或連接接受報(bào)文眠菇。
synchronization ?[?s??kr?na?'ze??n]??同步
FIN?(finis)即完,終結(jié)的意思袱衷, 用來釋放一個(gè)連接捎废。當(dāng) FIN = 1 時(shí),表明此報(bào)文段的發(fā)送方的數(shù)據(jù)已經(jīng)發(fā)送完畢祟昭,并要求釋放連接缕坎。
finis ??['fa?n?s]??終結(jié)
建立tcp連接時(shí)的tcp三次握手和斷開tcp連接時(shí)的4次揮手整體過程說明圖:
實(shí)戰(zhàn)1:使用tcpdump抓包查看tcp三次握手過程
tcp三次握手過程:
Client:我可以給你發(fā)數(shù)據(jù)嗎?
Server:可以
Client:好的
三次握手的核心是: 確認(rèn)每一次包的序列號篡悟。
tcp三次握手過程:
1谜叹、首先由Client發(fā)出請求連接即 SYN=1,聲明自己的序號是 seq=x
2搬葬、然后Server 進(jìn)行回復(fù)確認(rèn)荷腊,即 SYN=1 ,聲明自己的序號是 seq=y, 并設(shè)置為ack=x+1,
3急凰、最后Client 再進(jìn)行一次確認(rèn)女仰,設(shè)置??ack=y+1.
tcpdump抓包命令常用參數(shù):
-c???????? 指定包個(gè)數(shù)
-n??????? IP,端口用數(shù)字方式顯示
port指定端口
如何產(chǎn)生tcp的鏈接抡锈?
在xuegod63上登錄xuegod64疾忍,抓取ssh遠(yuǎn)程登錄xuegod64時(shí),產(chǎn)生的tcp三次握手包:
[root@xuegod63 ~]# ifconfig ens38 down
[root@xuegod63 ~]#tcpdump -i ens33 host 192.168.1.64 and port 22 -c 3 -n
打開另一個(gè)終端床三,開始建立tcp連接:
[root@xuegod63 Desktop]# ssh root@192.168.1.64
The authenticity of host '192.168.1.64 (192.168.1.64)' can't be established.
RSA key fingerprint is b2:29:c8:62:98:80:92:3c:e2:67:3f:f0:7c:40:69:63.
Are you sure you want to continue connecting (yes/no)????#到這里就不用執(zhí)行了一罩,tcp已經(jīng)建立連接
查看數(shù)據(jù)包:
[root@xuegod63 ~]#tcpdump -i ens33 host 192.168.1.64 and port 22 -c 3 -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
10:34:54.874512 IP192.168.1.63.59528 > 192.168.1.64.ssh: Flags [S],seq 2421809005, win 29200, options [mss 1460,sackOK,TS val 2231108 ecr 0,nop,wscale 7], length 0
10:34:54.876367 IP192.168.1.64.ssh > 192.168.1.63.59528: Flags [S.],seq 4293815945,ack 2421809006, win 28960, options [mss 1460,sackOK,TS val 542827 ecr 2231108,nop,wscale 7], length 0
10:34:54.877387 IP192.168.1.63.59528 > 192.168.1.64.ssh: Flags [.],ack 1, win 229, options [nop,nop,TS val 2231111 ecr 542827], length 0
注:Flags?[S]??中的 S 表示為SYN包為1
client主機(jī)返回ACK,包序號為ack=1 撇簿,這是相對序號聂渊,如果需要看絕對序號,可以在tcpdump命令中加-S
[root@xuegod63 ~]#tcpdump -i ens33 host 192.168.1.64 and port 22 -c 3 -n ?-S
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
16:00:54.310316 IP192.168.1.63.57528 > 192.168.1.64.ssh: Flags?[S], seq 1932774705,win 14600, options [mss 1460,sackOK,TS val 5103659 ecr 0,nop,wscale 7], length 0
16:00:54.311072 IP192.168.1.64.ssh>192.168.1.63.57528: Flags[S.],seq 3006844046,ack 1932774706, win 14480, options [mss 1460,sackOK,TS val 3869455 ecr 5103659,nop,wscale 7], length 0
16:00:54.311175 IP192.168.1.63.57528 > 192.168.1.64.ssh: Flags [.],ack 3006844047,win 115, options [nop,nop,TS val 5103660 ecr 3869455], length 0
3 packets captured
3 packets received by filter
0 packets dropped by kernel
TCP三次握手連接狀態(tài)詳解:
TCP連接狀態(tài)詳解:
服務(wù)器端:LISTEN:偵聽來自遠(yuǎn)方的TCP端口的連接請求
客戶端:SYN-SENT:在發(fā)送連接請求后等待匹配的連接請求
服務(wù)器端:SYN-RECEIVED:在收到和發(fā)送一個(gè)連接請求后等待對方對連接請求的確認(rèn)
客戶端/服務(wù)器端:ESTABLISHED:代表一個(gè)打開的連接
18.3.2 ?實(shí)戰(zhàn):局域網(wǎng)中使用?awl偽裝IP地址進(jìn)行SYN?Flood
SYN洪水攻擊概述:SYN洪水攻擊主要源于: tcp協(xié)議的三次握手機(jī)制
SYN洪水攻擊的過程:
在服務(wù)端返回一個(gè)確認(rèn)的SYN-ACK包的時(shí)候有個(gè)潛在的弊端四瘫,如果發(fā)起的客戶是一個(gè)不存在的客戶端汉嗽,那么服務(wù)端就不會接到客戶端回應(yīng)的ACK包。
這時(shí)服務(wù)端需要耗費(fèi)一定的數(shù)量的系統(tǒng)內(nèi)存來等待這個(gè)未決的連接找蜜,直到等待超時(shí)關(guān)閉饼暑,才能施放內(nèi)存。
如果惡意者通過通過ip欺騙,發(fā)送大量SYN包給受害者系統(tǒng)撵孤,導(dǎo)致服務(wù)端存在大量未決的連接并占用大量內(nèi)存和tcp連接迈着,從而導(dǎo)致正辰咄客戶端無法訪問服務(wù)端邪码,這就是SYN洪水攻擊的過程。
下載地址:https://gitlab.com/davical-project/awl/tags
在xuegod63 安裝awl軟件進(jìn)行攻擊:
通過xshell上傳awl-0.2.tar.gz到Linux系統(tǒng)中
開始安裝awl(需要使用centos7.6版本系統(tǒng)) ??
[root@xuegod63 ~]#tar xvf awl-0.2.tar.gz ?#解壓
[root@xuegod63 ~]#cd awl-0.2
[root@xuegod63 awl-0.2]#./configure ??# 查檢軟件包安裝環(huán)境
[root@xuegod63 awl-0.2]#make??-j ?4 ??
#make ?把源代碼編譯成可執(zhí)行的二進(jìn)制文件
# -j 4以4個(gè)進(jìn)程同時(shí)編譯咬清,速度快
[root@xuegod63 awl-0.2]#make install???#安裝
查看安裝的命令:
[root@xuegod63 awl-0.2]# which awl
/usr/local/bin/awl
在xuegod64上搭建一臺web服務(wù)器闭专,模擬要被攻擊的服務(wù)器
[root@xuegod64 ~]# yum install httpd -y??#安裝web服務(wù)器
[root@xuegod64 ~]# systemctl start httpd
[root@xuegod64 ~]# curl?192.168.100.63
[root@xuegod64?~]# iptables -F
開始攻擊:
實(shí)戰(zhàn)4: 在局域網(wǎng)中使用?awl偽裝IP地址進(jìn)行多線程SYN攻擊
獲取對方的IP地址解析成MAC地址
[root@xuegod63 ~]# ping 192.168.1.64
[root@xuegod63 ~]# arp -n
Address ?????????????????HWtype ?HWaddress ??????????Flags Mask ???????????Iface
192.168.1.17 ????????????ether ??e0:b9:a5:ac:c5:76 ???????C ????????????????????eth0
192.168.1.64 ????????????ether ??00:0c:29:57:f5:b5????????C ????????????????????eth0
開始攻擊:
awl參數(shù)如下:
-i 發(fā)送包的網(wǎng)卡接口,如果省略默認(rèn)是eth0
-m 指定目標(biāo)mac地址 ???注:如果-m沒有指定mac,默認(rèn)目標(biāo)MAC地址是“FF.FF.FF.FF.FF.FF”旧烧,
FF.FF.FF.FF.FF.FF ?MAC地址是什么影钉?
這表示向同一網(wǎng)段內(nèi)的所有主機(jī)發(fā)出ARP廣播,進(jìn)行SYN攻擊掘剪,還容易使整個(gè)局域網(wǎng)癱瘓平委。
-d 被攻擊機(jī)器的IP
-p 被攻擊機(jī)器的端口
兩臺機(jī)器:
[root@xuegod63 ~]# iptables -F
[root@xuegod63 ~]# awl -i ens33 -m目標(biāo)mac-d目標(biāo)ip-p 80
5秒鐘?ctlr?+c 停止
測試攻擊效果:
在xuegod64上查看:發(fā)現(xiàn)很多偽裝成公網(wǎng)的IP在攻擊我們
更多學(xué)習(xí)資料移步公眾號【學(xué)神來啦】