Squid rejik

squid-rejikРассмотрим процедуру установки rejik для фильтрации клиентских URL запросов. В качестве proxy сервера будет использоваться squid. О его установке можно почитать вот тут.

Установка будет производиться на Ubuntu Server 16.04.01 LTS.

Для замены запрещенных интернет страниц rejik использует локальные шаблоны страниц. Для их отображения требуется web сервер. Поэтому установим apache

# apt install apache2

Перейдем в корневой каталог web сервера и добавим шаблоны страниц

# cd /var/www/html/
# wget http://rejik.ru/download/squid-like-www-ru.tgz
# tar xzvf squid-like-www-ru.tgz
# rm squid-like-www-ru.tgz
# mv squid-like-www-ru/ ban

Теперь по адресу http://your-ip/ban/ должен быть доступен перечень шаблонных страниц.

Установим зависимости, необходимые для работы rejik

# apt install libpcre3 libpcre3-dev

Скачаем исходный код rejik и распакуем его

# cd /usr/src/
# wget http://rejik.ru/download/redirector-3.2.12_squid_3.4.tgz
# tar xzvf redirector-3.2.12_squid_3.4.tgz
# rm redirector-3.2.12_squid_3.4.tgz

Перейдем в каталог с исходным кодом, и отредактируем Makefile

# cd redirector-3.2.12_squid_3.4/
# nano Makefile

### Edit this:
INSTALL_PATH=/etc/rejik
SQUID_USER=proxy
SQUID_GROUP=proxy
. . .

для того, чтобы rejik был регистронезависимым, в файле vars.h нужно раскоментировать строку

# nano vars.h
. . .
// Uncoment next line for case independent
#define CASE_INDEPENDENT

Установим зависимости, необходимые для сборки

# apt install make gcc

Выполним сборку и установку rejik

# make
# make install

Перейдем в каталог с rejik, скачаем и распокуем тестовые бан-листы

# cd /etc/rejik/
# wget http://rejik.ru/download/banlists-2.x.x.tgz
# tar xzvf banlists-2.x.x.tgz
# rm banlists-2.x.x.tgz

Скопируем из шаблонного файла redirector.conf.dist конфигурационный файл rejik и отредактируем его

# cp redirector.conf.dist redirector.conf

# nano redirector.conf

error_log /etc/rejik/redirector.err	# Основной лог файл rejik
change_log /etc/rejik/redirector.log	# Логирование заменяемых страниц
write_hostname_to_log on		# Добавлять в лог замены имя хоста
make-cache /etc/rejik/make-cache

allow_urls /etc/rejik/allow_urls	# Список разрешенных ресурсов
allow_ip f:/etc/rejik/allow_ip		# Список IP адресов, для которых не производится замена
allow_id f:/etc/rejik/allow_id		# Список учетных записей, для которых не производится замена

<AUDIO-VIDEO>
ban_dir /etc/rejik/banlists/mp3
url http://127.0.0.1/ban/audio-video.html
log off

<BANNER>
ban_dir /etc/rejik/banlists/banners
url http://127.0.0.1/ban/1x1.gif
log off

<JS>
ban_dir /etc/rejik/banlists/js
url http://127.0.0.1/ban/js.js
log off

<PORNO>
ban_dir /etc/rejik/banlists/porno
url http://127.0.0.1/ban/porno.html
log off

Описание каждой секции состоит из следующих строк:

  • <> — название секции.
  • ban_dir — директория со списком запретов. Может в себе содержать pcre файл с регулярными выражениями. Или urls файл со списком запрещенных доменов или ip адресов.
  • url http — указывает адрес шаблонной страницы, используемой для замены запрещенной.
  • log off/on — включает, либо выключает логирование заменяемых страниц в файл /etc/rejik/redirector.log.

Создадим файлы разрешающих списков

# touch allow_urls allow_ip allow_id

Пример добавления ресурсов в разрешающие списки

# echo "administrator" >> /etc/rejik/allow_id
# echo "192.168.1.32" >> /etc/rejik/allow_ip
# echo "4skill.ru" >> /etc/rejik/allow_urls

Выставим права на директорию /etc/rejik

# tools/set-permissions

Добавим в конец файла /etc/squid/squid.conf поддержку rejik

# nano /etc/squid/squid.conf
. . .
redirect_program /etc/rejik/redirector /etc/rejik/redirector.conf

Перезапустим squid

# squid -k reconfigure

 

Squid rejik: 14 комментариев

  1. Павел

    Добрый день, а кроме тестовых бан-листов варианта кроме наполнения вручную нет? На сайте режика видел нечто под названием DBL но вразумительной инструкции не увидел, может вы знаете?

    1. Андрей Автор записи

      Добрый день!
      1. Нужно зарегистрироваться на сайте режика.
      2. Перейти в каталог rejik, скачать архив с DBL скриптами, разархивировать архив

      # cd /etc/rejik/
      # wget http://rejik.ru/download/dbl-2.0.tgz
      # tar xzvf dbl-2.0.tgz

      3. Во всех скриптах в папке /etc/rejik/dbl/ изменить путь с /usr/local/rejik3/* на /etc/rejik/*. В скриптах Update и
      Update.Fast заполнить переменные $login=»»; и $pass=»»;. Нужно указать логин и пароль при регистрации из пункта 1.
      4. Запустить скрипт обновления DBL листов

      # /etc/rejik/dbl/Update

      При нужном количестве балов в папке /etc/rejik/dbl/lists появятся списки ограничений

      # ls -l /etc/rejik/dbl/lists
      итого 12M
      -rw-r--r-- 1 proxy proxy  577 дек 29 09:08 audio-video.pcre
      -rw-r--r-- 1 proxy proxy  83K дек 29 08:34 audio-video.urls
      -rw-r--r-- 1 proxy proxy  58K ноя  2 15:24 avto-moto.urls
      -rw-r--r-- 1 proxy proxy 3,0K окт 26 10:53 banner.pcre
      -rw-r--r-- 1 proxy proxy 203K фев 16 15:48 banner.urls
      -rw-r--r-- 1 proxy proxy 4,3K окт 27 10:34 buysell.urls
      -rw-r--r-- 1 proxy proxy 358K ноя  8 15:33 chats.urls
      -rw-r--r-- 1 proxy proxy  623 окт 26 10:53 cloud-storage.urls
      -rw-r--r-- 1 proxy proxy  85K дек  5 12:22 dating.urls
      -rw-r--r-- 1 proxy proxy  19K окт 26 10:53 extremism_rf.urls
      -rw-r--r-- 1 proxy proxy  156 окт 26 10:53 icq.pcre
      -rw-r--r-- 1 proxy proxy 2,1K окт 26 10:53 icq.urls
      -rw-r--r-- 1 proxy proxy  34K окт 26 17:36 jobsearch.urls
      . . .

      5. Далее в /etc/rejik/banlists/ нужно создать папку, описывающую категорию, и создать в ней ссылку на скаченный DBL лист, например

      # mkdir /etc/rejik/banlists/buysell
      # ln -s /etc/rejik/dbl/lists/buysell.urls /etc/rejik/banlists/buysell/urls

      И так для каждого листа.
      6. Определить новые категории в /etc/rejik/redirector.conf
      Например для buysell

      <BUYSELL>
      ban_dir /etc/rejik/banlists/buysell
      url http://127.0.0.1/ban/buysell.html
      allow_id f:/etc/rejik/allow_id/buysell
      log off

      Раньше было два пути получения листов:
      Первый это стать участником проекта, добавлять свои ссылки в DBL и получать за это баллы для скачивания листов.
      Второй это платный доступ, купить лицензию, ввести код активации в личном кабинете, и качать листы на купленные балы.
      Сейчас платный доступ отменили.

    1. Андрей Автор записи

      Здравствуйте! Может быть Вы используете прозрачное проксирование? Можно взглянуть на Ваши squid.conf и redirector.conf?

  2. Алекс Муха

    SQUID конфигурации

    ### Разрешаем доступ только из своей сети
    acl localnet src 192.168.0.0/24
    acl SSL_ports port 443 10443 8001 62223 62224 60002 60003 110 25 8888 8443 2809 9100 9401 9402 9403 9900 9100-9110 6125 6130 9101 9902 80 8087 22 # SSL
    acl Safe_ports port 80 # http
    acl Safe_ports port 21 # ftp
    acl Safe_ports port 443 # https skype
    acl Safe_ports port 70 # gopher
    acl Safe_ports port 210 # wais
    acl Safe_ports port 1025-65535 # unregistered ports
    acl Safe_ports port 280 # http-mgmt
    acl Safe_ports port 488 # gss-http
    acl Safe_ports port 591 # filemaker
    acl Safe_ports port 777 # multiling http
    acl Safe_ports port 81
    acl Safe_ports port 82
    acl Safe_ports port 83

    acl CONNECT method CONNECT

    # Описание схем аутентификации
    #acl no_quota url_regex -i «/etc/squid/db/no_quota_url.txt» #добавил
    #acl banusers proxy_auth_regex -i «/etc/squid/db/user_deny.txt» #добавил

    ### HTTP доступ
    http_access deny !Safe_ports
    http_access deny CONNECT !SSL_ports
    http_access allow localhost manager
    http_access deny manager
    http_access allow localnet
    http_access allow localhost
    http_access deny all

    #http_access allow banusers no_quota #добавил
    #http_access deny banusers all #добавил
    #http_access allow internet #добавил

    ### Порт и IP адрес прокси-сервера, а также делаем его прозрачным (transparent если не написать то прописываем у клиента прокси-сервер вручную)
    #http_port 192.168.0.222:3128
    http_port 3128

    ### Допустимый объем памяти
    cache_mem 1024 MB

    ### Максимальный объем кэшированного объекта в памяти
    maximum_object_size_in_memory 512 KB

    ### Максимальный и минимальный размер кэшируемого файла
    maximum_object_size 60 MB
    minimum_object_size 2 KB

    ### Директория кэша размер кэша=4Mb Кол-во папок первого уровня=32 и второго=256
    cache_dir ufs /var/spool/squid 4096 16 256

    ### Делаем прокси анонимным (прячем внутренние IP-адреса)
    #via off
    #forwarded_for delete

    ### Записываем логи и храним их 31 день
    access_log daemon:/var/log/squid/access.log squid
    logfile_rotate 31

    coredump_dir /var/spool/squid
    refresh_pattern ^ftp: 1440 20% 10080
    refresh_pattern ^gopher: 1440 0% 1440
    refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
    refresh_pattern . 0 20% 4320

    redirect_program /etc/rejik3/redirector /etc/rejik3/redirector.conf

    #url_rewrite_program /etc/rejik3/redirector /etc/rejik3/redirector.conf

    #cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default
    #cache_peer_access 127.0.0.1 allow all
    #acl Scan_HTTP proto HTTP
    #never_direct allow Scan_HTTP

    REJIK конфигурации
    error_log /etc/rejik3/redirector.err # Основной лог файл rejik
    change_log /etc/rejik3/redirector.log # Логирование заменяемых страниц
    write_hostname_to_log on # Добавлять в лог замены имя хоста
    make-cache /etc/rejik3/make-cache

    #allow_urls /etc/rejik3/allow_urls # Список разрешенных ресурсов
    #allow_ip f:/etc/rejik3/allow_ip # Список IP адресов, для которых не производится замена
    #allow_id f:/etc/rejik3/allow_id # Список учетных записей, для которых не производится замена

    ban_dir /etc/rejik3/banlists/mp3
    url http://127.0.0.1/ban/audio-video.html
    log off

    ban_dir /etc/rejik3/banlists/banners
    url http://127.0.0.1/ban/1×1.gif
    log off

    ban_dir /etc/rejik3/banlists/js
    url http://127.0.0.1/ban/js.js
    log off

    ban_dir /etc/rejik3/banlists/porno
    url http://127.0.0.1/ban/porno.html
    log off

    ban_dir /etc/rejik3/banlists/socnet
    url http://127.0.0.1/ban/socnet.html
    log off

    1. Андрей Автор записи

      Пока не успел разобрать, как появится свободное от работы время, сразу Вам отвечу=)

    1. Андрей Автор записи

      Как выяснилось, CMS WordPress удаляет потенциально опасные символы в комментариях. В данном случае это были «<>». Для их использования нужно пользоваться HTML тегами.
      Запустил тестовую виртуальную машину со Squid+Rejik и вставил туда Ваши конфиги. Все заработало без проблем. Нас странице загрузки Rejik есть две версии Rejik. Обычная и для Squid версии 3.4 и старше. В данной статье использовалась версия для Squid версии 3.4 и старше. Проверьте вашу версию. Сделать это можно командой
      # squid -v
      Squid Cache: Version 3.5.12

    1. Андрей Автор записи

      Тогда имеет смысл изучить логи. Пришлите пожалуйста вывод команды
      # squid -k reconfigure && sleep 15 && tail -n 40 /var/log/squid/cache.log > log.txt && echo «———-» >> log.txt && sleep 60 && tail -n 15 /etc/rejik3/redirector.err >> log.txt && cat log.txt && rm log.txt
      Из-за задержек она будет выполняться чуть более минуты.

  3. Алекс Муха

    Прошу прощения за долги ответ. При выполнени данной команды выводит сообщение:
    tail: cannot open ‘/etc/rejik3/redirector.err’ for reading: No such file or dire ctory

    1. Андрей Автор записи

      Возможно проблемы с правами на каталог /etc/rejik3.
      Попробуйте выполнить команду:
      # /etc/rejik3/tools/set-permissions
      А затем предыдущую.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *