Iptables ja liikluse filtreerimine vaestelt ja laiskadelt teisitimõtlejatelt

Keelatud ressursside külastamise blokeerimise asjakohasus mõjutab kõiki administraatoreid, kellele võidakse esitada ametlik süüdistus seaduste või asjaomaste asutuste korralduste täitmata jätmises.

Iptables ja liikluse filtreerimine vaestelt ja laiskadelt teisitimõtlejatelt

Miks leiutada ratast, kui meie ülesannete jaoks on olemas spetsiaalsed programmid ja distributsioonid, näiteks Zeroshell, pfSense, ClearOS.

Juhtkonnal tekkis veel üks küsimus: kas kasutataval tootel on meie osariigi ohutussertifikaat?

Meil oli kogemusi järgmiste distributsioonidega töötamisel:

  • Zeroshell - arendajad kinkisid isegi 2-aastase litsentsi, kuid selgus, et meid huvitanud levikomplekt täitis ebaloogilisel kombel meie jaoks kriitilist funktsiooni;
  • pfSense - austus ja au, samal ajal igav, FreeBSD tulemüüri käsureaga harjumine ja meie jaoks mitte piisavalt mugav (ma arvan, et see on harjumuse küsimus, kuid see osutus valeks teeks);
  • ClearOS - meie riistvara puhul osutus see väga aeglaseks, me ei jõudnud tõsise testimiseni, miks siis nii rasked liidesed?
  • Ideco SELECTA. Ideco toode on omaette vestlus, huvitav toode, aga poliitilistel põhjustel mitte meie jaoks ja ma tahan ka neile “hammustada” sellesama Linuxi, Roundcube’i jne litsentsi kohta. Kust nad said selle idee, lõigates liidese sisse Python ja superkasutajate õigused ära võttes saavad nad müüa valmistoodet, mis koosneb Interneti-kogukonna arendatud ja muudetud moodulitest, mida levitatakse GPL&jne alusel.

Ma saan aru, et nüüd voolavad minu suunas negatiivsed hüüatused koos nõudmistega oma subjektiivseid tundeid üksikasjalikult põhjendada, kuid tahan öelda, et see võrgusõlm on ka 4 Interneti-välise kanali liikluse tasakaalustaja ja igal kanalil on oma omadused. . Teiseks nurgakiviks oli vajadus ühe mitmest võrguliidestest, mis töötaks erinevates aadressiruumides, ja I valmis tunnistavad, et VLAN-e saab kasutada kõikjal, kus vaja ja mitte ei ole valmis. Kasutusel on sellised seadmed nagu TP-Link TL-R480T+ - need ei käitu üldiselt ideaalselt, omade nüanssidega. Tänu Ubuntu ametlikule veebisaidile oli seda osa võimalik Linuxis konfigureerida IP tasakaalustamine: mitme Interneti-kanali ühendamine üheks. Veelgi enam, kõik kanalid võivad igal hetkel nii "kukkuda" kui ka tõusta. Kui olete huvitatud praegu töötavast skriptist (ja see on väärt eraldi väljaannet), kirjutage kommentaaridesse.

Vaadeldav lahendus ei pretendeeri ainulaadsele, kuid tahaksin esitada küsimuse: "Miks peaks ettevõte kohanema kolmandate osapoolte kahtlaste toodetega, millel on tõsised riistvaranõuded, kui võib kaaluda alternatiivset võimalust?"

Kui Vene Föderatsioonis on Roskomnadzori nimekiri, siis Ukrainas on riikliku julgeolekunõukogu otsuse lisa (näiteks. siin), siis ei maga ka kohalikud juhid. Näiteks anti meile nimekiri keelatud objektidest, mis juhtkonna hinnangul rikuvad tööviljakust.

Suheldes kolleegidega teistes ettevõtetes, kus vaikimisi on kõik saidid keelatud ja ainult nõudmisel ülemuse loal pääsete konkreetsele saidile, lugupidavalt naeratades, mõeldes ja "probleemi üle suitsetades", jõudsime arusaamisele, et elu on endiselt hea ja alustasime nende otsimist.

Kuna meil oli võimalus mitte ainult analüütiliselt näha, mida nad "koduperenaiste raamatutes" liikluse filtreerimise kohta kirjutavad, vaid ka näha, mis toimub erinevate pakkujate kanalites, märkasime järgmisi retsepte (kõiki ekraanipilte on veidi kärbitud, palun mõistke ):

Pakkuja 1
— ei viitsi ja sunnib peale oma DNS-servereid ja läbipaistvat puhverserverit. Noh?.. aga meil on juurdepääs sinna, kus seda vajame (kui vajame :))

Pakkuja 2
- usub, et tema tipppakkuja peaks sellele mõtlema, tipppakkuja tehniline tugi tunnistas isegi, miks ma ei saanud avada vajalikku saiti, mis polnud keelatud. Ma arvan, et pilt teeb sulle nalja :)

Iptables ja liikluse filtreerimine vaestelt ja laiskadelt teisitimõtlejatelt

Nagu selgus, tõlgivad nad keelatud saitide nimed IP-aadressideks ja blokeerivad IP enda (neid ei häiri see, et see IP-aadress suudab majutada 20 saiti).

Pakkuja 3
— lubab liiklust sinna minna, kuid ei luba seda marsruudil tagasi.

Pakkuja 4
— keelab kõik manipulatsioonid pakettidega määratud suunas.

Mida teha VPN-iga (Opera brauseri suhtes) ja brauseri pistikprogrammidega? Alguses sõlmega Mikrotik mängides saime isegi ressursimahuka retsepti L7 jaoks, millest pidime hiljem loobuma (keelatud nimesid võib olla rohkem, kurvaks teeb see, kui lisaks otsestele kohustustele marsruutide eest on 3 tosinal PPC460GT protsessori koormus ulatub 100 %-ni.

Iptables ja liikluse filtreerimine vaestelt ja laiskadelt teisitimõtlejatelt.

Mis selgus:
DNS versioonil 127.0.0.1 pole absoluutselt imerohi, brauserite kaasaegsed versioonid võimaldavad teil sellistest probleemidest siiski mööda minna. Kõigi kasutajate piiramine vähendatud õigustega on võimatu ja me ei tohi unustada alternatiivsete DNS-i tohutut hulka. Internet ei ole staatiline ja lisaks uutele DNS-aadressidele ostavad keelatud saidid uusi aadresse, vahetavad tippdomeene ja saavad oma aadressi lisada/eemaldada tähemärki. Kuid ikkagi on õigus elada midagi sellist:

ip route add blackhole 1.2.3.4

IP-aadresside loendi hankimine keelatud saitide loendist oleks üsna tõhus, kuid ülaltoodud põhjustel liikusime edasi Iptablesi kaalutluste juurde. CentOS Linuxi versioonis 7.5.1804 oli juba reaalajas tasakaalustaja.

Kasutaja Internet peaks olema kiire ja brauser ei tohiks oodata poolt minutit, järeldades, et see leht pole saadaval. Pärast pikka otsimist jõudsime selle mudelini:
Fail 1 -> /script/denied_host, keelatud nimede loetelu:

test.test
blablabla.bubu
torrent
porno

Fail 2 -> /script/denied_range, keelatud aadressiruumide ja aadresside loend:

192.168.111.0/24
241.242.0.0/16

Skriptifail 3 -> ipt.shtöö tegemine ipablesiga:

# считываем полезную информацию из перечней файлов
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

Sudo kasutamine on tingitud sellest, et meil on WEB-liidese kaudu juhtimiseks väike häkkimine, kuid nagu on näidanud kogemus sellise mudeli üle aastase kasutamisega, pole WEB nii vajalik. Peale juurutamist tekkis soov andmebaasi lisada saitide nimekiri jne. Blokeeritud hostide arv on üle 250 + kümmekond aadressiruumi. https-ühenduse kaudu saidile minnes on tõesti probleem, nagu süsteemiadministraator, mul on brauserite kohta kaebusi :), kuid need on erijuhtumid, enamik ressursile juurdepääsu puudumise käivitajaid on endiselt meie poolel , blokeerime edukalt ka Microsofti Opera VPN-i ja pistikprogrammid, nagu friGate ja telemeetria.

Iptables ja liikluse filtreerimine vaestelt ja laiskadelt teisitimõtlejatelt

Allikas: www.habr.com

Lisa kommentaar