Заблокировать внешнюю сеть по src признаку
-
Сделал так:
rdr on xl0 proto tcp from <disable_soc>to <vkontakte_nets>port = http -> <vkontakte_nets>port 444 round-robin
rdr on xl0 proto tcp from <disable_soc>to <odnoklassniki_nets>port = http -> <odnoklassniki_nets>port 444 round-robin
rdr on xl0 inet proto tcp from any to ! (xl0) port = http -> 127.0.0.1 port 3128Теперь сижу в засаде, жду когда полезут, запросы должны попасть в первоначальное правило, в логе должно быть обращение по 444 порту.</odnoklassniki_nets></odnoklassniki_nets></disable_soc></vkontakte_nets></vkontakte_nets></disable_soc>
-
Да, всё работает. Тема закрыта.
Если кто сюда попадет поиском, буду нюансы постить, вдруг пригодится. -
Ну что коллеги, все работает. Может быть и не совсем красиво, зато надежно.
Формулировка для поисковиков: Как заблокировать Вконтакте и Одноклассники pfSense?
Формулировка задачи от бизнеса: Нужно закрыть доступ к Вконтакте и Одноклассники для нескольких ПК.Решение.
1. Создание алиасов. В Disable_soc вносим хосты, которым нужно запретить. Vkontakte_nets и Odnoklassniki_nets соответственно хосты\подсети блокируемых ресурсов. Удобный инструмент против таких монстров: http://bgp.he.net/search?search%5Bsearch%5D=odnoklassniki&commit=Search
2. Создаем правило для файрволла. См. картинку 1.
3. Создаем правило для ната. См. картинку 2. Т.к. у меня прокси в прозрачном режиме, то запросы на 80 порт перехватывает squid и шлет уже от своего имени, поэтому правило не блокирует такие запросы (только https, т.к. они идет на 443 порт). Редирект можно сделать и на корпоративный сервер, у меня так сделано, чтобы попадало в лог правила из пункта 2.
4. Профит!
ЗЫ: Блокировать https трафик средствами одного сквида сейчас не удалось (в прозрачном режиме), хотя потенциально возможно, если настроить что-то из Dansquard, Squid3 + man in the middle. Возможно когда починят Layer7, можно будет закрыть регулярными выражениями и кастомными фильтрами L7
![01_port forward.png](/public/imported_attachments/1/01_port forward.png)
![01_port forward.png_thumb](/public/imported_attachments/1/01_port forward.png_thumb) -
Думаю, можно обойтись без первого скрина, если во втором не указывать dest port.
-
Думаю, можно обойтись без первого скрина, если во втором не указывать dest port.
Да, это мысль правильная. Можно логировать нат попадания в правило?
-
Поставьте соответствующую галочку в связанном правиле fw.
-
Может быть есть успешный опыт фильтрации https трафика?
Какое оптимальное решение? Можно ли обойтись squid2 или обязательно третий нужен? Видел мануалы с разными вариантами, за 5 минут не вышло, возможно будет позже время поразбираться, но если кто-то поделится опытом, буду признателен. -
2 misant
Исп-те reject вместо block в Ваших правилах по соцсетям. Иначе при откр страниц со ссылками на соцсети будут дикие "тормоза".
И это не панацея. Про анонимайзеры слыхали ?
Рекомендую squid + squidguard + http://blog.bigbytenetworks.com/2014/09/pfsense-squid-squidguard-configuration/ + https-фильтрация.
Прийдется сертификаты пользователям "доверять" для серфинга, но это дело поправимое.P.s. Зачем Вы Port forwarding вообще трогаете? Что это за перенаправление с 80-го на 444-ый причем на теже адреса ? Оно вообще работает ?
Если нужна прозрачная фильтрация - исп. squid со вкл. опцией transparent (описал выше) -
Про reject дельный совет, спасибо.
Про анонимайзеры конечно знаю, но т.к. ведется журнал посещений, то тут уже сотрудник не сможет сказать что случайно нажал на иконку соц сети на нормальном сайте. Использование анонимайзеров это умышленный обход запрета при использовании корпоративных ресурсов, это уже административно должно решаться.Спасибо за рекомендацию, на тестовом стенде при возможности посмотрю. Squid2 там хватит или третий обязательно? Сертификаты подсунем если что, не проблема.
PS: Порт форвардинг нужен, в моих сообщениях сначала темы описывается зачем. Да, оно работает. Редирект можно делать куда угодно, мне так было нужно, чтобы в лог попадало по тому же правилу, что и запросы на 443 порт. Сквид работает как прозрачный прокси.
-
Squid2 там хватит или третий обязательно?
Squid3
-
Squid3
Да, спасибо. Удалось добиться нормальной работы squid3 + squidguard для фильтрации https. Сходу не получилось - генерились сертификаты для ip адресов вместо доменных имен. В IE хоть как-то работало, в Chrome вообще никак, несмотря на добавленный в доверенный корневой сертификат.
Спасла строчка "ssl_bump server-first all" в секции Custom ACLS (After_Auth) настроек squid3.
Тестирую, пока проблем не всплыло.