Будем блокировать 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
Проверяем, радуемся.
В наличии: 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
Проверяем, радуемся.
Комментариев нет :
Отправить комментарий