Додавањето правило за одбивање и гледањето како отворено преземање продолжува не е грешка во UFW. Правилото што го додадовте стои по правилата што веќе го прифатиле текот, а претходно воспоставената врска продолжува да им одговара. Да се поправи тоа значи вметнување на вистинското место и разбирање што ветуваат претходните правила. Тесната верзија на таа промена следи.

Одлучува редоследот, не постоењето на правилото

UFW е предна страна што ги пишува правилата на netfilter во фази: дел од рамката што се извршува пред корисничките правила, потоа самите кориснички правила, потоа дел што се извршува по нив. Стандардните претходни правила го прифаќаат сообраќајот на воспоставени и поврзани врски, и тие правила се оценуваат пред сето она што ќе додадете со обичен allow или deny. Референцата за команди на UFW ја документира синтаксата за вметнување и нумерираниот приказ на состојбата од кои зависи оваа промена.

Тој редослед го објаснува изненадувањето. Вашето ново правило е вистинско и е во вистинската табела, но не е првата одлука со која се среќава пакетот. Врска што веќе се следи како воспоставена никогаш не стигнува до него.

За оваа работа користете route правила, бидејќи пакетот се препраќа низ портата наместо да биде адресиран до нејзините сопствени служби. Влезно правило би го филтрирало погрешниот сообраќај и би изгледало како да не прави ништо.

Вметнете го над широкото дозволување

Прегледајте го вметнувањето пред да го примените и потврдете дека правилото не постои веќе на друго место во списокот. Умножувањето на идентична политика го прави подоцнежното отстранување двосмислено, а оној што ќе ја отстрани погрешната копија нема да го забележи со недели.

sudo ufw --dry-run route insert 1 deny in on tun0 proto tcp from 10.88.0.55/32 to 192.0.2.88/32

Ако прегледот покажува точно едно правило на очекуваната позиција, примените ја истата команда без ознаката dry-run. Позицијата 1 го става над пошироките кориснички дозволи, а не над правилата на рамката разгледани претходно. Потврдете дека името на интерфејсот одговара на тунелскиот уред на оваа порта, бидејќи правило врзано за интерфејс што повеќе не постои ќе стои во списокот и ќе изгледа исправно, а нема да одговара на ништо. Преименувајте ја референцата за уредот пред да го примените, не откако тестот ќе пропадне.

Во тоа правило нема одредишна порта, па тоа ги одбива сите TCP порти на таа адреса, а не само HTTPS. Ако намерата е една служба, наведете ја портата; правило пошироко од политиката е иден инцидент што го чека својот прв читател.

Ограничете го изворот на една адреса само ако таа адреса е врзана за предвидениот идентитет. VPN-базен со динамично доделување утре може да ја даде истата адреса на друг клиент, а одбивањето ќе ја следи адресата, а не личноста.

Воспоставените текови го преживуваат новото правило

Следењето на врските е причината зошто постојната сесија продолжува. Откако текот ќе се запише како воспоставен, претходните правила ги прифаќаат неговите пакети пред воопшто да се погледне вашето одбивање, и преносот завршува како ништо да не се сменило. Затоа тестирањето со прелистувач што повторно користи отворена врска не ви кажува ништо за новата политика. Одбивањето може да изгледа бескорисно неколку минути по распоредувањето, а да биде целосно ефективно за следниот корисник што ќе се поврзе.

Ако барањето вклучува пресекување на живиот сообраќај, оваа промена на корисничко правило не може да го обезбеди. Отповикувањето на следената состојба е одделна акција со сопствен радиус на влијание и ѝ припаѓа на сопственикот на огнениот ѕид, а не на тој што го додал правилото. Испразнувањето на сите врски на порта за да исчезне една сесија е вид поправка што создава втор инцидент.

Запомнете ги и границите. Ова правило не кажува ништо за ICMP, UDP или IPv6, па успешен ping не е доказ дека одбивањето не успеало. Една IPv4 адреса исто така не е веб-страница: името може да се реши во повеќе адреси, а покриена е само онаа што ја наведовте.

Тестирајте со свеж тек

Прочитајте ги нумерираните кориснички правила и ефективниот суров приказ, потоа отворете нова врска од избраниот клиент:

sudo ufw status numbered
sudo ufw show raw
# from 10.88.0.55, a new TCP connection to 192.0.2.88 should fail

Суровиот приказ е важен затоа што status ги изоставува правилата на рамката напишани рачно, па редоследот може да изгледа поинаку од она што го спроведува јадрото. Споредете ги двете пред да заклучите дека правило е на погрешно место.

Потоа проверете ги двете контроли што докажуваат дека правилото е тесно, а не широко: дозволената одредишна страна од истиот клиент уште работи, а втор клиент уште стигнува до одбиената одредишна страна ако неговата политика тоа го дозволува. Одбивање што ги крши двата теста е промена на политиката, а не насочена мерка.

Кога тестот ќе заврши, отстранете го само правилото што го додадовте, повторувајќи го точно. Ако политиката е трајна, предајте ја на сопственикот на огнениот ѕид со идентитетот на клиентот, сопственикот на одредишната страна и датум на преглед, за да не остави преназначената тунелска адреса заостанато одбивање.

Поврзани статии