Iptables a filtrování provozu proti chudým a lenivým jinak smýšlejícím

Relevance of blocking access to prohibited resources concerns any admin who may officially face accusations of non-compliance with the law or orders from relevant authorities.

Iptables a filtrování provozu proti chudým a lenivým jinak smýšlejícím

Why reinvent the wheel when there are specialized programs and distributions for our tasks, such as: Zeroshell, pfSense, ClearOS.

Another question arose from management: Is the used product certified for security by our state?

We have experience with the listed distributions:

  • Zeroshell — the developers even gifted us a 2-year license, but it turned out that the distribution of interest was illogical for us in performing a critical function;
  • pfSense — respect and honor, but also boredom; getting used to the FreeBSD firewall command line was not convenient for us (I think it’s a matter of habit, but it didn’t turn out to be 'the right way');
  • ClearOS — turned out to be very slow on our hardware; we couldn’t reach serious testing, so why such heavy interfaces?
  • Ideco SELECTA. The product 'Aideco' is a separate conversation; it’s an interesting product but politically not for us. I also want to 'bite' them regarding the license for the same Linux, Roundcube, etc. How did they come to think that by 'cutting' the interface and taking superuser rights they can sell a finished product composed of developed and refined modules from the internet community distributed under GPL&etc. CouchDB I understand that negative remarks demanding a detailed justification of my subjective feelings will now fall upon me, but I want to say that this network node also serves as a traffic balancer for 4 external channels to the Internet, and each channel has its own features. Another cornerstone became the necessity for one of several network interfaces to operate in different address spaces, and I

am ready to admit that I am not ready to apply VLANs everywhere they are needed and not needed. In terms of devices like TP-Link TL-R480T+ — they do not behave perfectly, with their own nuances. This part was reasonably configured on Linux thanks to the official Ubuntu website. IP Load Balancing: combining multiple internet channels into one.. V užívání jsou zařízení typu TP-Link TL-R480T+ — chovají se neideálně, obecně s některými nuancemi. Tuto část se podařilo rozumně nastavit na Linuxu díky oficiálnímu webu Ubuntu. IP-Balancing: spojujeme několik internetových kanálů do jednoho.. Každý z kanálů může kdykoliv „spadnout“ i vzrůst. Pokud vás zajímá skript, který aktuálně funguje (o tom by se měla napsat zvláštní publikace) — pište do komentářů.

Zvažované řešení si nenárokuje na unikátnost, ale chtěl bych se zeptat: „Proč by se mělo v podniku přizpůsobovat pochybně funkčním produktům se značnými hardwarovými požadavky, když lze zvážit alternativní variantu?“.

Pokud existuje v RF seznam Roskomnadzoru, na Ukrajině — příloha k rozhodnutí Rady národní bezpečnosti (např. tady je), tam na místech také vedoucí nezahálí. Například nám byl předán seznam zakázaných stránek, které podle vedení zhoršují produktivitu práce na pracovišti.

Když jsme komunikovali s kolegy v jiných podnicích, kde jsou ve výchozím nastavení zakázány všechny stránky a pouze na žádost s povolením vedoucího je možné získat přístup k konkrétní stránce, s úctou se usmívajíc, jsme přemýšleli a „přemítali nad problémem“, přišli jsme na to, že život je přece jen dobrý a začali jsme svůj vlastní hledání.

Měli jsme možnost nejen analyticky se podívat na to, co se píše v „knihách hospodyněk“ o filtrování trafficu, ale také vidět, co se děje na kanálech různých poskytovatelů. Zaznamenali jsme následující recepty (jakékoli snímky obrazovky jsou mírně oříznuté, prosím pochopte, že je žádám):

Poskytovatel 1
— se tím nezaměřuje a nutí své vlastní DNS servery a průhledný proxy server. Nu což?.. ale máme přístup tam, kam potřebujeme (pokud to potřebujeme :))

Poskytovatel 2
— domnívá se, že jeho vyšší poskytovatel by o tom měl uvažovat, technická podpora vyššího poskytovatele se dokonce přiznala, proč nemohu otevřít potřebnou nezakázanou stránku. Myslím, že vás obrázek pobaví 🙂

Iptables a filtrování provozu proti chudým a lenivým jinak smýšlejícím

Jak se ukázalo, převádějí zakázané stránky na IP adresy a blokují přímo IP (nevadí jim, že na této IP adrese může být umístěno také 20 stránek).

Poskytovatel 3
— propouští traffic tam, ale zpět po trase ho nepouští.

Poskytovatel 4
— zakazuje všechny manipulace s pakety v uvedeném směru.

A co dělat s VPN (prohlížeč Opera je respektován) a pluginy pro prohlížeče? Když jsme si hráli s uzlovým Mikrotik, dokonce jsme přišli s výpočetně náročným receptem na L7, od kterého jsme nakonec museli odstoupit (zakázaných názvů může být mnohem víc, je smutné, když kromě svých přímých povinností k trasování, na 30 vyjádřeních zatížení procesoru PPC460GT dosahuje 100%).

Iptables a filtrování provozu proti chudým a lenivým jinak smýšlejícím.

Co se ukázalo jako jasné:
DNS na 127.0.0.1 rozhodně není panacea, moderní verze prohlížečů skutečně umožňují obcházet podobné problémy. Nelze omezit všechny uživatele zúženými právy a nelze zapomínat na ohromné množství alternativních DNS. Internet není statický, a kromě nových adres DNS zakázané weby kupují nové adresy, mění domény nejvyšší úrovně, mohou přidat/odstranit znak ve své adrese. Ale přesto má právo na existenci něco jako:

ip route add blackhole 1.2.3.4

Celkem účinné by bylo získání seznamu IP adres ze seznamu zakázaných webů, ale z výše uvedených důvodů jsme přešli k řešením pomocí Iptables. Již existoval funkční vyvažovač zatížení na CentOS Linux release 7.5.1804.

Internet u uživatele by měl být rychlý a prohlížeč by neměl čekat půl minuty, aby zjistil, že tato stránka není dostupná. Po dlouhém hledání jsme se dostali k následujícímu modelu:
Soubor 1 -> /script/denied_host, seznam zakázaných názvů:

test.test
blablabla.bubu
torrent
porno

Soubor 2 -> /script/denied_range, seznam zakázaných adresních prostorů a adres:

192.168.111.0/24
241.242.0.0/16

Soubor-skript 3 -> ipt.sh, který provádí práci s 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

Použití sudo je důsledkem skutečnosti, že máme malý hack pro správu přes WEB rozhraní, ale jak ukázala praxe používání takového modelu více než rok, WEB není tak potřebný. Po nasazení jsme měli přání zavést seznam webů do databáze atd. Počet zablokovaných hostitelů je více než 250 + desítka adresních prostorů. Opravdu nastává problém při přechodu na web přes https spojení, jakož i systémový administrátor mám výhrady k prohlížečům :), ale to jsou ojedinělé případy, většina aktivací bez přístupu k zdroji je na naší straně, stejně úspěšně blokujeme Opera VPN, pluginy jako friGate a telemetry od Microsoftu.

Iptables a filtrování provozu proti chudým a lenivým jinak smýšlejícím

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster