Iptables og filtrering av trafikk fra fattige og late dissidenter

Relevansen av å blokkere besøk til forbudte ressurser påvirker enhver administrator som kan bli offisielt siktet for manglende overholdelse av loven eller ordre fra relevante myndigheter.

Iptables og filtrering av trafikk fra fattige og late dissidenter

Hvorfor finne opp hjulet på nytt når det finnes spesialiserte programmer og distribusjoner for våre oppgaver, for eksempel: Zeroshell, pfSense, ClearOS.

Ledelsen hadde et annet spørsmål: Har produktet som brukes et sikkerhetssertifikat fra vår stat?

Vi hadde erfaring med å jobbe med følgende distribusjoner:

  • Zeroshell - utviklerne donerte til og med en 2-års lisens, men det viste seg at distribusjonssettet vi var interessert i, ulogisk nok, utførte en kritisk funksjon for oss;
  • pfSense - respekt og ære, samtidig kjedelig, å bli vant til kommandolinjen til FreeBSD-brannmuren og ikke praktisk nok for oss (jeg tror det er et spørsmål om vane, men det viste seg å være feil vei);
  • ClearOS - på maskinvaren vår viste det seg å være veldig tregt, vi kunne ikke komme til seriøs testing, så hvorfor så tunge grensesnitt?
  • Ideco SELECTA. Ideco-produktet er en egen samtale, et interessant produkt, men av politiske grunner ikke for oss, og jeg vil også "bite" dem om lisensen for samme Linux, Roundcube, etc. Hvor fikk de ideen om at ved å kutte grensesnittet inn Python og ved å ta fra superbrukerrettigheter, kan de selge et ferdig produkt som består av utviklede og modifiserte moduler fra Internett-fellesskapet distribuert under GPL&etc.

Jeg forstår at nå vil negative utrop strømme i min retning med krav om å underbygge mine subjektive følelser i detalj, men jeg vil si at denne nettverksnoden også er en trafikkbalanser for 4 eksterne kanaler til Internett, og hver kanal har sine egne egenskaper . En annen hjørnestein var behovet for et av flere nettverksgrensesnitt for å fungere i forskjellige adresseområder, og jeg готов innrømme at VLAN kan brukes overalt der det er nødvendig og ikke nødvendig ikke klar. Det er enheter i bruk som TP-Link TL-R480T+ - de oppfører seg generelt ikke perfekt med sine egne nyanser. Det var mulig å konfigurere denne delen på Linux takket være Ubuntu offisielle nettsted IP-balansering: kombinere flere Internett-kanaler til én. Dessuten kan hver av kanalene "falle" når som helst, samt stige. Hvis du er interessert i et manus som fungerer for øyeblikket (og dette er verdt en egen publikasjon), skriv i kommentarfeltet.

Løsningen under vurdering hevder ikke å være unik, men jeg vil gjerne stille spørsmålet: "Hvorfor skal en bedrift tilpasse seg tvilsomme tredjepartsprodukter med alvorlige maskinvarekrav når et alternativt alternativ kan vurderes?"

Hvis det i Den russiske føderasjonen er en liste over Roskomnadzor, er det i Ukraina et vedlegg til avgjørelsen fra det nasjonale sikkerhetsrådet (for eksempel. her), så sover heller ikke lokale ledere. For eksempel fikk vi en liste over forbudte nettsteder som etter ledelsens mening svekker produktiviteten på arbeidsplassen.

Ved å kommunisere med kolleger i andre virksomheter, der alle nettsteder som standard er forbudt, og bare på forespørsel med tillatelse fra sjefen kan du få tilgang til et bestemt nettsted, smile respektfullt, tenke og "røyke over problemet", kom vi til forståelsen av at livet er fortsatt bra, og vi startet søket deres.

Etter å ha muligheten til ikke bare å analytisk se hva de skriver i "husmødrebøkene" om trafikkfiltrering, men også for å se hva som skjer på kanalene til forskjellige leverandører, la vi merke til følgende oppskrifter (alle skjermbilder er litt beskåret, vær så snill forstår når du spør):

Leverandør 1
- bryr seg ikke og pålegger sine egne DNS-servere og en gjennomsiktig proxy-server. Vel?.. men vi har tilgang til der vi trenger det (hvis vi trenger det :))

Leverandør 2
- mener at toppleverandøren hans burde tenke på dette, toppleverandørens tekniske støtte innrømmet til og med hvorfor jeg ikke kunne åpne siden jeg trengte, noe som ikke var forbudt. Jeg tror bildet vil underholde deg :)

Iptables og filtrering av trafikk fra fattige og late dissidenter

Som det viste seg, oversetter de navnene på forbudte nettsteder til IP-adresser og blokkerer selve IP-en (de er ikke plaget av det faktum at denne IP-adressen kan være vert for 20 nettsteder).

Leverandør 3
— lar trafikken gå dit, men tillater den ikke tilbake langs ruten.

Leverandør 4
— forbyr all manipulasjon med pakker i den angitte retningen.

Hva skal jeg gjøre med VPN (respekt for Opera-nettleseren) og nettleserplugins? Når vi først lekte med noden Mikrotik, fikk vi til og med en ressurskrevende oppskrift på L7, som vi senere måtte forlate (det kan være flere forbudte navn, det blir trist når, i tillegg til det direkte ansvaret for ruter, på 3 dusin uttrykk går PPC460GT-prosessorbelastningen til 100 %).

Iptables og filtrering av trafikk fra fattige og late dissidenter.

Hva ble klart:
DNS på 127.0.0.1 er absolutt ikke et universalmiddel; moderne versjoner av nettlesere lar deg fortsatt omgå slike problemer. Det er umulig å begrense alle brukere til reduserte rettigheter, og vi må ikke glemme det enorme antallet alternative DNS. Internett er ikke statisk, og i tillegg til nye DNS-adresser, kjøper forbudte nettsteder nye adresser, endrer toppdomener og kan legge til/fjerne et tegn i adressen deres. Men har fortsatt rett til å leve noe som:

ip route add blackhole 1.2.3.4

Det ville være ganske effektivt å få en liste over IP-adresser fra listen over forbudte nettsteder, men av grunnene nevnt ovenfor, gikk vi videre til betraktninger om Iptables. Det var allerede en live balancer på CentOS Linux utgivelse 7.5.1804.

Brukerens Internett skal være raskt, og nettleseren bør ikke vente et halvt minutt, og konkluderer med at denne siden ikke er tilgjengelig. Etter lang leting kom vi til denne modellen:
Fil 1 -> /script/denied_host, liste over forbudte navn:

test.test
blablabla.bubu
torrent
porno

Fil 2 -> /script/denied_range, liste over forbudte adresseområder og adresser:

192.168.111.0/24
241.242.0.0/16

Skriptfil 3 -> ipt.shgjør jobben med 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

Bruken av sudo skyldes at vi har et lite hack for å administrere via WEB-grensesnittet, men som erfaring med bruk av en slik modell i mer enn ett år har vist, er ikke WEB så nødvendig. Etter implementering var det et ønske om å legge til en liste over nettsteder i databasen, etc. Antall blokkerte verter er mer enn 250 + et dusin adresserom. Det er virkelig et problem når du går til et nettsted via en https-tilkobling, som systemadministratoren, jeg har klager på nettlesere :), men dette er spesielle tilfeller, de fleste triggere for manglende tilgang til ressursen er fortsatt på vår side , blokkerer vi også Opera VPN og plugins som friGate og telemetri fra Microsoft.

Iptables og filtrering av trafikk fra fattige og late dissidenter

Kilde: www.habr.com

Legg til en kommentar