Контент-фильтр средствами СПО
|
|
|
Дата: Понедельник, 09.01.2012, 09:45 | Сообщение #11
|
Сергеев_ЕВ
Модератор форума
Группа: Модераторы
Сообщений: 3177
Статус: Отсутствует
|
Ну, Иван Олегович, давайте, подсказуйте... Поставил я новую ось, MInt12, мне и одиннадцатый-то нравился, а в 12м gnome-shell организован просто шикарно, не в пример убунте... Ну да ладно, не о том сейчас. Поставил ось, поставил arno-iptables-firewall (Доступно только для пользователейнебольшая статейка, буквально для чайников, как в два клика настроить трансляцию пакетов между сетями), переконфигурировал, как там просят. Далее, состряпал два скрипта, как Вы рекомендуете, подвесил в авторан. Поставил сквида, даже гадмина к нему прикрутил.
А дальше-то как? В статье много чего полезного написано, но нет главного: с чего начать. Где прописывать все эти строки? Это команды? В-общем, давайте уж, выручайте... Можно начать с того момента, когда сквид уже установлен.
Окажу помощь в создании и администрировании учительских сайтов в системе uCoz
|
|
|
|
|
Дата: Понедельник, 09.01.2012, 18:58 | Сообщение #12
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Как понял, о работоспособности трансляции пакетов можно не беспокоиться. Но обращаю внимание на коммент к той статейке: Quote Q. Подскажите как можно все запросы перенаправить на squid с портом 3128 ? A. Для таких операций надо отказаться от использования arno-iptables-firewall и настраивать iptables вручную. У меня как раз такой случай.
В файле /etc/squid/squid.conf есть все настройки. Большая часть файла - комментарии и закомментированные примеры настроек. В основном настраиваются следующие вещи (ищите их среди незакомментированных): 1. Порт, на котором работает прозрачный прокси. Настройку можно найти в конфиге по номеру 3128 и дописать "transparent". У меня так: Code http_port 3128 transparent Зависит от того, на какой порт перенаправляете пакеты.
2. Списки контроля доступа (ACL). Ищутся по незакомментированным строкам, начинающимся с "acl": 2а. Подсети или конкретные компы организации. У меня так: Code acl localnet src 192.168.0.0/24 acl localnet src 192.168.1.0/24 acl localnet src 192.168.2.0/24 acl localnet src 192.168.3.0/24 acl students26 src 192.168.0.21/32 acl students26 src 192.168.0.22/32 acl students26 src 192.168.0.23/32 acl students26 src 192.168.0.24/32 acl students26 src 192.168.0.25/32 acl students26 src 192.168.0.26/32 acl students26 src 192.168.0.27/32 acl students26 src 192.168.0.28/32 acl students26 src 192.168.0.29/32 acl students26 src 192.168.0.30/32 acl students26 src 192.168.0.31/32 acl students26 src 192.168.0.32/32 acl students11 src 192.168.0.41/32 acl students11 src 192.168.0.42/32 acl students11 src 192.168.0.43/32 acl students11 src 192.168.0.44/32 acl students11 src 192.168.0.45/32 acl students11 src 192.168.0.46/32 acl students11 src 192.168.0.47/32 acl students11 src 192.168.0.48/32 acl students11 src 192.168.0.49/32 acl students11 src 192.168.0.50/32 acl students11 src 192.168.0.51/32 acl students21 src 192.168.0.61/32 acl students21 src 192.168.0.62/32 acl students21 src 192.168.0.63/32 acl students21 src 192.168.0.64/32 acl students21 src 192.168.0.65/32 acl students21 src 192.168.0.66/32 acl students21 src 192.168.0.67/32 acl students21 src 192.168.0.68/32 acl students21 src 192.168.0.69/32 acl students21 src 192.168.0.70/32 acl students21 src 192.168.0.71/32 Как видим, тут как подсети целиком, так и с точностью до конкретного компа (статика). Группы компов и подсетей могут иметь одно имя. Тут перечислены три компьютерных класса с именами students11, students21, students26. 2б. Группы портов. Пример: Code acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 1025-8999 2в. Время доступа. Например, чтобы всё это работало только с 07:40 до 20:00. Я этого не настраиваю. 2г. Доступные сайты. Можно забивать список прямо в этот конфиг, но из-за частых правок я выношу это в отдельный файл: Code acl WhiteList url_regex -i "/home/iyugov/WhiteList" acl BlackList url_regex -i "/home/iyugov/BlackList" Тут у меня не список сайтов, а список регулярных выражений (в отдельном файле). Начало файла WhiteList выглядит так: Code ^http://(www.)?elementy.ru/* ^http://(www.)?intuit.ru/* ^http://(www.)?fipi.ru/* ^http://(www.)?erudites.ru/* ^http://desc.ru/* ^http://([0-9a-zA-Z._-])*.desc.ru/* ^http://(www.)?botik.ru/* ^http://(www.)?arbuz.uz/* ^http://(www.)?realcoding.net/* ^http://([0-9a-zA-Z._-])*.edu.ru/* ^http://edu.ru/* ^http://(www.)?rustest.ru/* ^http://(www.)?ege.ru/* ^http://(www.)?egeinfo.ru/* ^http://(www.)?ctege.org/* ^http://(www.)?test4u.mobi/* ^http://(www.)?schoolportal.ru/* ^http://(www.)?tverobr.ru/* ^http://([0-9a-zA-Z._-])*.tverobr.ru/* ^http://(www.)?uchportal.ru/* 2д. Возможно, какие-то второстепенные типы ACL.
3. Собснна, использование ACL. Ищется по незакомментированным строкам, начинающимся, в основном, с "http_access": Пример: Code http_access deny !Safe_ports # запретить некошерные порты http_access deny students11 BlackList # запретить учащимся "чёрный список" http_access allow students11 WhiteList # разрешить учащимся "белый список" (за исключением сайтов, особо упомянутых в "чёрном") http_access deny students11 all # запретить учащимся всё (остальное) http_access deny students26 BlackList # аналогично http_access allow students26 WhiteList # аналогично http_access deny students26 all # аналогично http_access deny students21 BlackList # аналогично http_access allow students21 WhiteList # аналогично http_access deny students21 all # аналогично http_access allow localnet all # разрешить всей (остальной) локалке всё http_access allow localnet # аналогично http_access deny all # запретить всё (всем остальным, "левым" компам, на всякий случай) Смысл "чёрного списка" - например, запретить статью про нудизм в разрешённой в целом "Википедии". Главное - разобраться с порядком применения правил. После каждого изменения конфига надо делать Сквиду restart или reload. В первом посте темы давал ссылку на более детальное руководство. Вот, как-то так.
Сообщение отредактировал iyugov - Понедельник, 09.01.2012, 19:17
|
|
|
|
|
Дата: Среда, 11.01.2012, 11:43 | Сообщение #13
|
Сергеев_ЕВ
Модератор форума
Группа: Модераторы
Сообщений: 3177
Статус: Отсутствует
|
Ого! Ну, вроде, более-менее понятно... Надо пробовать, в-общем...
Я немного поигрался с минтом, да, видимо, переборщил малость с твиками: упал, гад... Но нашел в нем любопытненький такой пакет - mintnanny - блокировщик доменов. Локально блокирует в лёт, на раздаче трафика по сети не успел попробовать.
Решил вернуться к истокам, к убунте. Из-за дефицита времени ее твиканье производил почти на автопилоте, вот только автопилот программировал кто-то явно не очень трезвый - после четырех (!) переустановок решил плюнуть и поставить сиалию (это тоже убунта, только десяточка еще, ну и затвиканная до "нет-могу"). Вчера поставил, на ночь оставлял на апгрейд. Сегодня, вроде, запустилась.
А по поводу отключения арна, у меня ситуация такая: мне ведь нужно фильтровать только http- b ftp-трафик, самбовый же нужно пропускать: у меня на общем сервере-файлопомойке расшарены ресурсы, которыми я активно пользуюсь на уроках. Вот я и думаю, если арну убить, то я и не достучусь до файлопомойки, а если не убить, то тогда фильтр будет дырявым...
Окажу помощь в создании и администрировании учительских сайтов в системе uCoz
|
|
|
|
|
Дата: Среда, 11.01.2012, 18:46 | Сообщение #14
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Но мы же фильтруем инет, а не ресурсы локальной сети. К тому же, если файл-сервер в том же сетевом сегменте, что и рабочие станции, то общение с ним должно происходить без шлюза, напрямую.
|
|
|
|
|
Дата: Среда, 11.01.2012, 19:00 | Сообщение #15
|
Сергеев_ЕВ
Модератор форума
Группа: Модераторы
Сообщений: 3177
Статус: Отсутствует
|
Quote (iyugov) К тому же, если файл-сервер в том же сетевом сегменте, что и рабочие станции В том-то и дело, что учительские машины в компьютерных классах - они и есть шлюзы для ученических компьютеров, т.к. классов два, а файловый сервер один, и он общий
Окажу помощь в создании и администрировании учительских сайтов в системе uCoz
|
|
|
|
|
Дата: Четверг, 12.01.2012, 02:54 | Сообщение #16
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Надеюсь, что правильно понял структуру сети. Выражаю свою мысль картинкой:
Тут, правда, возникает вопрос с идентификацией компьютеров учащихся. Его можно решить, например, перенаправлением http- и ftp-трафика на какие-нибудь нестандартные порты. Тогда squid можно обучить правилам по фильтрации только на этих портах. Но может оказаться проще разжаловать учительские шлюзы в обычные рабочие станции. У вас ведь не по 10 сетевых карт в каждом учительском системнике, а всё равно подключения через свич/роутер идут?
Сообщение отредактировал iyugov - Четверг, 12.01.2012, 03:08
|
|
|
|
|
Дата: Четверг, 12.01.2012, 10:42 | Сообщение #17
|
Сергеев_ЕВ
Модератор форума
Группа: Модераторы
Сообщений: 3177
Статус: Отсутствует
|
Quote (iyugov) Надеюсь, что правильно понял структуру сети Да, в принципе, все именно так и есть. Единственно, что доступ к файлопомойке не по фтп, а по самбе - сеть гетерогенная. Quote (iyugov) возникает вопрос с идентификацией компьютеров учащихся Идентификация где? На шлюзе для получения трафика? Везде стоит статика, но на файлопомойке запущен дхцпед - так, виндовый пережиток, запущен еще во времена приснопамятные, да так и остался на всякий случай. Иногда бывает даже полезно: ставишь ось (не суть важно: маздай ли, линукс ли) и при установке по дхцпеду подхватывает первоначальные сетевые настройки автоматом. Quote (iyugov) У вас ведь не по 10 сетевых карт в каждом учительском системнике, а всё равно подключения через свич/роутер идут? Конечно. По две карты в каждом шлюзе, внутри классов - свитчи. Quote (iyugov) Но может оказаться проще разжаловать учительские шлюзы в обычные рабочие станции Не вопрос, только как тогда оперативно управлять доступом? Я же хочу, чтобы не просто фильтровался трафик, а чтобы в любой момент учитель в классе (не обязательно я) мог бы ткнуть пипку - калиточка закрылась напрочь, снова ткнуть - отворилась, но с фильтрацией содержимого. Поэтому на учительских машинках тоже должен быть какой-то функционал для этого, и, полагаю, на них тоже нужно будет поднимать свои сквиды.
Окажу помощь в создании и администрировании учительских сайтов в системе uCoz
|
|
|
|
|
Дата: Четверг, 12.01.2012, 11:19 | Сообщение #18
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Quote (Сергеев_ЕВ) на учительских машинках тоже должен быть какой-то функционал для этого Это всё можно делать удалённо. Нужен ведь только доступ к трём файлам шлюза - "чёрный список", "белый список", конфиг сквида - и возможность делать сквиду start, stop, restart, reload. DHCP при установке системы лично мне никогда не требовался: в Linux можно заранее прописать статику, а Windows на момент установки часто не располагает драйвером сетевухи. В любом случае наличие DHCP-сервера никак не конфликтует со статическими адресами в той же подсети. Мой шлюз является одновременно FTP-сервером (которым никто не пользуется) и Samba-сервером (который используется весьма интенсивно как из внутренней, так и из внешней сети). Squid на это никогда не влиял.
Сообщение отредактировал iyugov - Четверг, 12.01.2012, 14:54
|
|
|
|
|
Дата: Четверг, 12.01.2012, 18:04 | Сообщение #19
|
Сергеев_ЕВ
Модератор форума
Группа: Модераторы
Сообщений: 3177
Статус: Отсутствует
|
Я больше, все-таки, склоняюсь к прокси-каскадированию: на главном шлюзе настроить один прокси-сервер, на котором производить фильтрацию всего школьного трафика, а на учительских машинках поднять свои локальные прокси для управления потоками от главного шлюза в класс и обратно, не соваясь в настройки главного шлюза. Имхо, так будет правильнее. У меня так в "маздайную эру" все было заточено, и все работало нормально. Ладно завтра попробую сквида поставить на свою тачку - надо же с чего-то начинать!
Окажу помощь в создании и администрировании учительских сайтов в системе uCoz
|
|
|
|
|
Дата: Суббота, 14.01.2012, 15:04 | Сообщение #20
|
iyugov
Владыка слова
Группа: Друзья
Сообщений: 1433
Статус: Отсутствует
|
Перенёс родной уже шлюз поближе к точке входа интернета в здание. Если раньше сигнал в бухгалтерию шёл так: файрвол - распределитель - инжектор питания - точка доступа - воздух - земля стена - воздух - WiFi-LAN-карты шлюза - 7 (!) свичей в разных местах. Теперь идёт так: файрвол - LAN-LAN-карты шлюза - 3 свича. Успех. Конечно, инет стал быстрее. Негоже вешать пол-учреждения на один вайфай со средненьким сигналом.
Сообщение отредактировал iyugov - Суббота, 14.01.2012, 15:08
|
|
|
|