To-do: Фильтруем вся и всё

Автор: admin от 31-07-2013, 07:59, посмотрело: 3711

Данная статья представляет из себя скорее более FAQ, чем полноценный мануал. Впрочем, многое уже написано на хабре и для того присутствует поиск по тегам. Смысла переписывать всё заново большого нет.

В последнее время наше государство, к счастью или не к счастью, принялась за интернет и его содержимое.
Многие, несомненно, скажут что нарушаются права, свободы и т.п. Конечно, думаю мало у кого возникнуть сомнения по поводу того, что то что придуманные законы сделаны мало понимающими людьми в деле интернетов, да и основная их цель это не защита нас от того, что там есть. Будучи ответственным человеком да подгоняемый и прокурорами в некоторых учреждениях, встаёт вопрос ограничения поступающей информации. К таким учреждениям, к примеру, относятся школы, детсады, университеты и т.п. им учреждения. Да и бизнесу то-же надо заботится об информационной безопасности.
И первый наш пункт на пути к локальному контент фильтру-это

Анализ того, что такое есть интернет и как он работает.


Не для кого не секрет, что 99 процентов интернета-это http. Далее известно, что у каждого сайта есть имя, содержания страницы, url, ip адрес. Известно, также, что на одном ip может сидеть несколько сайтов, как и наоборот. Так-же, url адреса могут быть как динамичны, так и постоянны.
А то, что записано на страничке, то написано. Отсюда делаем выводы, что сайты можно мониторить по:


  • Имени сайта

  • url страницы

  • По содержанию написанного на страничке сайта

  • По ip адресу.


  • Далее, весь контент в интернете можно разделить на три группы:


  • Это плохое

  • Это неизвестное

  • Это хорошее.


  • И отсюда вытекает два идеологических пути:


  • Разрешаем только то, что хорошее и запрещаем плохое и неизвестное. Данный путь носит название — БООЛЬШОЙ(а бывает и маленький) Белый список

  • Разрешаем только то, что хорошее и неизвестное. Запрещаем только плохое. Данный путь носит гордое имя Чёрный список.


  • Ну и конечно между двумя этими путями существует золотая середина-запрещаем плохое, разрешаем хорошее, а неизвестное анализируем и в режиме онлайн выносим решение-плохо или хорошо.

    Cредства их осуществления.


    Тут опять два пути:


    • Берём готовое решение.

    Такие решения тоже бывают 3 видов-платные, бесплатные, ограниченные(пока не дашь денежку).

    Платные решения-это аппаратные(тобишь коробка с неизвестно чем, но делающая своё дело), аппаратно-программные(это то-же коробка, но уже с полноценной ос и соответствующими приложениями) и программные.
    Бесплатные решения-это только программные. Но бывают и исключения, но это как раз тот случай, подтверждающий правило.
    К платным относятся такие, как Kaspersky антивирус соответствующего функционала, ideco.ru, netpolice, kerio и т.п. Найти их легко, ибо их хорошо рекламируют и достаточно в строке поиска ввести что-то вроде — контентный фильтр купить.
    Бесплатные решения имеют один недостаток-они всё сразу делать не умеют. найти их затруднительнее. Но вот их список: PfSense, SmoothWall(бывает двух видов-платный и бесплатный. Бесплатный немного не функционален), UntangleGateway, Endian Firewall(тоже есть платный и бесплатный), IPCOP, Vyatta, ebox platform, Comixwall(Чудное решение. Можете скачать с моего сайта 93.190.205.100/main/moya-biblioteka/comixwall). Все данные решения обладают одним недостатком — ограниченность.


    • Делаем всё руками.

    Данный путь самый трудный, но самый и гибкий. Позволяет сотворить всё, что душа пожелает(в том числе и лазейку).
    Тут есть великое множество компонентом. Но самые мощные и нужные это-


  • Squid.Без прокси ни куда.

  • Dansguardian. Это сердце всего контентного фильтра. Единственный ему бесплатный соперник(не считая его форков)-это POESIA фильтр(но он очень дремуч).

  • DNS сервер Bind.

  • Clamav. Антивирус.

  • Squidguard, режик и им подобные редиректоры для прокси.

  • Squidclamav.

  • Sslstrip. Эта утилита делает из зашифрованного https трафика, расшифрованный http трафик.
    www.thoughtcrime.org/software/sslstrip. Аналоги ей прокси-сервер flipper и charly proxy. Но работают аналоги на Windows. А второй платен. Но кому надо, то можно и wine развернуть.

  • Чёрные списки. Данные списки можно взять с www.shallalist.de/ (1,7 миллионов сайтов), www.urlblacklist.com (а именно версию big с более чем 10 миллионами сайтов), www.digincore.com/ (около 4 миллионов), списки режика.

  • Белые списки. Тут всё очень туго. Единственный нормальный(значит-большой) русскоязычный список можно получить от лиги безопасного интернета, и то только в качестве proxy лиги безопасного интернета или программы www.ligainternet.ru/encyclopedia-of-security/parents-and-teachers/parents-and-teachers-detail.php?ID=532. Кстати в связи с digest авторизацией на прокси лиги, данный прокси не подцепить к squid. Если кто знает как подцепить в качестве родительского прокси, прокси сервер с digest аутентификацией, прошу сообщить.

  • DNS списки. Тут есть два известный варианта. Первый-это skydns фильтр www.skydns.ru/.
    Второй-это yandex dns dns.yandex.ru/.
    Skydns более функционален, в отличии от яндекса.



  • Где происходит фильтрация.


    Возможны следующие варианты:


  • На компьютерах пользователя без централизованного управления, в качестве системного компонента или приложения.

  • То-же, что и первое, но с централизованным управлением(как пример KASPERSKY ADMINISTRATION KIT).

  • Компонент к браузеру. Есть для хрома и лиса соответствующие плагины

  • На отдельном компьютере или кластере компьютеров(включая вариант-на шлюзе).

  • Распределёнка.


  • 1 и 2, 3 варианты с точки зрения быстроты фильтрации-самые быстрые при массовом использовании сети.
    С точки зрения трудозатрат, 1 и 3-самые трудозатратные.
    С точки зрения надёжности не обхода фильтрации пользователем, то 4-первое место.
    5 вариант-мечта. Но его нет нигде.

    Теперь следующий вопрос:

    Надёжность фильтрации.


    Думаю, ясно. Защиту нужно делать многоуровневой, ибо то, что просочится на одном уровне защиты, перекроется другим уровнем.

    Давайте поговорим о

    О недостатках уровней защиты.



    • Списки

    Интернет-это постоянно и главное-очень быстро меняющаяся среда. Понятно, что наши списки будут не поспевать за интернетом, а уж тем более если мы их будем вести руками. Потому участвуйте в сообществах составления списков и используйте не только файлы со списками, но и сервисами списков, где всё сделают за нас(пример — skydns и yandex).
    Да и список не гарантирует того, что на какой-то страничке написано что-то не то, а сам сайт полностью белый и пушистый.
    Используйте несколько списков. Что не попало в один, может попало в другой.!!!
    К программам, работающим по спискам относятся Netpolice(http://netpolice.ru), цензор(http://icensor.ru/), Traffic Inspector для школ(http://www.smart-soft.ru/ru ) и др. Обычно программы, умеющие делать лексический разбор, умеют работать и по спискам.
    Цензор имеет старенькую базу от 2008 года. Но бесплатен во всем. Netpolice существует множество версий и есть бесплатная, но урезанная.
    И не забываем-ни чёрные, ни белые списки не смогут вас оградить на 100%. На то способен только лексический анализ.


    • Анализ на вирусы.

    Тут главная проблема-антивирусные базы. Опять же, один антивирус на шлюзе, другой-на рабочем месте.


    • Анализ содержания написанного на страничке.

    Тут главная проблема — лексический разбор текста. На искусственный разум, понятно, денег нет ни у кого, потому используют базу слов и выражений с весовым коэффициентом. Чем меньше база-тем менее эффективна фильтрация, но и чем больше база, тем более она эффективна, но и трудозатратна. К примеру, разбор произведения Жюль Верна Таинственный остров с lib.ru занимает 8 секунд с моей базой и dansguardian(core2duo 2,66). Да и базу надо где-то взять. Нормальную базу мне пришлось делать самому, чем с вами и делюсь 93.190.205.100/main/dlya-dansguardian/spiski/view.

    Следующий вопрос-это

    Возможность обхода пользователем контентной фильтрации.


    Данный вопрос можно решить двумя радикальными способами.

  • Запретить прямой выход в сеть, за исключением прохода через прокси сервер(на прокси надо и метод CONNECT ограничить списком доменов или/и ip или mac адресов.) Это делаем или при помощи iptables, или просто в sysctl.conf пишем net.ipv4.ip_forward=0. Ну iptables — это вопрос уже отдельной статьи.

  • Запретить пользователям на рабочих местах что-то ставить. Ясно дело: нет программы-нет обхода.


  • Вопрос-производительность.


    Тут более или менее всё ясно-больше памяти, больше герц, больше кэша. И очень полезно для тех, у кого мощности маленькие, использовать оптимизацию по CFLAGS. Это позволяют делать все линуксы и фряхи, но особо удобны gentoo, calculate linux, slackware, freebsd.
    У кого многоядерные процессоры, то используйте OPEMNP(dansguardian пригодный для оного можете взять у меня 93.190.205.100/main/dlya-dansguardian. Кстати, в нём-же исправлена ошибка с невозможностью загрузки данных в интернет.) CFLAGS="-fopenmp". LDFLAGS="-lgomp". Не забудьте включить -O3 -mfpmath=sse+387. Про автопатчинг здесь.

    Вопрос-иерархия кэшей и прокси.


    Если у вас много компьютеров и вы имеете возможность использовать несколько в качестве фильтрации, то делайте так. На одном ставите прокси сервер squid и указываете на нём параметры родительских кэшей с параметром round-robin(http://habrahabr.ru/post/28063/). В качестве родительских на каждом конкретном компьютере выступает выступает dansguardian со squid в связке(ибо без вышестоящего dansguardian не умеет). Вышестоящие располагаются на тех-же компьютерах, на которых располагаются и dansguardians. Для вышестоящих большой кэш не имеет смысла делать, а для первого-обязательно самый большой кэш. Даже если у вас одна машина, то на ней всё-равно делайте связку squid1->dansguardian->squid2->провайдер с таким-же распределением кэширования. На dansguardian не возлагайте ничего, кроме анализа написанного на страницах, перерисовки контента, заголовков и некоторых url, блокировки mime типов. Не в коем случае не вешайте на него антивирус и чёрные листы, иначе будут тормоза.

    Анализ по спискам пусть будут делать squid1 и squid2.
    Проверку на вирусы пусть будет делать squidclamav через c-icap на squid2. Белые списки вешаем на squid1.
    Всё, что в белом списке, должно идти напрямую в интернет, минуя родительские прокси.!!!

    DNS сервер обязательно используем свой, в котором используем перенаправление на skydns или dns от yandex. Если есть локальные ресурсы провайдера, то добавляем зону forward на dns провайдера. Так-же в dns сервере прописываем локальную зону для нужных внутрисетевых ресурсов(а что-бы было красиво, они нужны). Указываем nosslsearch поиска google. В конфигах squid обязательно используем свой dns.
    Для всего используем вебку Webmin и командную строчку. На windows серверах всё делаем через мышку.

    Настройка локальной сети



  • Используйте аутентификацию по ip адресам. Если вы не «серьёзная» организация, доступ с обязательным логинированием ни к чему.

  • Используйте логически разделённые сети в одной сплошной физической сети. IP адреса выдавайте по MAC адресам. Запрещайте коннект на порт прокси-сервера при несовпадении MAC адреса машины с присвоенному данному MAC адресу, IP адреса.

  • Настройте iptables таким образом, чтобы обращения на любые порты(3128, 80, 80, 3130, 443) шло через порт прокси сервера.

  • Настройте автоматическую настройку прокси-сервера в сети через dns и dhcp. www.lissyara.su/articles/freebsd/trivia/proxy_auto_configuration/

  • Группы и уровень фильтрации делайте по ip адресу.

  • Можно настроить прокси в настройках браузера.



  • К нам идёт проверка.


    В данном случае-все ползунки в максимум.
    Дополнительно-запрещаем все видеосайты, контакт, социальные сети, музыкальные порталы, файлообменники и файлообменные сети.
    Запрещаем mp3.
    Ставим галочку напротив безопасного поиска в личном кабинете SKYDNS.
    Обязательно приводим в порядок документацию!!!

    Фильтрация https


    Для этого между squid2 и провайдером, вклиниваем sslstrip. Эта утилита делает из зашифрованного https трафика, расшифрованный http трафик. www.thoughtcrime.org/software/sslstrip/. Можно также в правилах squid1 задать соответствия на 443 порт и доменов на запрет/разрешение.

    Ещё пара советов.



    • Не все сайты корректно фильтруются. Потому используйте возможность обхода, заблокированного dansguardian. Готовую страничку можно взять у меня 93.190.205.100/main/dlya-dansguardian/stranichka-blokirovka-i-razblokirovka-dlya-dansguardian/view .

    • Всегда ведите логи посещений сайтов и храните статистику за год. Всегда найдутся умные люди, хотящие что-то сделать противозаконного в интернете. Достаточно идентификатора по ip, в силу достаточности и во имя исполнения закона защиты персональных данных. Статистику делайте открытой.

    • Есть сайты, не подвластные dansguardian. Это те, кто использует json. Это, например, yandex.ru, video.yandex.ru. Делайте для них авторизацию по паролю, через squid1.

    • Не все провайдеры исполняют закон и от того то, что написано в федеральном списке экстремистских материалов и на zapret-info.gov.ru/ не блокируется. Потому, для первого-читайте и заполняйте базу слов и выражений, а для второго-используйте выгрузку antizapret.info.
      Знайте, большинству прокуроров без разницы, кто виноват. Видно-значит видно. И хоть что делай.

    • Не забываем и ставим snort со snortsam. Безопасность превыше всего, тем паче если у вас белый ip адрес на шлюзе.

    • У многих поисковых систем есть возможность фильтровать выдачу результатов. Это происходит путём добавки к запросу специального параметра, или через куки. В последнее время всё чаще стали переходить на куки, потому нужна соответствующая настройка dansguardian. Да и конфиги оного можете взять у меня. Там они прописаны. В дополнение, списки обязательно делайте в 4 кодировках(1251, utf8, koi8r, utf16) и выберите правильный метод фильтрации(подробнее в конфигах). Для youtube используем edufilter.

    • Хороший мануал по настройке squid можно найти здесь.





    Категория: Админитстрирование » Системное администрирование

    Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
    Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
    Введите два слова, показанных на изображении: *