Iptables a filtrování provozu od chudých a líných disidentů

Relevance blokování návštěv zakázaných zdrojů se dotýká každého správce, který může být oficiálně obviněn z nedodržování zákonů nebo nařízení příslušných úřadů.

Iptables a filtrování provozu od chudých a líných disidentů

Proč znovu vymýšlet kolo, když pro naše úkoly existují specializované programy a distribuce, například: Zeroshell, pfSense, ClearOS.

Vedení mělo další otázku: Má použitý výrobek bezpečnostní certifikát od našeho státu?

Měli jsme zkušenosti s prací s následujícími distribucemi:

  • Zeroshell - vývojáři dokonce darovali dvouletou licenci, ale ukázalo se, že distribuční sada, o kterou jsme měli zájem, pro nás nelogicky plnila kritickou funkci;
  • pfSense - respekt a čest, zároveň nuda, zvykání si na příkazový řádek firewallu FreeBSD a není pro nás dost pohodlné (myslím, že je to otázka zvyku, ale ukázalo se, že to byla špatná cesta);
  • ClearOS – na našem hardwaru se ukázalo, že je velmi pomalý, nemohli jsme se dostat k serióznímu testování, tak proč tak těžká rozhraní?
  • Ideco SELECTA. Produkt Ideco je samostatná konverzace, zajímavý produkt, ale z politických důvodů pro nás ne a také je chci „překousnout“ o licenci na stejný Linux, Roundcube atd. Kde vzali ten nápad, že tím, že rozřízli rozhraní do PYTHON a odebráním práv superuživatele mohou prodávat hotový produkt složený z vyvinutých a upravených modulů z internetové komunity distribuovaných pod GPL&atd.

Chápu, že nyní se mým směrem budou hrnout negativní výkřiky s požadavky na podrobné doložení mých subjektivních pocitů, ale chci říci, že tento síťový uzel je také vyrovnávačem provozu pro 4 externí kanály na internetu a každý kanál má své vlastní charakteristiky . Dalším základním kamenem byla potřeba jednoho z několika síťových rozhraní, které by fungovalo v různých adresových prostorech, a já готов připustit, že VLAN lze použít všude tam, kde je to nutné i ne nutné není připraven. Používají se zařízení, jako je TP-Link TL-R480T+ - obecně se nechovají dokonale se svými vlastními nuancemi. Tuto část bylo možné nakonfigurovat na Linuxu díky oficiální stránce Ubuntu IP Balancing: spojení několika internetových kanálů do jednoho. Navíc každý z kanálů může kdykoli „klesnout“ a také stoupat. Pokud máte zájem o skript, který právě funguje (a stojí za samostatné vydání), napište do komentářů.

Uvažované řešení netvrdí, že je jedinečné, ale rád bych položil otázku: „Proč by se měl podnik přizpůsobovat pochybným produktům třetích stran s vážnými hardwarovými požadavky, když lze zvážit alternativní možnost?

Pokud v Ruské federaci existuje seznam Roskomnadzor, na Ukrajině existuje příloha k rozhodnutí Rady národní bezpečnosti (např. zde), pak nespí ani místní vůdci. Dostali jsme například seznam zakázaných stránek, které podle názoru vedení zhoršují produktivitu na pracovišti.

Komunikace s kolegy v jiných podnicích, kde jsou standardně všechny stránky zakázány a pouze na žádost se svolením šéfa máte přístup na konkrétní stránku, uctivě se usmívat, přemýšlet a „kouřit nad problémem“, jsme dospěli k pochopení, že život je stále v pořádku a začali jsme s jejich hledáním.

Když jsme měli možnost nejen analyticky vidět, co píší v „knihách žen v domácnosti“ o filtrování provozu, ale také vidět, co se děje na kanálech různých poskytovatelů, všimli jsme si následujících receptů (všechny snímky obrazovky jsou trochu oříznuté, prosím rozuměj, když se ptáš):

Poskytovatel 1
— neobtěžuje a ukládá své vlastní servery DNS a transparentní proxy server. No?.. ale máme přístup tam, kde ho potřebujeme (pokud ho potřebujeme :))

Poskytovatel 2
- věří, že by na to měl jeho top poskytovatel myslet, technická podpora top poskytovatele dokonce přiznala, proč jsem nemohl otevřít web, který jsem potřeboval, což nebylo zakázáno. Myslím, že vás obrázek pobaví :)

Iptables a filtrování provozu od chudých a líných disidentů

Jak se ukázalo, překládají názvy zakázaných stránek na IP adresy a samotnou IP blokují (nevadí jim, že tato IP adresa může hostovat 20 stránek).

Poskytovatel 3
— povolí provozu jet tam, ale nedovolí mu zpět po trase.

Poskytovatel 4
— zakazuje veškerou manipulaci s pakety v určeném směru.

Co dělat s VPN (s ohledem na prohlížeč Opera) a pluginy prohlížeče? Nejprve jsme si při hraní s uzlem Mikrotik získali recept na L7 náročný na zdroje, od kterého jsme se později museli vzdát (zakázaných jmen může být více, je smutné, když kromě své přímé odpovědnosti za trasy na 3 tuctech vytížení procesoru PPC460GT jde na 100 %.

Iptables a filtrování provozu od chudých a líných disidentů.

Co bylo jasné:
DNS na 127.0.0.1 rozhodně není všelék, moderní verze prohlížečů vám stále umožňují obejít takové problémy. Omezit všechny uživatele na snížená práva je nemožné a nesmíme zapomenout ani na obrovské množství alternativních DNS. Internet není statický a kromě nových DNS adres si zakázané stránky kupují nové adresy, mění domény nejvyšší úrovně a mohou do své adresy přidávat/odebírat znak. Ale stále má právo žít něco jako:

ip route add blackhole 1.2.3.4

Bylo by docela efektivní získat seznam IP adres ze seznamu zakázaných stránek, ale z výše uvedených důvodů jsme přešli k úvahám o Iptables. Ve verzi CentOS Linux 7.5.1804 již existoval živý balancer.

Uživatelův internet by měl být rychlý a Prohlížeč by neměl čekat půl minuty se závěrem, že tato stránka není dostupná. Po dlouhém hledání jsme došli k tomuto modelu:
Soubor 1 -> /script/denied_host, seznam zakázaných jmen:

test.test
blablabla.bubu
torrent
porno

Soubor 2 -> /script/dened_range, seznam zakázaných adresních prostorů a adres:

192.168.111.0/24
241.242.0.0/16

Soubor skriptu 3 -> ipt.shdělat práci 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žití sudo je dáno tím, že máme malý hack pro správu přes WEB rozhraní, ale jak ukazují více než roční zkušenosti s používáním takového modelu, WEB není až tak nutný. Po implementaci bylo přání přidat do databáze seznam webů atd. Počet blokovaných hostitelů je více než 250 + tucet adresních prostorů. Opravdu je problém při přechodu na web přes https připojení, jako správce systému, mám stížnosti na prohlížeče :), ale to jsou zvláštní případy, většina spouštěčů pro nedostatek přístupu ke zdroji je stále na naší straně , také úspěšně blokujeme Opera VPN a pluginy jako friGate a telemetrie od Microsoftu.

Iptables a filtrování provozu od chudých a líných disidentů

Zdroj: www.habr.com

Přidat komentář