Relevanța blocării accesului la resursele interzise îi afectează pe orice administrator care ar putea fi acuzat oficial de neîndeplinirea legii sau a dispozițiilor autorităților competente.

De ce să reinventăm roata când există programe și distribuții specializate pentru nevoile noastre, de exemplu: Zeroshell, pfSense, ClearOS.
O altă întrebare a venit de la superiori: Are produsul utilizat certificat de securitate de la statul nostru?
Am avut experiență cu distribuțiile menționate:
- Zeroshell - dezvoltatorii ne-au oferit o licență gratuită pe 2 ani, dar s-a dovedit că distribuția care ne interesa nu îndeplinea funcția critică pentru noi;
- pfSense - respect și apreciere, dar în același timp plictisitor, obișnuință cu linia de comandă a firewall-ului FreeBSD și nu este suficient de confortabil pentru noi (cred că e vorba de obișnuință, dar nu a fost «calea cea bună»);
- ClearOS - pe hardware-ul nostru s-a dovedit foarte lent, nu am ajuns la testări serioase, de aceea, de ce interfețe atât de greoaie?
- Ideco SELECTA. Despre produsul «Ideco» este o altă poveste, un produs interesant, dar din motive politice, nu este pentru noi, plus că vrem să discutăm despre licența pentru Linux, Roundcube etc. De unde au dedus că, «tăind» interfața în Python și luând drepturile de superutilizator pot vinde un produs complet alcătuit din modulele dezvoltate și revizuite de comunitatea internet, distribuite sub GPL&etc.
Înțeleg că acum voi primi reacții negative cu cerințe de a explica în detaliu sentimentele mele subiective, dar vreau să spun că acest nod de rețea este de asemenea un echilibrator de trafic pentru 4 canale externe către Internet, fiecare canal având propriile sale particularități. De asemenea, o piatră de temelie a fost necesitatea de a avea unul dintre mai multe interfețe de rețea în diferite spații de adresare, și eu sunt pregătit să recunosc că aplicarea VLAN-urilor în mod constant, indiferent de necesitate, eu nu sunt pregătit. În utilizare există dispozitive de tip TP-Link TL-R480T+ - se comportă imperfect, în general cu nuanțele lor. Această parte pe Linux a fost configurată rezonabil datorită site-ului oficial Ubuntu. . Fiecare canal poate „cădea” în orice moment, la fel cum poate și „urca”. Dacă ești interesat de un script care funcționează în acest moment (iar asta merită o publicație separată) — scrie în comentarii.
Soluția discutată nu pretinde a fi unică, dar vreau să pun o întrebare: „De ce să ne adaptăm la produse externe îndoielnice cu cerințe hardware serioase când putem considera o alternativă?”.
Dacă în Rusia există o listă a Roskomnadzor, în Ucraina există o anexă la Decizia Consiliului de Securitate Națională (de exemplu, ), la nivel local, șefii nu dorm nici ei. De exemplu, ni s-a dat o listă a site-urilor interzise, care, conform conducerii, afectează productivitatea la locul de muncă.
Comunicând cu colegii de la alte companii, unde sunt interzise, din principiu, toate site-urile și doar cu cererea și permisiunea șefului poți obține acces la un site specific, am zâmbit respectuos, gândindu-ne și „meditând asupra problemei”, am realizat că viața chiar este bună și am început căutările noastre.
Având posibilitatea nu doar să analizăm ce scriu în „cărțile gospodinelor” despre filtrarea traficului, ci și să observăm ce se întâmplă pe canalele diferitelor furnizori, am remarcat următoarele rețete (orice capturi de ecran sunt puțin decupate, vă rog să înțelegeți):
Furnizor 1
— nu se complică și impune servere DNS proprii și un server proxy transparent. Așa că?… totuși avem acces acolo unde trebuie (dacă ne trebuie :))
Furnizor 2
— consideră că furnizorul său superior ar trebui să se ocupe de acest lucru, suportul tehnic al furnizorului superior a recunoscut chiar de ce nu pot deschide site-ul necesar care nu este interzis. Cred că imaginea va să te amuze 🙂

Se pare că ei traduc numele site-urilor interzise în adrese IP și blochează anume IP-ul (nu îi îngrijorează că pe această adresă IP pot fi și 20 de site-uri).
Furnizor 3
— permite traficul acolo, dar înapoi pe rută nu-l permite.
Furnizor 4
— interzice toate manevrele cu pachetele în direcția indicată.
Ce trebuie să facem cu VPN-ul (respect pentru browserul Opera) și plugin-urile pentru browsere? Jucându-ne inițial cu nodul Mikrotik, am ajuns chiar la o rețetă consumatoare de resurse pe L7, de care a trebuit să ne despărțim ulterior (numărul numelui interzis poate fi destul de mare, devine trist când, pe lângă atribuțiile directe pe rute, pe 30 de expresii, încărcătura procesorului PPC460GT ajunge la 100%).
.
Ce a devenit clar:
DNS-ul pe 127.0.0.1 nu este deloc o soluție universală, versiunile moderne ale browserelor permit totuși să se ocolească aceste probleme. Nu se pot restricționa toți utilizatorii cu drepturi limitate și nu trebuie să uităm de numărul extrem de mare de alternative DNS. Internetul nu este static, iar pe lângă adresele DNS noi, site-urile interzise cumpără adrese noi, își schimbă domeniile de nivel superior, pot adăuga/elimina simboluri din adresa lor. Totuși, există ceva de genul:
ip route add blackhole 1.2.3.4Ar fi destul de eficient să obținem o listă de adrese IP din lista site-urilor interzise, dar din motivele menționate mai sus, am trecut la considerentele despre Iptables. Există deja un echilibru activ pe CentOS Linux release 7.5.1804.
Internetul utilizatorului ar trebui să fie rapid, iar browserul nu ar trebui să aștepte o jumătate de minut, concluzionând că această pagină nu este disponibilă. După căutări îndelungate, am ajuns la acest model:
Fișier 1 -> /script/denied_host, lista numelui interzis:
test.test
blablabla.bubu
torrent
pornoFișier 2 -> /script/denied_range, lista spațiilor de adresare și adreselor interzise:
192.168.111.0/24
241.242.0.0/16Fișier-script 3 -> ipt.sh, care execută lucrul cu 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
Utilizarea sudo se datorează faptului că avem un mic hack pentru gestionarea prin interfața WEB, dar, așa cum a arătat experiența utilizării acestui model de peste un an, interfața WEB nu este atât de necesară. După implementare, a existat dorința de a introduce lista de site-uri în baza de date etc. Numărul de gazde blocate este de peste 250 + o duzină de spații de adresare. Există într-adevăr o problemă când accesăm un site prin conexiune https, la fel ca și administratorului de sistem, am observații legate de browsere :), dar acestea sunt cazuri particulare, majoritatea problemelor de acces la resursă sunt totuși de partea noastră, reușind, de asemenea, să blocăm Opera VPN, plugin-uri tip friGate și telemetria de la Microsoft.

Sursa: habr.com
