Anza na matrix, si kwa sintaksia ya firewall. Jedwali lenye majukumu upande mmoja na huduma upande mwingine linaweza kupitiwa na mmiliki wa programu, kujadiliwa na mmiliki wa usalama na kutekelezwa na yeyote anayeshikilia lango. Ukaguzi huo ni rahisi kuliko kurekebisha kanuni ambazo hakuna aliyekubaliana nazo.

Saa moja ya kuandika huokoa wiki moja ya uchimbuzi wa kanuni baadaye. Muundo unazungumzia nani anafikia huduma gani, na hicho ndicho kipande kinachobaki baada ya kuhesabu upya.

Hatua 1: taja majukumu kabla ya mitandao

Anza na watu, si kwa swichi. Andika kila kundi linaloungana kwa mbali na sentensi moja inayoeleza kundi hilo hufanya nini, kama wafanyakazi wa ghala wanaosoma viwango vya hisa au mkandarasi anayeshughulikia muunganisho mmoja. Ikiwa makundi mawili yangepata ufikiaji sawa, kwa lengo hili ni jukumu moja.

Simama hapa ikiwa jukumu lipo kwa sababu ya chati ya shirika pekee. Jukumu lisilo na hitaji la huduma yake mwenyewe huwa mstari wa seli zinazofanana, na mistari inayofanana huwashawishi wengine baadaye kutoa subnet nzima kwa urahisi. Gawa kwa kile watu wanachofanya, si kwa nani anasaini gharama zao. Majukumu sita kwa kawaida ni mengi kwa ofisi ndogo na matatu mara nyingi ni sawa.

Hatua 2: geuza kila seli kuwa tamko la huduma

Seli iliyoandikwa «Programu» haiwezi kujaribiwa. Seli iliyoandikwa «HTTPS kwa mwenyeji wa ERP kwenye 443, kutoka kundi la wafanyakazi» inaweza kujaribiwa. Badilisha kila jina la mtandao na lengo, itifaki na bandari, kisha ongeza utegemezi ambao huduma haiwezi kufanya kazi bila yake, kama kisuluhishi cha ndani au mtoa utambulisho.

CheckPasses whenStop if
Destination namedHost and port appear in the cellCell names a VLAN or a subnet
Direction statedInitiator and responder are both clearCell implies two-way access
Dependency listedDNS or identity path is explicitWhole infrastructure range is granted
Negative case writtenAt least one denied pair is recordedOnly allow rules exist

Safu ya mwelekeo hunasa makosa ya gharama kubwa. Ruhusa kwa wafanyakazi kufungua programu haimaanishi ruhusa kwa seva za programu kufungua miunganisho kurudi kwenye kompyuta za mkononi za wafanyakazi, na kanuni yenye hali inayoruhusu mwelekeo wa kwanza mara nyingi husomwa kana kwamba inaruhusu wa pili.

Hatua 3: amua wapi utambulisho unakuwa sera

Mtu lazima abadilishe kipindi kilichothibitishwa kuwa jukumu ambalo lango linaweza kulitekeleza. Chaguo zinazoungwa mkono ni pamoja na sera ya kundi itolewayo na backend ya uthibitishaji, sifa za kipindi zinazoaminika, au madimbwi tofauti ya anwani kwa kila jukumu. Yote matatu yanafanya kazi; lebo inayotumwa na mteja haifanyi kazi. Chagua utaratibu unaoandikwa na lango lako, si ule unaoelezwa na chapisho la jukwaa.

Kutoa anwani inayoonekana tu kuwa ya VLAN ni jibu lisilo sawa katika vazi lingine. Mwongozo wa Netgate kuhusu kanuni za firewall za OpenVPN hufanya utenganishaji uwe wazi: kuruhusu handaki lipande ni uamuzi tofauti na kuruhusu trafiki ipite ndani yake.

Andika utaratibu uliouchagua na mahali ulipowekwa. Jukumu linapobadilika, dokezo hilo ni tofauti kati ya uhariri mmoja na uwindaji kupitia violesura vitatu. Pia humweleza mkaguzi wapi aangalie kwanza.

Hatua 4: angalia anwani chanzo inayoonekana na lengo

Sera ya upelekaji lazima ilingane na chanzo halisi kwenye mpaka. Ikiwa lango hutafsiri wateja wa VPN kwenda anwani yake, kila firewall ya chini huona chanzo kimoja na hupoteza uwezo wa kuamua kwa jukumu. Ikiwa linahifadhi anwani ya mteja, njia ya kurudi lazima iwepo kwa dimbwi hilo.

Jaribu mielekeo yote miwili kabla ya kuandika kanuni za mwisho, kisha andika chanzo kilichozingatiwa kando ya kila seli. Endesha ukaguzi huo huo kutoka majukumu mawili tofauti na linganisha matokeo. Ikiwa yote mawili yanaonyesha anwani ya lango, utofautishaji wa majukumu umekwisha potea. Matrix inayodhani anwani zimehifadhiwa wakati lango likifanya tafsiri ya chanzo hushindwa kwenye ACL ya kwanza ya chini.

Hatua 5: jaribu kila seli kabla ya kutoa

Geuza kila seli iliyoruhusiwa kuwa operesheni moja wakilishi na kila seli iliyokataliwa kuwa kesi hasi. Endesha zote mbili kutoka kwa mteja aliye katika jukumu halisi, si kutoka konsoli ya lango, kwa sababu konsoli hupita njia unayojaribu.

# allowed: staff role reaches the ERP endpoint
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://erp.internal.example/health

# denied: the same role must not reach a management host
nc -vz -w 3 10.30.5.11 22

# observed source address at the destination
sudo tcpdump -ni any 'tcp port 443 and host 10.30.20.15'

Kesi hasi inayoungana ni ugunduzi, si bahati, na mahali pake kwenye matrix ni seli iliyoshindwa hadi kanuni irekebishwe. Weka amri za jaribio kando ya jedwali ili mkaguzi anayefuata azirudie badala ya kujenga hoja upya.

Jedwali lililokamilika huishi muda mrefu kuliko lango lililoandikiwa. Kanuni hubadilika pamoja na firmware na msambazaji, wakati safu inayosema mkandarasi anafikia huduma moja ya mradi inabaki kweli hadi kazi hiyo ibadilike.

Makala zinazohusiana