Iptables a filtrovanie návštevnosti od chudobných a lenivých disidentov

Relevantnosť blokovania návštev zakázaných zdrojov sa dotýka každého správcu, ktorý môže byť oficiálne obvinený z nedodržiavania zákonov alebo príkazov príslušných orgánov.

Iptables a filtrovanie návštevnosti od chudobných a lenivých disidentov

Prečo znovu vynájsť koleso, keď existujú špecializované programy a distribúcie pre naše úlohy, napríklad: Zeroshell, pfSense, ClearOS.

Vedenie malo ďalšiu otázku: Má použitý výrobok bezpečnostný certifikát od nášho štátu?

Mali sme skúsenosti s prácou s nasledujúcimi distribúciami:

  • Zeroshell - vývojári dokonca darovali 2-ročnú licenciu, ale ukázalo sa, že distribučná súprava, o ktorú sme mali záujem, pre nás nelogicky plnila kritickú funkciu;
  • pfSense - rešpekt a česť, zároveň nudné, zvykanie si na príkazový riadok firewallu FreeBSD a nie je pre nás dosť pohodlné (myslím, že je to vec zvyku, ale ukázalo sa, že to bola nesprávna cesta);
  • ClearOS – na našom hardvéri sa ukázalo, že je to veľmi pomalé, nemohli sme sa dostať k serióznemu testovaniu, tak prečo také náročné rozhrania?
  • Ideco SELECTA. Produkt Ideco je na samostatnú konverzáciu, zaujímavý produkt, ale z politických dôvodov nie pre nás a chcem ich „prehryznúť“ aj o licencii na rovnaký Linux, Roundcube atď. Odkiaľ prišli na nápad, že orezaním rozhrania do Pytón a odobratím práv superužívateľa môžu predávať hotový produkt zložený z vyvinutých a upravených modulov z internetovej komunity distribuovaných pod GPL&atď.

Chápem, že teraz sa mojim smerom budú hrnúť negatívne výkriky s požiadavkami na podrobné zdôvodnenie mojich subjektívnych pocitov, ale chcem povedať, že tento sieťový uzol je tiež vyrovnávačom prevádzky pre 4 externé kanály na internete a každý kanál má svoje vlastné charakteristiky. . Ďalším základným kameňom bola potreba jedného z niekoľkých sieťových rozhraní, ktoré by fungovalo v rôznych adresných priestoroch, a ja pripravený pripúšťajú, že siete VLAN možno použiť všade tam, kde je to potrebné a nie nevyhnutné nie je pripravený. Používajú sa zariadenia ako TP-Link TL-R480T+ - vo všeobecnosti sa nesprávajú dokonale so svojimi vlastnými nuansami. Túto časť bolo možné nakonfigurovať na Linuxe vďaka oficiálnej stránke Ubuntu IP Balancing: spojenie niekoľkých internetových kanálov do jedného. Okrem toho môže každý z kanálov kedykoľvek „klesnúť“ a tiež stúpať. Ak máte záujem o skript, ktorý momentálne funguje (a stojí za samostatnú publikáciu), napíšte do komentárov.

Uvažované riešenie netvrdí, že je jedinečné, ale rád by som položil otázku: „Prečo by sa mal podnik prispôsobovať pochybným produktom tretích strán s vážnymi hardvérovými požiadavkami, keď možno zvážiť alternatívnu možnosť?

Ak v Ruskej federácii existuje zoznam Roskomnadzor, na Ukrajine je príloha k rozhodnutiu Rady národnej bezpečnosti (napr. tu), potom nespia ani miestni lídri. Dostali sme napríklad zoznam zakázaných stránok, ktoré podľa názoru vedenia zhoršujú produktivitu na pracovisku.

Komunikáciou s kolegami v iných podnikoch, kde sú štandardne všetky stránky zakázané a len na požiadanie so súhlasom šéfa máte prístup na konkrétnu stránku, úctivo sa usmievajúc, premýšľaním a „fajčením nad problémom“, sme dospeli k pochopeniu, že život je stále dobré a začali sme ich hľadanie.

Keďže sme mali možnosť nielen analyticky vidieť, čo píšu v „knihách žien v domácnosti“ o filtrovaní návštevnosti, ale aj vidieť, čo sa deje na kanáloch rôznych poskytovateľov, všimli sme si nasledujúce recepty (akékoľvek snímky obrazovky sú trochu orezané, prosím pochopiť, keď sa pýtate):

Poskytovateľ 1
— neobťažuje sa a zavádza svoje vlastné servery DNS a transparentný proxy server. Dobre?.. ale máme prístup tam, kde ho potrebujeme (ak ho potrebujeme :))

Poskytovateľ 2
- je presvedčený, že jeho špičkový poskytovateľ by sa mal nad tým zamyslieť, technická podpora najvyššieho poskytovateľa dokonca priznala, prečo som nemohol otvoriť stránku, ktorú som potreboval, čo nebolo zakázané. Myslím, že obrázok ťa pobaví :)

Iptables a filtrovanie návštevnosti od chudobných a lenivých disidentov

Ako sa ukázalo, prekladajú názvy zakázaných stránok na IP adresy a blokujú samotnú IP (neprekáža im, že táto IP adresa môže hostiť 20 stránok).

Poskytovateľ 3
— povolí premávke ísť tam, ale nedovolí jej späť po trase.

Poskytovateľ 4
— zakazuje všetky manipulácie s paketmi v určenom smere.

Čo robiť s VPN (s ohľadom na prehliadač Opera) a doplnkami prehliadača? Najprv sme sa pri hraní s uzlom Mikrotik dostali k receptu náročnému na zdroje na L7, od ktorého sme neskôr museli upustiť (zakázaných názvov môže byť viac, je smutné, keď okrem svojej priamej zodpovednosti za trasy na 3 desiatkach vyťaženie procesora PPC460GT ide na 100 %.

Iptables a filtrovanie návštevnosti od chudobných a lenivých disidentov.

Čo bolo jasné:
DNS na 127.0.0.1 absolútne nie je všeliekom, moderné verzie prehliadačov vám stále umožňujú obísť takéto problémy. Obmedziť všetkých používateľov na znížené práva je nemožné a nesmieme zabudnúť ani na obrovské množstvo alternatívnych DNS. Internet nie je statický a okrem nových DNS adries si zakázané stránky kupujú nové adresy, menia domény najvyššej úrovne a môžu pridávať/odstraňovať znak zo svojej adresy. Ale stále má právo žiť niečo ako:

ip route add blackhole 1.2.3.4

Bolo by celkom efektívne získať zoznam IP adries zo zoznamu zakázaných stránok, ale z vyššie uvedených dôvodov sme prešli k úvahám o Iptables. Vo vydaní CentOS Linux 7.5.1804 už existoval živý balancer.

Používateľov internet by mal byť rýchly a Prehliadač by nemal čakať pol minúty so záverom, že táto stránka nie je dostupná. Po dlhom hľadaní sme sa dostali k tomuto modelu:
Súbor 1 -> /script/denied_host, zoznam zakázaných mien:

test.test
blablabla.bubu
torrent
porno

Súbor 2 -> /script/denied_range, zoznam zakázaných adresných priestorov a adries:

192.168.111.0/24
241.242.0.0/16

Súbor skriptu 3 -> ipt.shrobiť prácu s ipables:

# считываем полезную информацию из перечней файлов
HOSTS=`cat /script/denied_host | grep -v '^#'`
RANGE=`cat /script/denied_range | grep -v '^#'`
echo "Stopping firewall and allowing everyone..."
# сбрасываем все настройки iptables, разрешая то что не запрещено
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
#решаем обновить информацию о маршрутах (особенность нашей архитектуры)
sudo sh rout.sh
# циклически обрабатывая каждую строку файла применяем правило блокировки строки
for i in $HOSTS; do
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p tcp -j REJECT --reject-with tcp-reset;
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p udp -j DROP;
done
# циклически обрабатывая каждую строку файла применяем правило блокировки адреса
for i in $RANGE; do
sudo iptables -I FORWARD -p UDP -d $i -j DROP;
sudo iptables -I FORWARD -p TCP  -d $i -j REJECT --reject-with tcp-reset;
done

Použitie sudo je dané tým, že máme malý hack na správu cez WEB rozhranie, ale ako ukazujú skúsenosti s používaním takéhoto modelu už viac ako rok, WEB nie je až taký potrebný. Po implementácii sa objavila túžba pridať do databázy zoznam stránok atď. Počet blokovaných hostiteľov je viac ako 250 + tucet adresných priestorov. Naozaj je problém pri prechode na stránku cez https pripojenie, ako správca systému, mám sťažnosti na prehliadače :), ale toto sú špeciálne prípady, väčšina spúšťačov nedostatku prístupu k zdroju je stále na našej strane , úspešne blokujeme aj Opera VPN a doplnky ako friGate a telemetriu od Microsoftu.

Iptables a filtrovanie návštevnosti od chudobných a lenivých disidentov

Zdroj: hab.com

Pridať komentár