Приступ са VPN-а на VLAN: прво матрица, па правила
Улоге са једне стране, услуге са друге. Пет провера претварају нејасан дизајн приступа са VPN-а на VLAN у табелу коју власник заштитног зида може да примени.
Почните од матрице, а не од синтаксе заштитног зида. Табелу са улогама са једне стране и услугама са друге може да прегледа власник апликације, да о њој расправља власник безбедности и да је примени онај ко држи пролаз. Тај преглед је јефтинији од отклањања грешака у правилима око којих се нико није договорио.
Сат писања касније штеди недељу археологије правила. Дизајн говори о томе ко до које услуге стиже, а то је део који преживљава пренумеравање.
Корак 1: именујте улоге пре мрежа
Почните од људи, а не од свича. Запишите сваку групу која се повезује на даљину и једну реченицу која описује шта та група ради, на пример магацинско особље које чита нивое залиха или извођач који одржава једну интеграцију. Ако би две групе добиле исти приступ, за ову сврху оне су једна улога.
Зауставите се овде ако улога постоји само због организационе шеме. Улога без сопствене потребе за услугом постаје ред идентичних ћелија, а идентични редови наводе некога да касније због удобности додели целу подмрежу. Делите по томе шта људи раде, а не по томе ко потписује њихове трошкове. Шест улога је обично превише за малу канцеларију, а три су често тачне.
Корак 2: претворите сваку ћелију у изјаву о услузи
Ћелија у којој пише „Апликације“ није проверљива. Ћелија у којој пише „HTTPS ка ERP домаћину на 443, из базена запослених“ јесте. Замените свако име мреже одредиштем, протоколом и портом, затим додајте зависност без које услуга не ради, као што је интерни резолвер или добављач идентитета.
| Check | Passes when | Stop if |
|---|---|---|
| Destination named | Host and port appear in the cell | Cell names a VLAN or a subnet |
| Direction stated | Initiator and responder are both clear | Cell implies two-way access |
| Dependency listed | DNS or identity path is explicit | Whole infrastructure range is granted |
| Negative case written | At least one denied pair is recorded | Only allow rules exist |
Колона смера хвата најскупље грешке. Дозвола запосленима да отворе апликацију не значи дозволу серверима апликација да отварају везе назад ка преносним рачунарима запослених, а правило са стањем које дозвољава први смер често се чита као дозвола за други.
Корак 3: одлучите где идентитет постаје политика
Неко мора да претвори аутентификовану сесију у улогу коју пролаз може да спроведе. Подржане опције укључују групну политику коју испоручује backend за аутентификацију, поуздане атрибуте сесије или одвојене базене адреса по улози. Све три раде; ознака коју пошаље клијент не. Изаберите механизам који документује ваш пролаз, а не онај који описује објава на форуму.
Додељивање адресе која само изгледа као да припада VLAN-у је исти не-одговор у другом костиму. Netgate водич кроз правила заштитног зида OpenVPN-а чини поделу јасном: дозволити тунелу да се подигне другачија је одлука од дозволе да саобраћај прође кроз њега.
Запишите који механизам сте изабрали и где је конфигурисан. Када се улога промени, та белешка је разлика између једне измене и лова кроз три интерфејса. Она такође каже ревизору где прво да погледа.
Корак 4: пазите на изворну адресу коју види одредиште
Политика прослеђивања мора да се подудара са стварним извором на граници. Ако пролаз преводи VPN клијенте на сопствену адресу, сваки заштитни зид испод види један извор и губи могућност да одлучује по улози. Ако чува адресу клијента, повратни пут мора да постоји за тај базен.
Тестирајте оба смера пре него што напишете коначна правила, затим запишите запажени извор поред сваке ћелије. Покрените исту проверу из две различите улоге и упоредите резултат. Ако обе показују адресу пролаза, разликовање улога је већ изгубљено. Матрица која претпоставља сачуване адресе док пролаз обавља превођење извора пада на првом нижем ACL-у.
Корак 5: тестирајте сваку ћелију пре испоруке
Претворите сваку дозвољену ћелију у једну репрезентативну операцију, а сваку одбијену ћелију у негативан случај. Покрените оба са клијента у стварној улози, а не са конзоле пролаза, јер конзола заобилази пут који тестирате.
# 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'
Негативан случај који се повеже је налаз, а не случајност, и његово место је у матрици као неуспеле ћелије док се правило не поправи. Држите тест команде поред табеле да их следећи рецензент поново покрене уместо да изнова гради резоновање.
Готова табела надживљава пролаз за који је написана. Правила се мењају са фирмвером и добављачем, док ред који каже да извођач стиже до једне пројектне услуге остаје истинит док се тај посао не промени.