Iptables a filtrovanie prevádzky od chudobných a lenivých nesúhlasných.

Relevancia blokovania prístupu k zakázaným zdrojom sa dotýka každého administrátora, ktorý môže byť oficiálne obvinený z porušenia zákona alebo nariadení príslušných orgánov.

Iptables a filtrovanie prevádzky od chudobných a lenivých nesúhlasných.

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

Ešte jedna otázka sa objavila u vedenia: Má použitý produkt bezpečnostný certifikát našej krajiny?

Máme skúsenosti s uvedenými distribúciami:

  • Zeroshell — vývojári dokonca darovali licenciu na 2 roky, ale ukázalo sa, že zaujímavá distribúcia nelogicky plnila pre nás kritickú funkciu;
  • pfSense — úcta a rešpekt, zároveň nudne, zvyknúť si na príkazový riadok firewalu FreeBSD a nie je to pre nás dostatočne pohodlné (myslím, že je to otázka zvyku, ale ukázalo sa, že to nebola "tá správna cesta");
  • ClearOS — na našom hardvéri sa to ukázalo byť veľmi pomalé, nedostali sme sa k vážnemu testovaniu, tak prečo také ťažké rozhrania?
  • Ideco SELECTA. O produkte 'Aideco' je samostatná diskusia, zaujímavý produkt, ale z politických dôvodov nie pre nás, a ešte by som chcel "uhryznúť" ich ohľadom licencie na ten istý Linux, Roundcube a podobne. Odkiaľ berú, že "urobením" rozhrania v Python a odobraním práv superužívateľa môžu predávať hotový produkt zložený z vyvinutých a upravených modulov internetovej komunity distribuovaných pod GPL&atď.

Chápem, že teraz sa na mňa vrhnú negatívne ohlasy s požiadavkami podrobne odôvodniť svoje subjektívne pocity, ale chcem povedať, že tento uzol siete je zároveň vyrovnávačom prevádzky na 4 externé kanály do siete Internet, pričom každý kanál má svoje špecifické vlastnosti. Ďalším kľúčovým bodom bola nutnosť, aby jeden z viacerých sieťových rozhraní fungoval v rôznych adresných priestoroch, a ja sú pripravený uznať, že používať VLANy všade tam, kde treba a kde netreba, ja nie som pripravený.Existujú zariadenia typu TP-Link TL-R480T+ — správajú sa nie ideálne, vo všeobecnosti so svojimi nuansami. Túto časť na Linuxe sa podarilo rozumne nastaviť vďaka oficiálnej stránke Ubuntu. IP-Balancovanie: spájame niekoľko internetových kanálov do jedného.Každý z kanálov môže kedykoľvek "vypadnúť", ale aj sa obnoviť. Ak máte záujem o skript, ktorý aktuálne funguje (to si zaslúži samostatný článok) – napíšte do komentárov.

Predkladané riešenie síce nie je unikátne, ale kladiem otázku: "Prečo sa vo firme prispôsobovať pochybnosťou produktom s vysokými hardvérovými požiadavkami, keď je možné zvážiť alternatívy?".

Ak v RF existuje zoznam od Roskomnadzoru, na Ukrajine – aplikácia k rozhodnutiu Rady národnej bezpečnosti (napr. tu), tak na miestach tiež vedúci nespia. Napríklad sme dostali zoznam zakázaných webových stránok, ktoré podľa vedenia znižujú produktivitu práce na pracovisku.

Keď som sa rozprával s kolegami v iných firmách, kde sú všetky webové stránky predvolene zakázané a prístup k konkrétnym stránkam je povolený iba na požiadanie nadriadeného, s úctou som sa usmial, zamyslel sa a "pocmúril sa nad problémom", došlo mi, že život je predsa len dobrý a začali sme náš hľadanie.

S možnosťou analyticky sa pozrieť na to, čo sa píše v "knihách hospodýň" o filtrovaní prevádzky, ako aj pozrieť sa, čo sa deje na kanáloch rôznych poskytovateľov, sme si všimli nasledujúce recepty (akékoľvek screenshoty sú trochu orezané, prosím vás o pochopenie):

Poskytovateľ 1
— sa príliš nezaoberá a vnucuje vlastné DNS servery a transparentný proxy server. Nuž, máme prístup tam, kam potrebujeme (ak to potrebujeme :))

Poskytovateľ 2
— si myslí, že o tom by sa mal postarať jeho nadradený poskytovateľ, technická podpora nadradeného poskytovateľa dokonca priznala, prečo nemôžem otvoriť potrebnú nezakázanú stránku. Myslím, že vás tento obrázok pobaví 🙂

Iptables a filtrovanie prevádzky od chudobných a lenivých nesúhlasných.

Ako sa ukázalo, prevádzajú názvy zakázaných stránok na IP adresy a blokujú konkrétne IP (neobťažuje ich, že na tejto IP adrese môže byť umiestnených aj 20 stránok).

Poskytovateľ 3
— prevádza prevádzku tam, ale späť po trasách jej neprepúšťa.

Poskytovateľ 4
— zakazuje všetky manipulácie s paketmi v uvedenom smere.

Čo robiť s VPN (prehliadač Opera má svoje zásluhy) a doplnkami pre prehliadače? Hraním na začiatku so sieťovým uzlom Mikrotik sme dokonca získali náročný recept na L7, od ktorého sme neskôr museli upustiť (zakázaných názvov môže byť aj viac, je smutné, keď okrem svojich priamych povinností vo vzťahu k trasám, na 30 rôznych výrazov, zatíženie procesora PPC460GT dosahuje 100%).

Iptables a filtrovanie prevádzky od chudobných a lenivých nesúhlasných..

Čo sa ukázalo ako jasné:
DNS na 127.0.0.1 rozhodne nie je všeliek, moderné verzie prehliadačov umožňujú obchádzať takéto problémy. Obmedziť všetkých používateľov na zredukované práva nie je možné a nemôžeme zabúdať na obrovské množstvo alternatívnych DNS. Internet nie je statický a okrem nových DNS adries zakázané stránky kupujú nové adresy, menia domény najvyššej úrovne, môžu pridať alebo odstrániť znak vo svojej adrese. Napriek tomu má právo existovať niečo ako:

ip route add blackhole 1.2.3.4

Získanie zoznamu IP adries zo zoznamu zakázaných stránok by bolo veľmi efektívne, ale z uvedených dôvodov sme prešli k úvahám o Iptables. Existoval už živý vyvážovač na CentOS Linux verzie 7.5.1804.

Internet u používateľa musí byť rýchly a prehliadač by nemal čakať pol minúty, predpokladajúc, že táto stránka nie je dostupná. Po dlhom hľadaní sme dospeli k takejto modeli:
Súbor 1 -> /script/denied_host, zoznam zakázaných názvov:

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-skript 3 -> ipt.sh, vykonávajúci prácu s iptables:

# считываем полезную информацию из перечней файлов
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 spôsobené tým, že máme malý hack na správu cez WEB rozhranie, no ako ukázala skúsenosť s použitím tejto modely dlhšie ako rok, WEB nie je až taký potrebný. Po nasadení bol záujem zaviesť zoznam stránok do DB a pod. Počet zablokovaných hostiteľov presahuje 250 + desiatku adresných priestorov. Naozaj je problém pri prechode na stránku cez https spojenie, ako systémový administrátor mám výhrady k prehliadačom :), ale to sú osobné prípady, väčšina spustení z dôvodu absencie prístupu k zdroju je predsa len na našej strane, rovnako úspešne blokujeme Opera VPN, doplnky ako friGate a telemetriu od Microsoftu.

Iptables a filtrovanie prevádzky od chudobných a lenivých nesúhlasných.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster