Iptables och filtrering av trafik från fattiga och lata oliktänkande

Relevansen av att blockera besök på förbjudna resurser påverkar alla administratörer som officiellt kan åtalas för underlåtenhet att följa lagen eller order från de relevanta myndigheterna.

Iptables och filtrering av trafik från fattiga och lata oliktänkande

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

Ledningen hade en annan fråga: Har produkten som används ett säkerhetscertifikat från vår stat?

Vi hade erfarenhet av att arbeta med följande distributioner:

  • Zeroshell - utvecklarna donerade till och med en 2-årig licens, men det visade sig att distributionssatsen vi var intresserade av, ologiskt nog, utförde en kritisk funktion för oss;
  • pfSense - respekt och ära, samtidigt tråkigt, att vänja sig vid kommandoraden i FreeBSD-brandväggen och inte tillräckligt bekvämt för oss (jag tror att det är en vanesak, men det visade sig vara på fel sätt);
  • ClearOS - på vår hårdvara visade det sig vara väldigt långsamt, vi kunde inte komma till seriösa tester, så varför så tunga gränssnitt?
  • Ideco SELECTA. Ideco-produkten är en separat konversation, en intressant produkt, men av politiska skäl inte för oss, och jag vill också "bita" dem om licensen för samma Linux, Roundcube, etc. Var fick de idén att genom att skära gränssnittet in Python och genom att ta bort superanvändarrättigheterna kan de sälja en färdig produkt som består av utvecklade och modifierade moduler från Internetgemenskapen distribuerade under GPL&etc.

Jag förstår att nu kommer negativa utrop strömma i min riktning med krav på att motivera mina subjektiva känslor i detalj, men jag vill säga att denna nätverksnod också är en trafikbalanserare för 4 externa kanaler till Internet, och varje kanal har sina egna egenskaper . En annan hörnsten var behovet av att ett av flera nätverksgränssnitt skulle fungera i olika adressutrymmen, och jag färdig erkänn att VLAN kan användas överallt där det är nödvändigt och inte nödvändigt inte redo. Det finns enheter som används som TP-Link TL-R480T+ - de beter sig inte perfekt, i allmänhet, med sina egna nyanser. Det var möjligt att konfigurera den här delen på Linux tack vare Ubuntus officiella webbplats IP-balansering: kombinera flera internetkanaler till en. Dessutom kan var och en av kanalerna "falla" när som helst, samt stiga. Om du är intresserad av ett manus som för närvarande fungerar (och detta är värt en separat publikation), skriv i kommentarerna.

Den övervägda lösningen gör inte anspråk på att vara unik, men jag skulle vilja ställa frågan: "Varför ska ett företag anpassa sig till tvivelaktiga produkter från tredje part med allvarliga hårdvarukrav när ett alternativt alternativ kan övervägas?"

Om det i Ryska federationen finns en lista över Roskomnadzor, finns det i Ukraina en bilaga till beslutet från det nationella säkerhetsrådet (till exempel. här), då sover inte lokala ledare heller. Till exempel fick vi en lista över förbjudna platser som enligt ledningens uppfattning försämrar produktiviteten på arbetsplatsen.

Genom att kommunicera med kollegor på andra företag, där alla webbplatser som standard är förbjudna och endast på begäran med tillstånd från chefen kan du komma åt en specifik webbplats, le respektfullt, tänka och "röka över problemet", kom vi till insikten att livet är fortfarande bra och vi började deras sökning.

Med möjligheten att inte bara analytiskt se vad de skriver i "hemmafruböcker" om trafikfiltrering, utan också att se vad som händer på olika leverantörers kanaler, märkte vi följande recept (alla skärmdumpar är lite beskurna, vänligen förstå ):

Leverantör 1
— stör inte och påtvingar sina egna DNS-servrar och en transparent proxyserver. Tja?.. men vi har tillgång till där vi behöver det (om vi behöver det :))

Leverantör 2
- anser att hans toppleverantör borde tänka på detta, toppleverantörens tekniska support erkände till och med varför jag inte kunde öppna sidan jag behövde, vilket inte var förbjudet. Jag tror att bilden kommer att roa dig :)

Iptables och filtrering av trafik från fattiga och lata oliktänkande

Det visade sig att de översätter namnen på förbjudna webbplatser till IP-adresser och blockerar själva IP:n (de störs inte av det faktum att denna IP-adress kan vara värd för 20 platser).

Leverantör 3
— tillåter trafik att åka dit, men tillåter den inte tillbaka längs rutten.

Leverantör 4
— förbjuder all manipulation med paket i angiven riktning.

Vad ska man göra med VPN (respekt för Opera-webbläsaren) och webbläsarplugin? När vi först lekte med noden Mikrotik fick vi till och med ett resurskrävande recept för L7, som vi senare var tvungna att överge (det kan finnas fler förbjudna namn, det blir tråkigt när, utöver sitt direkta ansvar för rutter, på 3 dussin uttryck går PPC460GT-processorbelastningen till 100 %).

Iptables och filtrering av trafik från fattiga och lata oliktänkande.

Vad blev klart:
DNS på 127.0.0.1 är absolut inget universalmedel; moderna versioner av webbläsare låter dig fortfarande kringgå sådana problem. Det är omöjligt att begränsa alla användare till reducerade rättigheter, och vi får inte glömma det enorma antalet alternativa DNS. Internet är inte statiskt, och förutom nya DNS-adresser köper förbjudna webbplatser nya adresser, ändrar toppdomäner och kan lägga till/ta bort ett tecken i sin adress. Men har fortfarande rätt att leva något som:

ip route add blackhole 1.2.3.4

Det skulle vara ganska effektivt att få en lista över IP-adresser från listan över förbjudna webbplatser, men av de skäl som anges ovan gick vi vidare till överväganden om Iptables. Det fanns redan en live balancer på CentOS Linux release 7.5.1804.

Användarens Internet ska vara snabbt, och webbläsaren ska inte vänta en halv minut, vilket drar slutsatsen att den här sidan inte är tillgänglig. Efter en lång sökning kom vi fram till denna 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 adressutrymmen och adresser:

192.168.111.0/24
241.242.0.0/16

Skriptfil 3 -> ipt.shgör jobbet 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

Användningen av sudo beror på att vi har ett litet hack för kontroll via WEB-gränssnittet, men som erfarenhet av att använda en sådan modell i mer än ett år har visat att WEB inte är så nödvändigt. Efter implementeringen fanns det en önskan att lägga till en lista med sajter till databasen osv. Antalet blockerade värdar är mer än 250 + ett dussin adressutrymmen. Det finns verkligen ett problem när man går till en webbplats via en https-anslutning, som systemadministratören, jag har klagomål på webbläsare :), men det här är speciella fall, de flesta triggers för bristande tillgång till resursen är fortfarande på vår sida , blockerar vi även Opera VPN och plugins som friGate och telemetri från Microsoft.

Iptables och filtrering av trafik från fattiga och lata oliktänkande

Källa: will.com

Lägg en kommentar