Брандмауэр синтаксисінен емес, матрицадан бастаңыз. Бір жағында рөлдер, екінші жағында қызметтер бар кестені қолданба иесі қарап шыға алады, қауіпсіздік иесі талқылай алады, ал шлюзді ұстаған адам жүзеге асыра алады. Бұл қарау ешкім келіспеген ережелерді жөндеуден арзанырақ.

Оны жазуға жұмсалған бір сағат кейін бір апталық ережелер археологиясын үнемдейді. Жоба кім қай қызметке жететінін айтады, ал қайта нөмірлеуден кейін сол бөлік қалады.

1-қадам: рөлдерді желілерден бұрын атаңыз

Адамдардан бастаңыз, коммутатордан емес. Қашықтан қосылатын әр топты және сол топтың не істейтінін сипаттайтын бір сөйлемді жазыңыз, мысалы қор деңгейін оқитын қойма қызметкерлері немесе бір интеграцияны ұстап тұрған мердігер. Егер екі топ бірдей қатынау алса, осы мақсат үшін олар бір рөл.

Егер рөл тек ұйымдық схемаға байланысты болса, осы жерде тоқтаңыз. Өзіндік қызмет қажеттілігі жоқ рөл бірдей ұяшықтар қатарына айналады, ал бірдей қатарлар біреуді кейін ыңғайлылық үшін бүкіл қосалқы желіні беруге итермелейді. Адамдар не істейтініне қарай бөліңіз, олардың шығынына кім қол қоятынына қарай емес. Шағын кеңсе үшін алты рөл әдетте көп, ал үшеуі жиі дұрыс.

2-қадам: әр ұяшықты қызмет мәлімдемесіне айналдырыңыз

«Қолданбалар» деп жазылған ұяшықты тексеруге болмайды. «443 портындағы ERP хостқа HTTPS, қызметкерлер пулынан» деп жазылған ұяшықты тексеруге болады. Әр желі атауын меже, хаттама және портпен ауыстырыңыз, содан кейін қызмет онсыз жұмыс істей алмайтын тәуелділікті қосыңыз, мысалы ішкі шешуші немесе сәйкестік провайдері.

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

Бағыт бағаны ең қымбат қателерді ұстайды. Қызметкерлерге қолданбаны ашуға рұқсат қолданба серверлеріне қызметкерлердің ноутбуктарына кері байланыс ашуға рұқсат дегенді білдірмейді, ал бірінші бағытқа рұқсат беретін күйлі ереже жиі екіншісіне де рұқсат ретінде оқылады.

3-қадам: сәйкестік қай жерде саясатқа айналатынын шешіңіз

Біреу аутентификацияланған сессияны шлюз қолдана алатын рөлге айналдыруы керек. Қолдау көрсетілетін нұсқаларға аутентификацияның backend-і беретін топтық саясат, сенімді сессия атрибуттары немесе әр рөлге жеке мекенжай пулдары кіреді. Үшеуі де жұмыс істейді; клиент жіберетін белгі жұмыс істемейді. Шлюзіңіз құжаттайтын механизмді таңдаңыз, форум жазбасы сипаттайтынды емес.

Тек VLAN-ға тиесілі болып көрінетін мекенжайды беру — басқа киімдегі сол жауапсыздық. OpenVPN брандмауэр ережелері туралы Netgate нұсқаулығы бұл ажыратуды айқындайды: туннельдің көтерілуіне рұқсат беру оның ішінен трафиктің өтуіне рұқсат беруден өзге шешім.

Қай механизмді таңдағаныңызды және оның қайда конфигурацияланғанын жазыңыз. Рөл өзгергенде, сол жазба бір өңдеу мен үш интерфейстен іздеу арасындағы айырма. Ол аудиторға да алдымен қайда қарауды айтады.

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'

Қосылатын теріс жағдай — бұл табылған ақау, кездейсоқтық емес, және ереже түзелгенше оның орны матрицада сәтсіз ұяшық. Тест командаларын кестенің қасында ұстаңыз, келесі шолушы пайымдауды қайта құрмай, оларды қайта іске қоссын.

Дайын кесте өзі жазылған шлюзден ұзақ өмір сүреді. Ережелер микробағдарламамен және жеткізушімен бірге өзгереді, ал мердігердің бір жоба қызметіне жететінін айтатын жол сол жұмыс өзгергенше шын болып қалады.

Қатысты мақалалар