вторник, 30 декабря 2014 г.

Блокировка сайтов squidGuard

Будем блокировать url сайтов при помощи squid и squidGuard.
В наличии: FreeBSD 10, ядрёный nat ipfw.
Спасибо blogzadrota.ru и itadept.ru за помощь.
Приступим.



1. Собираем squid. Важно собрать его из портов, а не ставить из пакета, ибо там он не поддерживает прозрачное проксирование. Порт /usr/local/ports/www/squid33

cd /usr/local/ports/www/squid33
make config

ставим галку на

[х] TP_IPFW        Enable transparent proxying with IPFW

Говорим ОК.
Устанавливаем:

make install clean

Создаём конфиг для squid'a на основе примера:

cp /usr/local/etc/squid/squid.conf.sample /usr/local/etc/squid/squid.conf

Правим сети которые будут обслуживаться, и другие возможности, если кому что надо, например кэширование. Мне не надо я не делал.
Добавим:

#Адрес и порт для входящих подключений
#При прозрачном проксировании может использоваться для управления кэшем
http_port 127.0.0.1:3128
#Локальный интерфейс, для трафика, перенаправленного брандмауэром
http_port 127.0.0.1:3129 intercept

и редирект на squidGuard:

redirector_bypass on
redirect_program /usr/local/bin/squidGuard -c /usr/local/etc/squid/squidGuard.conf
redirect_children 5

2. Ставим squidGuard кторый будет работать с url

cd /usr/local/ports/www/squidguard
make config

отмечаем галочкой версию squid, я ставил 3.3, и жмём ОК

make install

Правим конфиг /usr/local/etc/squid/squidGuard.conf

dbhome /usr/local/etc/squid
logdir /var/log/squid

dest zapret {
    urllist zapret/urls
}

acl {
    default {
         pass !zapret all
         redirect http://192.168.66.55/zaprishirt.html # адрес с заглушкой о блокирвоки URL
    }
}

Создаём каталог zapret и файл urls

mkdir /usr/local/etc/squid/zapret/
touch /usr/local/etc/squid/zapret/urls

в файл urls добавляем ссылки, примерно так:
examole.ru/
example.com/block/me/
и т.д.

Включаем сквид

echo 'squid_enable="YES"' >> /etc/rc.conf 

Запускаем squid

/usr/local/etc/rc.d/squid start

3. Теперь задача состоит в перенаправлении трафика на squid, но не всего а только из определённой подсети при обращении на определённый адрес (из списка неблагонадёжных). Эти определённый адреса добавляются во вторую таблицу ipfw, например так:

ipfw table 2 add 32.156.88.67/32

Само перенаправление стоит добавлять до ната:

ipfw add 200 fwd 127.0.0.1,3129 tcp from 192.168.66.0/24 to table"(2)" dst-port 80

Проверяем, радуемся.

Комментариев нет :

Отправить комментарий