Актуальнасць блакіроўкі наведванняў забароненых рэсурсаў закранае любога адміна, якому могуць афіцыйна прад'явіць невыкананне закону або распараджэнні адпаведных органаў.
Навошта вынаходзіць ровар тады, калі ёсць спецыялізаваныя праграмы і дыстрыбутывы для нашых задач, напрыклад: Zeroshell, pfSense, ClearOS.
Яшчэ адно пытанне аказалася ў начальства: А ці ёсць у прадукту, які выкарыстоўваецца, сертыфікат бяспекі нашай дзяржавы?
У нас быў досвед па працы з пералічанымі дыстрыбутывамі:
- Zeroshell - распрацоўшчыкі нават падарылі на 2 гады ліцэнзію, але аказалася што цікавы дыстрыбутыў нелагічна для нас выконваў крытычную для нас функцыю;
- pfSense — павага і пашана, адначасова сумна, прывыканне да каманднага радка файрвала FreeBSD і не дастаткова зручна для нас (думаю справу звычкі, але гэта аказалася не «тым шляхам»);
- ClearOS - на нашым жалезе апынулася вельмі павольна, да сур'ёзнага тэставання не змаглі дайсці, вось і навошта такія цяжкія інтэрфейсы?
- Ideco SELECTA. Пра прадукт "Айдэка" асобная размова, цікавы прадукт, але з палітычных меркаванняў не для нас, а яшчэ хочацца "ўкусіць" іх з нагоды ліцэнзіі на той жа лінукс, Roundcube і да т.п. З чаго яны ўзялі, што «напілаваўшы» інтэрфейс у Пітон і адабраўшы правы суперкарыстальніка яны могуць прадаваць скончаны прадукт складзены з распрацаваных і дапрацаваных модуляў інтэрнэт супольнасці якія распаўсюджваюцца па GPL&etc.
Разумею, што цяпер у мой бок пасыпяцца негатыўныя воклічы з патрабаваннямі дэталёва абгрунтаваць свае суб'ектыўныя адчуванні, але хачу сказаць што гэты вузел сеткі таксама з'яўляецца балансавальнікам трафіку на 4 знешнія каналы да сеткі Інтэрнэт, прычым у кожнага канала ёсць свае асаблівасці. Яшчэ краевугольным каменем стала неабходнасць працаваць аднаму з некалькіх сеткавых інтэрфейсаў у розных адрасных прасторах, і я гатовы прызнаць, што ўжываць усюды дзе трэба і не трэба VLANы я не гатовы. У карыстанні ёсць прылады тыпу TP-Link TL-R480T + – паводзяць сябе не ідэальна, увогуле са сваімі нюансамі. Гэтую частку на Linux атрымалася разумна наладзіць дзякуючы оф.сайту Ubuntu
Разгляданае рашэнне не прэтэндуе на ўнікальнасць, але хочацца задаць пытанне: "А навошта на прадпрыемстве прыстасоўвацца пад іншыя сумнеўныя прадукты з сур'ёзнымі апаратнымі патрабаваннямі калі можна разгледзець альтэрнатыўны варыянт?".
Калі ў РФ ёсць спіс Роскомнадзора, ва Украіне - дадатак да Рашэння Савета НацБяспекі (напр.
Маючы зносіны з калегамі на іншых прадпрыемствах, на якіх па змаўчанні забароненыя ўсе сайты і толькі па запыце з дазволу начальніка можна атрымаць доступ да пэўнага сайта, паважліва ўсміхнуўшыся, падумаўшы і пакурыўшы над праблемай прыйшло разуменне таго, што жыццё ўсёткі добрае і мы пачалі свой пошук.
Маючы магчымасць не толькі аналітычна паглядзець, што пішуць у «кнігах хатніх гаспадынь» пра фільтраванне трафіку, але і паглядзець што адбываецца на каналах розных правайдэраў мы прымецілі наступныя рэцэпты (любыя скрыны крыху абрэзаныя, прашу зразумець прасіць):
Правайдэр 1
- не затлумляецца і навязвае ўласныя ДНС сервера і празрысты проксі-сервер. Ну што?.. затое ў нас ёсць доступ туды куды трэба (калі нам гэта трэба:))
Правайдэр 2
- лічыць што яго верхні правайдэр павінен пра гэта думаць, тэхпадтрымка верхняга правайдэра нават прызналася чаму я не магу адкрыць неабходны мне не забаронены сайт. Я думаю што карцінка вас развесяліць 🙂
Як аказалася, яны імёны забароненых сайтаў пераводзяць у айпі адрасы і блакуюць менавіта IP (не турбуе іх тое, што на гэтым IP адрасе можа размяшчацца і 20 сайтаў).
Правайдэр 3
- Прапускае трафік туды, але назад па маршруце яго не пускае.
Правайдэр 4
- забараняе ўсе маніпуляцыі з пакетамі ў паказаным кірунку.
А што рабіць з ВПН (браўзэру Opera павага) і плягінамі для браўзэраў? Гуляючы спачатку з вузлавым Mikrotik у нас нават з'явіўся рэсурсаёмісты рэцэпт на L7, ад якога ў наступстве прыйшлося адмовіцца (забароненых назоваў можа быць і пабольш, сумна становіцца калі акрамя сваіх прамых абавязкаў па маршрутах, на 3х дзясятках выразаў загрузка працэсара PPC460GT сыходзіць у 100 %).
.
Што стала зразумела:
ДНС на 127.0.0.1 абсалютна не панацэя, сучасныя версіі браўзэраў такі дазваляюць абыходзіць падобныя траблы. Абмежаваць усіх карыстальнікаў зрэзанымі правамі нельга, і нельга забываць аб вялікай колькасці альтэрнатыўных ЗНС. Інтэрнэт не статычны, і акрамя новых ДНС адрасоў, забароненыя сайты купляюць новыя адрасы, змяняюць дамены верхняга ўзроўню, могуць дадаць/выдаліць сімвал у сваім адрасе. Але ўсё ж мае права жыць нешта тыпу:
ip route add blackhole 1.2.3.4
Цалкам дзейсным было б атрыманне спісу IP адрасоў са спісу забароненых сайтаў, але па ўказаных вышэй меркаваннях мы перайшлі да меркаванняў аб Iptables. Існаваў ужо жывы балансавальнік на CentOS Linux release 7.5.1804.
Інтэрнэт у карыстача павінен быць хуткім, а Браўзэр не павінен чакаць паўхвіліны, складаючы што дадзеная старонка не даступная. Пасля доўгіх пошукаў мы дашлі да такой мадэлі:
Файл 1 -> /script/denied_host, спіс забароненых назваў:
test.test
blablabla.bubu
torrent
porno
Файл 2 -> /script/denied_range, спіс забароненых адрасных прастор і адрасоў:
192.168.111.0/24
241.242.0.0/16
Файл-скрыпт 3 -> ipt.sh, які выконвае працу з 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
Ужыванне sudo абумоўлена тым, што ў нас ёсць невялікі хак для кіравання праз WEB інтэрфейс, але як паказаў досвед выкарыстання такой мадэлі тэрмінам больш за год, то WEB не так ужо і патрэбен. Пасля ўкаранення было жаданне пералік сайтаў завесці ў БД і да т.п. Колькасць заблакаваных хастоў больш за 250 + дзесятак адрасных прастор. Сапраўды ёсць праблема пры пераходзе на сайт па https злучэнню, як і сістэмнага адміністратара ў мяне ёсць прэтэнзіі да браўзэраў :), але гэта дзелі выпадкі, большасць спрацоўванняў да адсутнасці доступу да рэсурсу ўсё ткі на нашым боку, гэтак жа паспяхова блакуем Opera VPN, убудовы тыпу friGate і тэлеметрыю ад Майкрасофт.
Крыніца: habr.com