Iptables och trafikfiltrering från fattiga och lata avvikande åsikter

Relevansen av att blockera åtkomst till förbjudna resurser berör varje administratör som kan ställas till svars för att inte följa lagar eller beslut från behöriga myndigheter.

Iptables och trafikfiltrering från fattiga och lata avvikande åsikter

Varför uppfinna hjulet på nytt när det finns specialiserade program och distributioner för våra behov, till exempel: Zeroshell, pfSense, ClearOS.

En annan fråga som uppstod från ledningen: Har den använda produkten ett säkerhetscertifikat från vår stat?

Vi har erfarenhet av att arbeta med de nämnda distributionerna:

  • Zeroshell — utvecklarna gav oss till och med en licens i två år, men det visade sig att den intressanta distributionen inte utförde en kritisk funktion för oss på ett logiskt sätt.
  • pfSense — respekt och heder, men samtidigt tråkigt; anpassning till kommandoraden på FreeBSD-brandväggen var inte tillräckligt bekväm för oss (jag tror det handlar om vanor, men det visade sig vara "fel väg").
  • ClearOS — på vår hårdvara verkade det mycket långsamt, och vi kunde inte nå allvarlig testning, så varför sådana tunga gränssnitt?
  • Ideco SELECTA. Produkten "Aideco" är ett särskilt samtalsämne, en intressant produkt, men av politiska skäl inte för oss, och vi vill gärna "bita" dem angående licensen för samma Linux, Roundcube m.m. Hur kom de fram till att "genom att skärpa gränssnittet" Python och ta bort superanvändarrättigheter kan de sälja en färdig produkt bestående av moduler från internetgemenskapen som sprids under GPL&etc.

Jag förstår att jag nu kommer att få negativa reaktioner som kräver att jag noggrant motiverar mina subjektiva känslor, men jag vill säga att denna nätverksnod också fungerar som en belastningsfördelare för 4 externa kanaler till Internet, där varje kanal har sina egna egenskaper. En annan avgörande punkt är behovet av att en av flera nätverksgränssnitt fungerar i olika adressutrymmen, och jag är redo att erkänna att använda VLAN där det behövs och där det inte behövs är jag inte redo.Det finns enheter som TP-Link TL-R480T+ - de fungerar inte perfekt, med sina egna nyanser. Denna del kunde ställas in rimligt tack vare den officiella webbplatsen för Ubuntu. IP-Balansering: vi slår samman flera internetkanaler till en.. Varje kanal kan "falla" när som helst, precis som den kan stiga. Om du är intresserad av ett skript som fungerar för tillfället (och det kräver en separat publikation) - skriv i kommentarerna.

Den aktuella lösningen gör anspråk på att inte vara unik, men jag vill ställa frågan: "Varför skulle ett företag anpassa sig till tveksamma externa produkter med strikta hårdvarukrav när man kan överväga ett alternativ?".

Om det finns en lista från Roskomnadzor i Ryssland, finns det i Ukraina en bilaga till beslutet från Rådet för nationell säkerhet (till exempel. här), så sover inte ledarna på platserna heller. Till exempel fick vi en lista över förbjudna webbplatser, som enligt ledningens åsikt försämrar arbetsproduktiviteten.

Genom att prata med kollegor på andra företag, där alla webbplatser som standard är förbjudna och man bara kan få tillgång till specifika webbplatser med tillstånd från chefen, kom vi respektfullt att le, tänka och "fundera på problemet" och insåg att livet faktiskt är bra och vi började vår sökning.

Genom att ha möjlighet att inte bara analytiskt se vad som skrivs i "husfruarböckerna" om trafikfiltrering, utan också att se vad som händer på kanalerna med olika internetleverantörer observerade vi följande recept (alla skärmdumpar är något beskurna, jag ber om förståelse):

Leverantör 1
— bekymrar sig inte och påtvingar sina egna DNS-servrar och en transparent proxyserver. Nåväl? .. Men vi har tillgång dit vi behöver (om vi behöver det :))

Leverantör 2
— anser att deras överordnade leverantör bör tänka på detta, teknisk support från den överordnade leverantören erkände till och med varför jag inte kan öppna den nödvändiga, icke-förbjudna webbplatsen. Jag tror att bilden kommer att underhålla er 🙂

Iptables och trafikfiltrering från fattiga och lata avvikande åsikter

Som det visade sig, översätter de namnen på förbjudna webbplatser till IP-adresser och blockerar just IP:n (de bekymrar sig inte om att det kan finnas 20 webbplatser på den här IP-adressen).

Leverantör 3
— släpper trafiken dit, men tillåter den inte tillbaka på rutten.

Leverantör 4
— förbjuder alla manipulationer med paket i den angivna riktningen.

Vad ska man göra med VPN (Opera-browserns respekt) och tillägg för webbläsare? I början, när vi experimenterade med Mikrotik-noder, hade vi till och med ett resurskrävande recept för L7, vilket vi senare var tvungna att överge (det kan finnas fler förbjudna namn, det är ledsamt när CPU-belastningen på PPC460GT når 100% utöver sina direkta uppgifter för rutterna, med tre dussin uttryck).

Iptables och trafikfiltrering från fattiga och lata avvikande åsikter.

Det blev tydligt:
DNS på 127.0.0.1 är absolut ingen universallösning, moderna versioner av webbläsare tillåter faktiskt att kringgå sådana problem. Man kan inte begränsa alla användare med nedskärda rättigheter, och man får inte glömma det stora antalet alternativa DNS. Internet är inte statiskt, och förutom nya DNS-adresser köper förbjudna webbplatser nya adresser, ändrar toppdomäner, kan lägga till/ta bort tecken i sin adress. Men något i stil med har ändå rätt att existera:

ip route add blackhole 1.2.3.4

Att få en lista över IP-adresser från listan över förbjudna webbplatser skulle vara ganska effektivt, men på grund av de ovan nämnda skälen har vi gått över till Iptables. Det fanns redan en aktiv lastbalanserare på CentOS Linux release 7.5.1804.

Användarens internet bör vara snabbt, och webbläsaren bör inte behöva vänta en halv minut och konstatera att denna sida inte är tillgänglig. Efter långa sökningar kom vi fram till en sådan modell:
Fil 1 -> /script/denied_host, lista över förbjudna namn:

test.test
blablabla.bubu
torrent
porno

Fil 2 -> /script/denied_range, lista över förbjudna adressområden och adresser:

192.168.111.0/24
241.242.0.0/16

Fil-skript 3 -> ipt.sh, som utför arbete med 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

Användningen av sudo beror på att vi har en liten hack för att styra via WEB-gränssnittet, men som erfarenheten av att använda en sådan modell i mer än ett år har visat, så är WEB inte så nödvändigt. Efter implementeringen fanns det tankar att föra in listan över webbplatser i en databas, osv. Antalet blockerade värdar överstiger 250 + ett dussin adressområden. Det finns verkligen problem med att besöka webbplatser via https-anslutning, och som systemadministratör har jag klagomål mot webbläsare :), men det är specifika fall, de flesta av händelserna med avsaknad av åtkomst till resurser ligger faktiskt på vår sida, vi blockerar också framgångsrikt Opera VPN, tillägg som friGate och Microsofts telemetry.

Iptables och trafikfiltrering från fattiga och lata avvikande åsikter

Källa: habr.com

Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar 🔥 Köp pålitlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster