Счетчик

Поисковый анализ сайта
яндекс.ћетрика
Cервер и сайт запущен 2011.02.01 на Debian

Создание прозрачного прокси сервера
установка squid
apt-get install squid

cp /etc/squid/squid.conf /etc/squid/squid.conf.original
и выжмем из оригинальной конфигурации всё, не закоментированное:
cat /etc/squid/squid.conf.original | grep -v '^\(#\|$\)' > /etc/squid/squid.conf

nano /etc/squid/squid.conf

получится должно следующее

acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl our_networks src 192.168.1.1/255.255.255.0 - Ваша сетка
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
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 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow our_networks
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access deny all
icp_access deny all
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid

создаем скрипт со следующим содержанием, или добавляем к правилам iptables
nano /etc/init.d/gateway

В локальную сеть у меня смотрит интерфейс eth2 IP которого 192.168.1.1
В сеть провайдера eth1, из этих условий вытекает то что указано ниже:

#!/bin/sh
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A PREROUTING -i eth2 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp --dport 8080 -j REDIRECT --to-ports 3128

делаем его исполняемым
chmod +x /etc/init.d/gateway

и обновляем автозагрузчик
update-rc.d gateway start 51 S

Далее нам надо установить squidGuard
apt-get install squidguard
в файл squid.conf добавим редирект на squidGuard
url_rewrite_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf № отвечает за резку сайтов
error_directory /usr/share/squid3/errors/Russian-1251 # что бы выводились ошибки на русском языке
делаем бэкап основного файла
cp /etc/squid/squidGuard.conf /etc/squid/squidGuard.conf.original
Далее открываем на редактирование nano /etc/squid/squidGuard.conf

Скачиваем http://www.shallalist.de/Downloads/shallalist.tar.gz (эта база разрешена к использованию только в некоммерческих или личных целях). В этом архиве лежат списки доменов и URL’ов распределённых по соответствующим папкам. Переносим все или избранные папки в /var/lib/squidguard/db. В результате получаем, что в /var/lib/squidguard/db/socialnet лежат списки адресов социальных сетей. В /var/lib/squidguard/db/porn лежат списки сайтов с поревом. И т.д.

конфиг файла squidGuard.conf привожу ниже

dbhome /var/lib/squidguard/db
logdir /var/log/squid
# SOURCE ADDRESSES:
src bigboss {
ip 192.168.1.100 #Компьютер директора
ip 192.168.1.101 #Компьютер зама
}
src admin {
ip 192.168.1.7 #Мой компьютер
}
# DESTINATION CLASSES:
dest adv {
domainlist adv/domains
urllist adv/urls
}
dest chat {
domainlist chat/domains
urllist chat/urls
}
dest costtraps {
domainlist costtraps/domains
urllist costtraps/urls
}
dest dating {
domainlist dating/domains
urllist dating/urls
}
dest fortunetelling {
domainlist fortunetelling/domains
urllist fortunetelling/urls
}
dest gamble {
domainlist gamble/domains
urllist gamble/urls
}
dest porn {
domainlist porn/domains
urllist porn/urls
}
dest redirector {
domainlist redirector/domains
urllist redirector/urls
}
dest sex {
domainlist sex/domains
urllist sex/urls
}
dest spyware {
domainlist spyware/domains
urllist spyware/urls
}
dest tracker {
domainlist tracker/domains
urllist tracker/urls
}
dest socialnet {
domainlist socialnet/domains
urllist socialnet/urls
}
dest violence {
domainlist violence/domains
urllist violence/urls
}
dest warez {
domainlist warez/domains
urllist warez/urls
}
dest webmail {
domainlist webmail/domains
urllist webmail/urls
}
acl {

bigboss {

pass !costtraps !redirector !porn !spyware !tracker all
redirect http://192.168.1.1/squidguard.html
}
# admin {
# pass any
# }
default {
pass !adv !chat !costtraps !dating !fortunetelling !gamble !porn !redirector !socialnet !spyware !tracker !violence !warez !webmail all
redirect http://192.168.1.1/squidguard.html
}
}


Надо помнить, что без указания redirect на какую-либо страницу на произвольном сервере фильтрование работать не будет. В данном случае на машине с ip-адресом 192.168.1.1 поднят Apache и опубликована простая страница с содержимым, состоящим из одного слова - Blocked.
Так же - на каждый объявленный в начале файла параметр src, должен быть свой acl в конце файла, иначе компьютер с ip-адресом 192.168.1.7 (смотрим вышенаписанный пример) не попадёт ни в какой из фильтров.
Если посмотреть на последние строки файла squidGuard.conf, то видно, что для компьютеров директора и его зама доступны все адреса, кроме costtraps, redirector, porn, spyware, tracker. Для всех остальных компьютеров список запретов более обширен. Для компьютера администратора оставлена возможность обхода запретов для его, сугубо администраторских, нужд


Теперь запускаем:
$ squidGuard -C all
Файлы, перечисленные в squidguard.conf, будут преобразованы в формат db для ускорения работы. Например, в папке adv появятся два файла: domains.db и urls.db.
Исходные текстовые файлы удалять не надо. Могут пригодиться при дополнении или пересоздании базы.
Изменяем хозяина и группу на содержимом папки /var/lib/squidguard, так как в эту папку будет лазить squid:
$ chown -R proxy:proxy *
Изменение записей в списках доменов и URL

Пример. Рядом с файлом domains.db в папке /var/lib/squiguard/db/webmail создаём файл domains.diff. В него заносим строку или несколько строк, по одной на каждую запись:
-google.com (что означает вычеркнуть этот домен из базы)
или +google.com (что означает добавить этот домен в базу)
Даём команды:
$ squidGuard -u (обновить базы db из файлов diff. В логах squidguard'а можно посмотреть сколько добавилось/убылось.)
$ squid -k reconfigure (перечитать настройки без перезапуска.)
Файл domains.diff удалять, или стирать из него записи, не надо. При глобальном обновлении баз этот файл ещё пригодится. И при многократном обновлении не происходит дублирования записей в БД.

Комментарии   

0 #2 Super User 29.01.2016 07:58
Для начала... Рекомендую использовать связку squid+squidguar d+sarg ну и конечно же iptables, делать прозрачным, да и сделать сначала открытым, в дальнейшем когда все работать будет на все 100, начинайте рубить не нужный контент, реклама, vk, ok.... и так далее. Без sarg статы толком не увидеть, а так будет оружие для блокировки.
Цитировать | Сообщить модератору
0 #1 Юлия 29.01.2016 01:25
Помогите пожалуйста советом. Надо установить squid proxy на работе, но просто для того, чтобы следить за трафиком, кто сколько жрёт полосу пропускания и на каких сайтах. Т.е. просто следить и, если что, блокировать уже тогда. Какую установку выбрать? Прозрачный сервер и всё разрешить allow all, ничего не запрещать для начала? И sarg?
Цитировать | Сообщить модератору

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


Защитный код
Обновить