Znaczenie blokowania wizyt w zabronionych zasobach dotyczy każdego administratora, który może zostać oficjalnie oskarżony o nieprzestrzeganie prawa lub nakazów odpowiednich władz.
Po co wymyślać koło na nowo, skoro do naszych zadań istnieją wyspecjalizowane programy i dystrybucje, np.: Zeroshell, pfSense, ClearOS.
Kierownictwo miało jeszcze jedno pytanie: Czy zastosowany produkt posiada certyfikat bezpieczeństwa z naszego państwa?
Mieliśmy doświadczenie w pracy z następującymi dystrybucjami:
- Zeroshell – twórcy podarowali nawet 2-letnią licencję, ale okazało się, że interesująca nas dystrybucja, nielogicznie, pełniła dla nas funkcję krytyczną;
- pfSense - szacunek i honor, a jednocześnie nudne, przyzwyczajenie się do linii poleceń firewalla FreeBSD i niezbyt wygodne dla nas (myślę, że to kwestia przyzwyczajenia, ale okazało się, że w złą stronę);
- ClearOS - na naszym sprzęcie okazał się bardzo powolny, nie mogliśmy przystąpić do poważnych testów, więc po co takie ciężkie interfejsy?
- Ideco SELECTA. Produkt Ideco to osobna rozmowa, produkt ciekawy, ale z powodów politycznych nie dla nas, a ja też chcę ich „dogryźć” w sprawie licencji na tego samego Linuksa, Roundcube itp. Skąd wpadli na pomysł, że wycinając interfejs Python a odbierając prawa administratora, mogą sprzedawać gotowy produkt złożony z opracowanych i zmodyfikowanych modułów społeczności internetowej rozpowszechnianych na licencji GPL&etc.
Rozumiem, że teraz w moją stronę polecą negatywne okrzyki z żądaniami szczegółowego uzasadnienia moich subiektywnych odczuć, ale chcę powiedzieć, że ten węzeł sieciowy jest również modułem równoważenia ruchu dla 4 zewnętrznych kanałów do Internetu, a każdy kanał ma swoją własną charakterystykę . Kolejnym kamieniem węgielnym była potrzeba, aby jeden z kilku interfejsów sieciowych działał w różnych przestrzeniach adresowych, a ja gotowy przyznać, że sieci VLAN można stosować wszędzie tam, gdzie jest to konieczne i niepotrzebne nie gotowy. W użyciu są urządzenia takie jak TP-Link TL-R480T+ - generalnie nie zachowują się idealnie, z własnymi niuansami. Skonfigurowanie tej części w systemie Linux było możliwe dzięki oficjalnej stronie Ubuntu
Rozważane rozwiązanie nie pretenduje do miana wyjątkowego, ale chciałbym zadać pytanie: „Dlaczego przedsiębiorstwo miałoby dostosowywać się do wątpliwych produktów innych firm o poważnych wymaganiach sprzętowych, skoro można rozważyć alternatywną opcję?”
Jeśli w Federacji Rosyjskiej istnieje lista Roskomnadzoru, na Ukrainie istnieje załącznik do Decyzji Rady Bezpieczeństwa Narodowego (np.
Komunikując się z kolegami z innych przedsiębiorstw, gdzie domyślnie wszystkie strony są zabronione i tylko na żądanie, za zgodą szefa, można uzyskać dostęp do określonej witryny, uśmiechając się z szacunkiem, myśląc i „paląc nad problemem”, doszliśmy do zrozumienia, że życie jest nadal dobry i rozpoczęliśmy poszukiwania.
Mając okazję nie tylko analitycznie zobaczyć, co piszą w „księgach gospodyń domowych” na temat filtrowania ruchu, ale także zobaczyć, co dzieje się na kanałach różnych dostawców, zauważyliśmy następujące przepisy (wszelkie zrzuty ekranu są nieco przycięte, proszę zrozumieć, kiedy pytam):
Dostawca 1
— nie przeszkadza i narzuca własne serwery DNS i przejrzysty serwer proxy. No cóż?..ale mamy dostęp tam gdzie tego potrzebujemy (jeśli tego potrzebujemy :))
Dostawca 2
- uważa, że jego czołowy dostawca powinien się nad tym zastanowić, pomoc techniczna czołowego dostawcy przyznała nawet, dlaczego nie mogę otworzyć potrzebnej mi strony, co nie jest zabronione. Myślę, że zdjęcie Cię zachwyci :)
Jak się okazało, tłumaczą nazwy zabronionych stron na adresy IP i blokują sam adres IP (nie przeszkadza im fakt, że na tym adresie IP może znajdować się 20 witryn).
Dostawca 3
— umożliwia ruch tam, ale nie pozwala na powrót na trasę.
Dostawca 4
— zabrania wszelkich manipulacji pakietami w określonym kierunku.
Co zrobić z VPN (w odniesieniu do przeglądarki Opera) i wtyczkami do przeglądarek? Bawiąc się na początku z węzłem Mikrotik, otrzymaliśmy nawet zasobochłonny przepis na L7, z którego później musieliśmy porzucić (zakazanych nazw może być więcej, robi się smutno, gdy oprócz bezpośredniej odpowiedzialności za trasy, na 3 tuzinach wyrażeń obciążenie procesora PPC460GT osiąga 100%.
.
Co stało się jasne:
DNS na 127.0.0.1 absolutnie nie jest panaceum, nowoczesne wersje przeglądarek wciąż pozwalają ominąć takie problemy. Niemożliwe jest ograniczenie wszystkich użytkowników do ograniczonych praw i nie możemy zapominać o ogromnej liczbie alternatywnych DNS. Internet nie jest statyczny i oprócz nowych adresów DNS, zabronione witryny kupują nowe adresy, zmieniają domeny najwyższego poziomu i mogą dodawać/usuwać znaki w swoich adresach. Ale nadal ma prawo żyć tak:
ip route add blackhole 1.2.3.4
Całkiem skuteczne byłoby uzyskanie listy adresów IP z listy zabronionych witryn, ale z powodów podanych powyżej przeszliśmy do rozważań na temat Iptables. W wersji CentOS Linux 7.5.1804 istniał już balanser na żywo.
Internet użytkownika powinien być szybki, a przeglądarka nie powinna czekać pół minuty z wnioskiem, że ta strona jest niedostępna. Po długich poszukiwaniach dotarliśmy do tego modelu:
Plik 1 -> /script/odmowa_hosta, lista nazw zabronionych:
test.test
blablabla.bubu
torrent
porno
Plik 2 -> /script/odrzucony_zakres, lista zabronionych przestrzeni adresowych i adresów:
192.168.111.0/24
241.242.0.0/16
Plik skryptu 3 -> ipt.shwykonując pracę z 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
Zastosowanie sudo wynika z tego, że mamy mały hack do zarządzania poprzez interfejs WEBowy, jednak jak pokazało doświadczenie w używaniu takiego modelu przez ponad rok, WEB nie jest już tak potrzebny. Po wdrożeniu pojawiła się chęć dodania listy stron do bazy itp. Liczba zablokowanych hostów to ponad 250 + kilkanaście przestrzeni adresowych. Naprawdę jest problem podczas wchodzenia na stronę przez połączenie https, podobnie jak administrator systemu, mam skargi na przeglądarki :), ale są to przypadki szczególne, większość wyzwalaczy braku dostępu do zasobu jest nadal po naszej stronie , skutecznie blokujemy także Opera VPN i wtyczki takie jak friGate i telemetria firmy Microsoft.
Źródło: www.habr.com