溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

網(wǎng)絡(luò) 攻 擊 肆虐-給你的網(wǎng)絡(luò)設(shè)備來套防彈衣吧!

發(fā)布時(shí)間:2020-06-15 17:03:46 來源:網(wǎng)絡(luò) 閱讀:28813 作者:姜汁啤酒 欄目:安全技術(shù)

網(wǎng)絡(luò) 攻 擊 者 無處不在

2018年1月,大家仍像往常一樣忙忙碌碌,IT設(shè)備機(jī)房內(nèi)設(shè)備轟隆隆的風(fēng)扇聲嘈雜而響亮,一切看似那么正常。
可是,如果換個(gè)視角看看設(shè)備里面的數(shù)字世界,風(fēng)景完全不同。數(shù)據(jù)包暗流涌動(dòng),爭先恐后搶著到達(dá)世界的盡頭。
俗話說,有人的地方就有江湖。而被人操控的網(wǎng)絡(luò)世界,免不了殺機(jī)四伏。
網(wǎng)絡(luò) 攻  擊 肆虐-給你的網(wǎng)絡(luò)設(shè)備來套防彈衣吧!
看看上面這張圖,這可不是我個(gè)人PS上去的×××圖。它是實(shí)實(shí)在在的世界級的網(wǎng)絡(luò) 攻 擊 流量圖。各式各樣的***流量跨越國界影響著每一臺互聯(lián)網(wǎng)設(shè)備。

在個(gè)人電腦難逃網(wǎng)絡(luò) 攻 擊 魔爪的情況下,網(wǎng)絡(luò)設(shè)備怎能獨(dú)善其身??

根本不可能,網(wǎng)絡(luò)設(shè)備也是 攻 擊 者的目標(biāo)之一,而且是重要目標(biāo),除非你把電源線拔了。
這就好比打蛇打七寸, 攻 擊 者如果想制造大范圍的互聯(lián)網(wǎng)故障,拿下網(wǎng)絡(luò)設(shè)備相比嘗試攻克各個(gè)終端目標(biāo)劃算得多。

老板,給我的網(wǎng)絡(luò)設(shè)備來套防彈衣!

怎么避免被×××者者攻陷,做安全加固??!有本事咱就給它套上一個(gè)金鐘罩鐵布衫,刀槍不入。

網(wǎng)絡(luò)設(shè)備安全加固怎么做?

常見的做法:

我相信很多朋友腦海里面首先浮現(xiàn)的是采用類似ACL訪問控制列表的方法,只允許信任的管理員訪問管理設(shè)備,限制特定的協(xié)議等。

  1. 路由器或交換機(jī)接口配置ACL允許特定流量。
  2. 限制特定網(wǎng)段使用SSH、HTTPS等訪問設(shè)備。

這就夠了么?

1.如何限制網(wǎng)絡(luò)設(shè)備的帶內(nèi)帶外安全?
2.如何只允許特定源地址連接設(shè)備協(xié)議,如BGP等?
3.是否關(guān)閉了不必要的網(wǎng)絡(luò)服務(wù)?
4.是否正確配置了設(shè)備日志記錄,記錄設(shè)備登陸記錄以及其他網(wǎng)絡(luò)管理痕跡?
5.配置是否定期保存,以免意外故障發(fā)生?

我是土豪,找第三方安全公司做安全掃描。

或者,如果你是土財(cái)主,可以直接找第三方安全公司做安全掃描,并根據(jù)評估報(bào)告進(jìn)行整頓。但是會花費(fèi)一筆不小的費(fèi)用。

我是動(dòng)手族,自己干,一把梭!

其實(shí),除了花錢,我們還可以選擇自己動(dòng)手解決問題,一方面節(jié)約了公司成本,也鍛煉了個(gè)人技能。這么好的事情,何樂而不為呢?
網(wǎng)絡(luò) 攻  擊 肆虐-給你的網(wǎng)絡(luò)設(shè)備來套防彈衣吧!
故此,為了滿足部分葛朗臺土豪的需求,認(rèn)真貫徹自己動(dòng)手,豐衣足食的精神。本文特地總結(jié)了一套網(wǎng)絡(luò)設(shè)備安全加固的思維方法,供大家參考。

拋磚引玉,以Juniper為例一步步教你網(wǎng)絡(luò)設(shè)備安全加固。

既然要討論網(wǎng)絡(luò)設(shè)備加固,我們需要以一個(gè)特定的產(chǎn)品來作為展示對象, 因?yàn)楸救碎L期使用Juniper設(shè)備,就以其產(chǎn)品為例給大家講述。

同時(shí),需要說明的是,以下內(nèi)容并不僅是局限在Juniper設(shè)備,大家除了了解Juniper的加固方式以外,最重要的是理解這一套思維方法,并應(yīng)用到你身邊對應(yīng)的廠商設(shè)備。

基本功:確保設(shè)備軟件沒有重大bug并安裝廠商建議的OS操作系統(tǒng)

實(shí)時(shí)關(guān)注系統(tǒng)bug

這一步尤其重要,但是又極其容易被忽略。
蒼蠅不叮無縫蛋,網(wǎng)絡(luò) 攻 擊 亦然。如果 攻 擊 者只是盯著大家都會去關(guān)注的網(wǎng)絡(luò)安全,例如嘗試碰運(yùn)氣telnet登錄設(shè)備等。那這個(gè)***者水平就值得懷疑了。
所以真正的 攻 擊 者,是 攻 擊 那些他知道而你不知道的系統(tǒng)Bug漏洞。很顯然,實(shí)時(shí)掌握系統(tǒng)bug漏洞非常有必要,就拿我自己來說。我隔一小段時(shí)間就要去看看當(dāng)前Juniper設(shè)備運(yùn)行的JUNOS軟件是否爆出重大bug,然后提出修補(bǔ)建議。(領(lǐng)導(dǎo)會覺得你很高瞻遠(yuǎn)矚,漲工資哦?。?/p>

如何查看JUNOS系統(tǒng)漏洞
方法一:查看Juniper網(wǎng)站bug庫: https://kb.juniper.net/InfoCenter/index?page=content&channel=SECURITY_ADVISORIES
方法二:查閱Juniper網(wǎng)站Problem Search 軟件bug庫:https://prsearch.juniper.net

通過定期查閱你所使用的JUNOS系統(tǒng)Bug信息并根據(jù)Juniper建議采取相關(guān)措施,從而大大避免因?yàn)橄到y(tǒng)bug從而導(dǎo)致網(wǎng)絡(luò)癱瘓的問題。

安裝廠商建議的OS操作系統(tǒng)

這一步非常好理解,一般情況網(wǎng)絡(luò)設(shè)備廠商會建議你使用某個(gè)版本的OS系統(tǒng)。它是根據(jù)廠商統(tǒng)計(jì)以及客戶反饋匯總后,廠商認(rèn)為此版本系統(tǒng)相對較穩(wěn)定,bug相對較少。

Juniper廠商建議OS系統(tǒng)匯總
https://kb.juniper.net/InfoCenter/index?page=content&id=KB21476&actp=METADATA

肉身都保不住了,還談什么靈魂:設(shè)備物理安全

什么是物理設(shè)備安全,物理設(shè)備安全包含但不僅限于如下:

  1. 設(shè)備物理環(huán)境安全。
  2. 設(shè)備實(shí)際端口、接口安全。
  3. 設(shè)備顯示屏安全。

設(shè)備物理環(huán)境安全

網(wǎng)絡(luò)設(shè)備一般都安裝于機(jī)房特定機(jī)架上。但是如果機(jī)房安全環(huán)境較差,隨時(shí)可以有人員進(jìn)入機(jī)房挪動(dòng)已經(jīng)在網(wǎng)的網(wǎng)絡(luò)設(shè)備,或者實(shí)施斷電,插拔線纜等操作。那其他的一切安全問題都是浮云。

正如戀愛中的女孩總是給男孩說:“如果連基本的安全感你都給不了我,還談個(gè)屁的愛情??!”

所以,工程師們,給你們的網(wǎng)絡(luò)設(shè)備買套好點(diǎn)的“房子”,給他們點(diǎn)安全感吧。例如我之前OOB文章《構(gòu)建帶外OOB網(wǎng)絡(luò)》中提到的,采用機(jī)架門鎖+感應(yīng)器的方式保障設(shè)備安全。

設(shè)備端口安全

Console 接口安全

Console接口作為設(shè)備的管理接口。論重要性,沒有任何其他帶內(nèi)帶外管理方式能夠與之相提并論。

日常運(yùn)維中,總免不了需要去現(xiàn)場通過console調(diào)試設(shè)備。當(dāng)工程師用console登陸設(shè)備以后,往往忘了logout登出系統(tǒng)。而是直接拔出console線。其危害是,其他人員可以隨后插線通過console登陸設(shè)備無需任何驗(yàn)證,直接使用前一位用戶的權(quán)限通過console對網(wǎng)絡(luò)設(shè)備執(zhí)行各種操作。
換而言之,假如前一位工程師使用root賬戶登陸,那隨后的 攻 擊 者同樣也處于root模式下,可以隨時(shí)對設(shè)備進(jìn)行離線,重啟,關(guān)機(jī)等重大操作。

安全設(shè)置建議
1.開啟logout-on-disconnect功能,拔除console線以后直接登出當(dāng)前用戶。
[edit system ports]
GingerBeer@Juniper# set console log-out-on-disconnect

2.禁止console接口上使用root賬戶登陸。
[edit system ports]
GingerBeer@Juniper# set console insecure
3.使狠招:關(guān)閉console接口。在某些特定情況,例如在無法保證設(shè)備的物理環(huán)境安全的情況下,為了避免有人惡意使用console猜測密碼或者執(zhí)行其他任務(wù),可以直接關(guān)閉console接口。
[edit system ports]
GingerBeer@Juniper# set console disable

輔助接口以及設(shè)備板卡診斷接口安全

Auxiliary Port 輔助接口
輔助接口,一般情況下沒幾個(gè)人用。它主要有兩個(gè)功能。第一是可以連接一個(gè)外界modem,通過modem撥號后連接遠(yuǎn)端場所,遠(yuǎn)端可以通過此modem管理設(shè)備。輔助接口有時(shí)候可以作為第二個(gè)console使用。
既然大家平時(shí)都不用,所以最好把它關(guān)閉。以Junos為例,Junos默認(rèn)情況下是關(guān)閉了Auxiliary接口,雖然配置里面看不出來。但是從安全角度出發(fā),可以顯式配置關(guān)閉Auxiliary輔助接口。

顯式關(guān)閉輔助接口
[edit system ports]
GingerBeer@Juniper# set auxiliary disable

板卡診斷接口
對于高端路由器或者交換機(jī)而言,一般會存在兩個(gè)Routing Engine路由引擎卡,兩個(gè)交換矩陣板卡,多個(gè)業(yè)務(wù)板卡。
而就在交換矩陣板卡上,會存在一個(gè)類似于路由引擎的console接口的東西。其意義為若有一些故障需要從板卡層面診斷的話,可以通過連接交換板卡的診斷口來收集信息。
從安全角度而言,診斷接口一般沒有密碼。對你沒看錯(cuò),沒-有-密-碼。
以Juniper為例,某些SCB,SSB,SFM,F(xiàn)EB卡會存在此診斷接口。從安全角度,我們應(yīng)該給他設(shè)置密碼驗(yàn)證。

診斷接口設(shè)置密碼驗(yàn)證
設(shè)置方法如下:
[edit system]
GingerBeer@Juniper# set diag-port-authentication plain-text-password
New password: <password>
Retype new password: <password>
[edit system]

GingerBeer@Juniper# set pic-console-authentication plain-text-password
New password: <password>
Retype new password: <password>
[edit system]
GingerBeer@Juniper#

USB接口安全

USB提供了便捷的文件傳輸和存儲擴(kuò)展,基于你的安全需求,你可以考慮關(guān)閉它。
[edit chassis]
GingerBeer@Juniper# show
usb {
storage {
disable;
}
}
[edit chassis]
GingerBeer@Juniper#

設(shè)備顯示屏安全
這一點(diǎn)很有趣,在某些交換機(jī)上,會有一個(gè)小小的LCD的單色屏幕,旁邊一般會有幾個(gè)小小的按鈕??蓜e小看了這個(gè)LCD顯示屏。通過這個(gè)屏幕可以執(zhí)行一些基本的系統(tǒng)維護(hù)和控制功能,例如離線板卡,重置系統(tǒng)配置等。所以若不常用其功能,我們可以選擇關(guān)閉LCD屏幕的操作功能。

鎖掉LCD屏幕操作功能,只許看,不許摸!
[edit]
GingerBeer@Juniper# set chassis craft-lockout

讓系統(tǒng)變得簡單,關(guān)閉不必要的服務(wù)

總的來說,類似于路由器,交換機(jī)甚至防火墻等設(shè)備。其安全性要高于服務(wù)器,原因在于網(wǎng)絡(luò)設(shè)備一般默認(rèn)開啟的服務(wù)遠(yuǎn)遠(yuǎn)少于服務(wù)器。
既然做安全加固,就需要一種雞蛋里面挑骨頭的精神,讓我們來看看在網(wǎng)絡(luò)設(shè)備上還能關(guān)閉什么不必要的服務(wù)。

關(guān)閉自動(dòng)安裝配置服務(wù)

很多Juniper設(shè)備初始環(huán)境下,為了迎合自動(dòng)化需求,例如大批量配置設(shè)備。默認(rèn)是開啟了自動(dòng)安裝配置功能。從安全角度來說,如果你不需要此功能,可以選擇關(guān)閉它。

關(guān)閉自動(dòng)安裝
[edit]
GingerBeer@Juniper# delete system autoinstallation

僅限Juniper SRX,關(guān)閉從USB自動(dòng)安裝
[edit]
GingerBeer@Juniper# set system autoinstallation usb disable

關(guān)閉ICMP重定向

ICMP重定向是路由器向IP數(shù)據(jù)包的發(fā)送者發(fā)送的通知,以通知他們到達(dá)特定目標(biāo)主機(jī)或網(wǎng)絡(luò)的更好方式。 收到重定向后,源設(shè)備應(yīng)修改其路由的方式,然后通過路由器建議的下一跳發(fā)送后續(xù)數(shù)據(jù)包。
攻 擊 者可以利用ICMP重定向的特性,向路由器發(fā)送大量的非最優(yōu)路由的數(shù)據(jù)包,促使路由器返回成千上萬的ICMP重定向,從而實(shí)現(xiàn)DDOS***。
可是,在一個(gè)設(shè)計(jì)良好的網(wǎng)絡(luò)環(huán)境里面,是不需要也不應(yīng)該出現(xiàn)ICMP重定向的信息,為此我們可以關(guān)閉它。
同其他廠商類似,Juniper的Junos默認(rèn)是開啟ICMP重定向的。

關(guān)閉ICMP重定向
[edit]
GingerBeer@Juniper# set system no-redirects

禁止TCP惡意flag以及TCP 探測

TCP惡意flag
先說說TCP惡意flag,大家知道正常TCP協(xié)商流程會用到SYN或FIN flag標(biāo)記,SYN用于TCP建立,而FIN用于TCP會話拆除。
但是沒有哪一個(gè)正常數(shù)據(jù)包會同時(shí)把SYN和FIN放到標(biāo)記flag里面,因?yàn)檫壿嬍敲軟_突的。
可是,有人就會故意人為制造此數(shù)據(jù)包,并通過發(fā)送大量的無效數(shù)據(jù)包來制造DOS 攻 擊 ,并獲悉目標(biāo)設(shè)備的操作系統(tǒng)信息等。
我們可以配置JUNOS丟棄同時(shí)含有SYN和FIN字段的無效數(shù)據(jù),不做回應(yīng)。
配置如下:

{master:0}[edit]
GingerBeer@Juniper# set system internet-options tcp-drop-synfin-set

TCP探測

攻 擊 者為了探測目標(biāo)網(wǎng)絡(luò)設(shè)備的端口打開范圍和狀態(tài),可以發(fā)送大量的TCP-SYN連接請求,通過查看網(wǎng)絡(luò)設(shè)備的回復(fù)信息來知曉端口打開情況。
在高強(qiáng)度掃描的情況下,網(wǎng)絡(luò)設(shè)備的負(fù)載會增加,并造成DOS 攻 擊 。

**配置JUNOS對未開啟的端口不回復(fù)TCP-RST,從而讓 攻 擊 者無法知曉此端口是否開啟。
{master:0}[edit]
GingerBeer@Juniper# set system internet-options tcp-drop-synfin-set

合理使用LLDP鄰居發(fā)現(xiàn)

LLDP,類似于Cisco的CDP。不過是被IEEE標(biāo)準(zhǔn)化了的鄰居發(fā)現(xiàn)協(xié)議而已。既然是鄰居發(fā)現(xiàn),自然會完全暴露網(wǎng)絡(luò)設(shè)備本身的詳細(xì)信息。所以僅僅在需要的端口上開啟LLDP,是網(wǎng)絡(luò)安全的首選項(xiàng)。
案例如下:

如下案例,默認(rèn)在所有接口關(guān)閉LLDP,除了需要的ge-0/0/0 & ge-0/0/3接口。
[edit]
GingerBeer@Juniper# edit protocols lldp
[edit protocols lldp]
GingerBeer@Juniper# set interface all disable
[edit protocols lldp]
GingerBeer@Juniper# set interface ge-0/0/0.0
[edit protocols lldp]
GingerBeer@Juniper# set interface ge-0/0/3.0

踏雪無痕?門都沒有 - 開啟Syslog日志監(jiān)控用戶活動(dòng)記錄。

對于運(yùn)維人員而言,我們希望能夠看到用戶登錄網(wǎng)絡(luò)設(shè)備以后的一舉一動(dòng),例如哪個(gè)賬號登陸的,登錄以后他都執(zhí)行了哪些命令。
擁有這樣的功能以后,就好似在網(wǎng)絡(luò)設(shè)備上安裝了一個(gè)無形的攝像頭,監(jiān)控登錄用戶的一舉一動(dòng)。同時(shí)也起到了震懾作用。
Juniper的Junos在日志這方面做得非常好,它能夠根據(jù)用戶需求,從所有日志記錄中挑出你需要的信息,并存放到特定文件或者syslog服務(wù)器上。

配置如下:
set system syslog file interactive-commands interactive-commands any
set system syslog file authorization authorization info

查看用戶登陸記錄:
show log authorization

效果如下:
Jan 20 01:17:08 GingerBeer-RTR01 sshd[11590]: (pam_sm_acct_mgmt): DEBUG: PAM_USER: ro
Jan 20 01:17:08 GingerBeer-RTR01 sshd[11590]: (pam_sm_acct_mgmt): DEBUG: PAM_ACTUAL_USER: Gingerbeer
Jan 20 01:17:08 GingerBeer-RTR01 sshd[11590]: Accepted password for Gingerbeer from 1.2.3.4 port 12345 ssh3
Jan 20 01:21:10 GingerBeer-RTR01 sshd[11777]: (pam_sm_acct_mgmt): DEBUG: PAM_USER: ro
Jan 20 01:21:10 GingerBeer-RTR01 sshd[11777]: (pam_sm_acct_mgmt): DEBUG: PAM_ACTUAL_USER: Gingerbeer
Jan 20 01:21:10 GingerBeer-RTR01 sshd[11775]: Accepted keyboard-interactive/pam for Gingerbeer from 12345 port 12345 ssh3
Jan 20 01:21:10 GingerBeer-RTR01 sshd[11775]: Received disconnect from 1.2.3.4: 11: PECL/ssh3 (http://pecl.php.net/packages/ssh3)
Jan 20 01:21:10 GingerBeer-RTR01 sshd[11775]: Disconnected from 1.2.3.4

查看用戶執(zhí)行命令記錄:
show log interactive-commands | last

效果如下:
Jan 20 07:52:30 GingerBeer-RTR01 mgd[30631]: UI_CMDLINE_READ_LINE: User 'Gingerbeer', command 'show interfaces terse '
Jan 20 07:53:03 GingerBeer-RTR01 mgd[30631]: UI_CMDLINE_READ_LINE: User 'Gingerbeer', command 'show route '
Jan 20 07:53:37 GingerBeer-RTR01 mgd[30631]: UI_CMDLINE_READ_LINE: User 'Gingerbeer', command 'show configuration | display set | no-more '
Jan 20 07:53:56 GingerBeer-RTR01 mgd[30631]: UI_CMDLINE_READ_LINE: User 'Gingerbeer', command 'show log interactive-commands | last

自動(dòng)備份設(shè)備配置

網(wǎng)絡(luò)設(shè)備配置,毋庸置疑,最寶貴的資料莫過于它了。我見過很多工程師朋友在網(wǎng)絡(luò)設(shè)備down掉后急的火燒眉毛,就是因?yàn)闆]有定期備份配置。想找設(shè)備頂替都沒辦法。
而在Juniper的Junos中,自動(dòng)備份配置是一件非常簡單的事情。

設(shè)置如下:
[edit system archival configuration]
GingerBeer@Juniper# show
transfer-interval 1440;
archive-sites {
"scp://Gingerbeer@1.2.3.4:/Configs" password "$9$EGCyMCVb1JGnev2aajPf359AO1"; ## SECRET-DATA
}
簡單解讀上述設(shè)置,每隔24小時(shí)此路由器會就通過SCP給1.2.3.4的服務(wù)器發(fā)送當(dāng)前配置。

關(guān)閉不安全的系統(tǒng)服務(wù)

所謂的不安全系統(tǒng)服務(wù),是指那些在傳輸過程中是以明文傳輸。因此極其容易被中間人截獲從而獲取系統(tǒng)登錄權(quán)限等。

例如如下服務(wù):
1.關(guān)閉 Berkeley “r”
[edit system services]
GingerBeer@Juniper# delete rsh
[edit system services]
GingerBeer@Juniper# delete rlogin
2.關(guān)閉 FTP:
[edit system services]
GingerBeer@Juniper# delete ftp
3.關(guān)閉 Finger:
[edit system services]
GingerBeer@Juniper# delete finger
4.關(guān)閉 Telnet:
[edit system services]
GingerBeer@Juniper# delete telnet
5.關(guān)閉 通過HTTP登錄的J-web:
[edit system services]
GingerBeer@Juniper# delete web-management http
6.關(guān)閉 Reverse Telnet:
[edit system services]
GingerBeer@Juniper# delete reverse telnet
7.關(guān)閉 clear-text Junoscript access:
[edit system services]
GingerBeer@Juniper# delete xnm-clear-text
8.關(guān)閉 TFTP server:
[edit system services]
GingerBeer@Juniper# delete tftp-server

設(shè)定用戶登錄參數(shù)。

這一步算是一個(gè)加分項(xiàng),一般情況系統(tǒng)都會有默認(rèn)值。而大家可以根據(jù)自身網(wǎng)絡(luò)的需求修改為特定值。

用戶登陸參數(shù)設(shè)置案例
{master:0}[edit system login retry-options]
GingerBeer@Juniper# show
tries-before-disconnect 3; ##在斷開連接之前最多嘗試3次
backoff-threshold 1; #如果用戶因?yàn)槊艽a登錄失敗一次以后,就會啟動(dòng)用戶登錄等待時(shí)間。
backoff-factor 6; #此處定義了用戶登錄等待時(shí)長。
minimum-time 30; #等待用戶30秒鍵入密碼
maximum-time 60; #當(dāng)用戶ssh或者其他方式登錄設(shè)備時(shí),在用戶未鍵入用戶名和密碼之前,等待60秒。超時(shí)后tcp連接終止。
lockout-period 10; #當(dāng)用戶登陸失敗超出上文限定次數(shù)以后,鎖定用戶名10分鐘。

壓軸大戲,路由引擎保護(hù)設(shè)計(jì)邏輯

以上各項(xiàng)設(shè)置,僅僅起到了保護(hù)部分功能的效果,但是若要全盤保護(hù)整個(gè)路由器。還是得靠一個(gè)復(fù)雜而全面的路由引擎保護(hù)機(jī)制。
別搞些名詞來忽悠人了,還壓軸大戲,說白了不就是套個(gè)ACL訪問列表限制訪問路由引擎的流量么。
哥別急,ACL也有它的高級套路,否則怎么好意思稱之為“設(shè)計(jì)”呢。

設(shè)計(jì)思路解析

首先,我們需要把到達(dá)路由器的流量分為兩大類:


1.管理類流量
2.協(xié)議類流量


其次,分別列出以上兩類流量的所有協(xié)議。
舉例說明:
管理流量,一般為SSH,SNMP,NTP,Radius,ICMP以及traceroute。
由于ACL是非狀態(tài)化的。換而言之,對于路由器發(fā)往外界的流量,也需要有一個(gè)條目來允許其返回流量。例如Radius請求回復(fù)。(很重要)
協(xié)議類流量,一般為OSPF,RIP,BGP?;蛘進(jìn)PLS類的LDP,RSVP等。
根據(jù)協(xié)議端口特性,在條目中寫出開放的源和目標(biāo)端口。


分析完畢以后,讓我們來看個(gè)編寫案例,看案例最實(shí)在了。

Juniper Firewall Policy 編寫案例與解析。

條目注釋:第一條為防止TCP SYN 洪泛 攻 擊 ,首先匹配所有BGP鄰居地址,以及管理地址。然后匹配TCP字段是SYN 或者Fin 或者RST,但是不包含SYN ACK的TCP包,最后用QOS的Policer限制突發(fā)最多100k。

set firewall family inet filter protect-re term synflood-protect from source-prefix-list bgp-neighbors
set firewall family inet filter protect-re term synflood-protect from source-prefix-list mgmt-nets
set firewall family inet filter protect-re term synflood-protect from protocol tcp
set firewall family inet filter protect-re term synflood-protect from tcp-flags "(syn & !ack) | fin| rst"
set firewall family inet filter protect-re term synflood-protect then policer limit-100k
set firewall family inet filter protect-re term synflood-protect then accept
附加配置:
set policy-options prefix-list bgp-neighbors apply-path "protocols bgp group <> neighbor <>"
此命令用于自動(dòng)匹配所有全局下BGP鄰居的IP地址,媽媽再也不用擔(dān)心我需要一個(gè)個(gè)配地址啦!
set policy-options prefix-list ipv4-interfaces apply-path "interfaces <> unit <> family inet address <*>"
此命令用于自動(dòng)匹配路由器設(shè)備上配置的所有IPv4地址。
PS,可能有些朋友對于Junos的這些好玩而高效的特性不太理解,那請移步我之前寫的另外一篇Juniper JUNOS技術(shù)文:回車恐懼癥?13個(gè) JUNOS 技巧助你輕松無憂配置網(wǎng)絡(luò)

條目注釋:第二條為允許隔壁鄰居老王主動(dòng)發(fā)起B(yǎng)GP到此路由器,目標(biāo)地址范圍為所有本地路由器的IP地址。請注意有一條是“destination-port”,目標(biāo)端口179。因?yàn)檫@個(gè)Firewall Policy最終是應(yīng)用于路由引擎的入方向,所以目標(biāo)端口179是朝向路由器本身。

set firewall family inet filter protect-re term allow-bgp from source-prefix-list bgp-neighbors
set firewall family inet filter protect-re term allow-bgp from destination-prefix-list ipv4-interfaces
set firewall family inet filter protect-re term allow-bgp from protocol tcp
set firewall family inet filter protect-re term allow-bgp from destination-port bgp
set firewall family inet filter protect-re term allow-bgp then accept

條目注釋:第三條為允許OSPF協(xié)議

set firewall family inet filter protect-re term allow-ospf from source-prefix-list ipv4-interfaces
set firewall family inet filter protect-re term allow-ospf from destination-prefix-list ospf-allrouters
set firewall family inet filter protect-re term allow-ospf from destination-prefix-list ipv4-interfaces
set firewall family inet filter protect-re term allow-ospf from protocol ospf
set firewall family inet filter protect-re term allow-ospf then accept

條目注釋:第四條為允許SSH協(xié)議,而且通過Policer限速最高10Mbps的SSH流量,正常ssh管理流量一般都不會超過此數(shù)值

set firewall family inet filter protect-re term allow-ssh from source-prefix-list mgmt-nets
set firewall family inet filter protect-re term allow-ssh from protocol tcp
set firewall family inet filter protect-re term allow-ssh from destination-port ssh
set firewall family inet filter protect-re term allow-ssh then policer limit-10m
set firewall family inet filter protect-re term allow-ssh then accept

條目注釋:第五條為允許SNMP協(xié)議,限速1Mbps

set firewall family inet filter protect-re term allow-snmp from source-prefix-list snmp-servers
set firewall family inet filter protect-re term allow-snmp from protocol udp
set firewall family inet filter protect-re term allow-snmp from destination-port snmp
set firewall family inet filter protect-re term allow-snmp then policer limit-1m
set firewall family inet filter protect-re term allow-snmp then accept

條目注釋:第六條為允許NTP協(xié)議,限速32kbps

set firewall family inet filter protect-re term allow-ntp from source-prefix-list ntp-servers
set firewall family inet filter protect-re term allow-ntp from source-prefix-list localhost
set firewall family inet filter protect-re term allow-ntp from protocol udp
set firewall family inet filter protect-re term allow-ntp from destination-port ntp
set firewall family inet filter protect-re term allow-ntp then policer limit-32k
set firewall family inet filter protect-re term allow-ntp then accept

條目注釋:第七條為允許Radius協(xié)議,限速32kbps

set firewall family inet filter protect-re term allow-radius from source-prefix-list radiusservers
set firewall family inet filter protect-re term allow-radius from protocol udp
set firewall family inet filter protect-re term allow-radius from source-port radius
set firewall family inet filter protect-re term allow-radius then policer limit-32k
set firewall family inet filter protect-re term allow-radius then accept

條目注釋:第八條為限制ICMP分片包

set firewall family inet filter protect-re term icmp-frags from is-fragment
set firewall family inet filter protect-re term icmp-frags from protocol icmp
set firewall family inet filter protect-re term icmp-frags then syslog
set firewall family inet filter protect-re term icmp-frags then discard

條目注釋:第九條為允許常見ICMP消息,并限速1Mbps

set firewall family inet filter protect-re term allow-icmp from protocol icmp
set firewall family inet filter protect-re term allow-icmp from icmp-type echo-request
set firewall family inet filter protect-re term allow-icmp from icmp-type echo-reply
set firewall family inet filter protect-re term allow-icmp from icmp-type unreachable
set firewall family inet filter protect-re term allow-icmp from icmp-type time-exceeded
set firewall family inet filter protect-re term allow-icmp then policer limit-1m
set firewall family inet filter protect-re term allow-icmp then accept

條目注釋:第十條為允許常見Traceroute消息,并限速1Mbps

set firewall family inet filter protect-re term allow-traceroute from protocol udp
set firewall family inet filter protect-re term allow-traceroute from destination-port 33434-33523
set firewall family inet filter protect-re term allow-traceroute then policer limit-1m
set firewall family inet filter protect-re term allow-traceroute then accept

條目注釋:第十一條為允許路由器發(fā)起的SSH,BGP能夠被允許返回路由器,正如之前所說,Juniper的Firewall policy就是Cisco 的ACL,是沒有session狀態(tài)化,所以返回路由器的流量還需要明確指定。并限速10Mbps

set firewall family inet filter protect-re term tcp-established from protocol tcp
set firewall family inet filter protect-re term tcp-established from source-port ssh
set firewall family inet filter protect-re term tcp-established from source-port bgp
set firewall family inet filter protect-re term tcp-established from tcp-established
set firewall family inet filter protect-re term tcp-established then policer limit-10m
set firewall family inet filter protect-re term tcp-established then accept

條目注釋:第十二條就很容易理解了,除了以上所有指定的流量,其他流量全部丟棄。不回應(yīng)ICMP unreachable消息。

set firewall family inet filter protect-re term default-deny then log
set firewall family inet filter protect-re term default-deny then syslog
set firewall family inet filter protect-re term default-deny then discard

應(yīng)用策略

在Juniper設(shè)備上,lo0接口設(shè)計(jì)比較巧妙,他除了大家知道例如router-id,或者永不down的接口等常用功能以外。更重要的是,它是通往路由引擎的特殊通道。如果你想限制到達(dá)路由引擎的流量,相比Cisco使用control-plane policy,你只需要在Juniper的lo0上綁定一個(gè)Firewall policy即可。

完成firewall policy的配置以后,讓我們把策略應(yīng)用到還回lo0接口,從而限制了到達(dá)路由引擎的流量。
set interfaces lo0 unit 0 family inet filter input protect-re

其他加固內(nèi)容

除了以上描述的安全加固以外,大家日常工作中應(yīng)該針對路由器上的二層冗余網(wǎng)關(guān)協(xié)議,三層路由協(xié)議以及其他協(xié)議通過md5等密碼加固:
1.設(shè)定VRRP認(rèn)證密碼。
2.設(shè)定OSPF,RIP,BGP認(rèn)證密碼。
3.設(shè)定ldp,rsvp等MPLS協(xié)議認(rèn)證密碼。

總結(jié):

這篇文章,我們一起討論了如何在網(wǎng)絡(luò) 攻 擊 日益猖獗的今天,針對網(wǎng)絡(luò)設(shè)備進(jìn)行安全加固的經(jīng)驗(yàn)分享和案例分析。
當(dāng)然,每一個(gè)設(shè)備廠家對于自身設(shè)備都有相關(guān)的安全加固方法,Juniper的加固方式并不完全適用于Cisco和華為。
但是,我們做網(wǎng)工的,重要的在于思路兩字。配置是不一樣的,但是思路都是相通的。


我話多,還密密麻麻的放了一堆命令行。能看到這里的朋友們耐心可不是一般的好啊,日后必成大器!

網(wǎng)絡(luò) 攻  擊 肆虐-給你的網(wǎng)絡(luò)設(shè)備來套防彈衣吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI