Настройка Proxy сервера
Если понадобится поднять Proxy-сервер на PCLinuxOS, делаем так:
1. Через пакетный менеджер Synaptic установите пакет squid.
2. Отконфигурируйте через Midnight Commander файл /etc/squid/squid.conf, изменив, следующие параметры (остальные настройки оставьте по умолчанию):
# укажем порт прокси-сервера
http_port 3128
# параметры, отменяющие кеширование динамических страниц (необязательная настройка)
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
# адрес администратора прокси-сервера, адрес будет отображаться в сообщениях об ошибках
cache_mgr [email protected]
# объем памяти (по умолчанию стоит 8)
cache_mem 16 Mb
# расположение и объем кэша (256 - количество мегабайт для кэша)
cache_dir ufs /var/spool/squid/ 256 16 256
# DNS-сервер (если настроен)
dns_nameservers 192.168.0.1
# укажем, кто может пользоваться нашим proxy-сервером
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl localnet src 192.168.0.0/24
# откроем доступ к proxy-серверу только своей сети, остальным вход запретим (параметр http_access allow all открывает доступ всем и не является безопасным)
http_access allow localnet
http_access allow localhost
http_access deny all
# запретим доступ к неизвестным портам, если это не SSL
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
# файл, в котором будут сохраняться протоколы доступа для sarg
access_log /var/log/squid/access.log
# блокировка пользователей, которые привысили лимит (эти строки должны быть закомментированы при тестовом запуске Squid)
acl banusers proxy_auth "/var/spool/squid/blocklist"
http_access deny banusers
# подключение SquidGuard (эта строка должна быть закомментирована при тестовом запуске Squid)
redirect_program /usr/bin/squidGuard
# если конфигурационный файл находится в другом месте, указываем его так
redirect_program /usr/bin/squidGuard -c /usr/local/etc/squid/squidGuard.conf
# вместо redirect_program можно прописать url_rewrite_program
# ограничение скорости соединения в байтах (если будет необходимо)
delay_pools 1
delay_class 1 3
delay_access 1 allow all
# общая скорость (v - максимальная скорость)
delay_parameters 1 64000/64000 -1/-1 100/8000
3. Запустите Proxy-сервер:
- service squid start - запуск proxy-сервера.
- service squid stop - остановка proxy-сервера.
- service squid restart - перезапуск proxy-сервера.
Или:
- /etc/init.d/squid start
- /etc/init.d/squid stop
- /etc/init.d/squid restart
4. Для использования прокси-сервера клиенты должны будут указать следующие реквизиты:
- Адрес: 192.168.0.1 (или server.mypclinuxos.local)
- Порт: 3128
Примечание
При помощи Squid можно контролировать пользователей, фильтровать web-контент.
Во-первых, можно просто перекрыть доступ к Интернету в определенное время дня. Ограничение по времени устанавливается в ACL типа «time», только укажите день недели и временной промежуток. Дни недели обозначаются буквами: M — понедельник, T — вторник, W — среда, H — четверг, F — пятница, A — суббота, S — воскресенье; комбинация MTWHF (рабочие дни). Так, для того, чтобы создать ACL для периода с Воскресенья по Четверг с 19:00 до 20:00, вставьте в Squid.conf такую строку:
acl homework_time time SMTWH 19:00-20:00
Далее можно разграничить адреса, например, для детей (kids) и взрослых (adult):
acl kids_computers src 192.168.0.3 192.168.0.4 192.168.0.5
acl adult_computers src 192.168.0.0/24
Адреса взрослых расположены в диапазоне 192.168.0.1-255, но три адреса, хотя и входят в этот диапазон, в списке адресов взрослых не числятся, потому что раньше были указаны в другом списке — kids_computers. Создадим правила доступа для них:
http_access deny kids_computers block_time
http_access allow kids_computers
http_access allow adult_computers
Squid работает с правилами в том порядке, в каком вы их записали. То есть в данном случае, он при попытке соединения смотрит на первое правило — если компьютер принадлежит списку kids_computers и текущее время входит во временной промежуток block_time, то он сразу запрещает соединение. При несоблюдении хотя бы одного из указанных условий он переходит к разборке следующего правила, и так далее. Если список начинается с «accept all», то ни до каких дальнейших ограничений дело не дойдет.
Также с помощью Squid можно заблокировать скачивание файлов с сайтов сомнительного содержания.
Анализу подлежат три объекта: сомнительные сайты, о которых вы знаете, сомнительные сайты, о которых вы не знаете, и файлы, которые могут нанести вред компьютеру.
Для первого случая (запрет конкретного ресурса) предусмотрена директива dstdomain. Вот пример ее использования:
acl banned_sites dstdomain bbc.co.uk
http_access deny kids_computers block_time
http_access deny kids_computers banned_sites
http_access allow kids_computers
Мы запретили детям посещать любые сайты во время block и bbc.co.uk в любое время. Причем в список запрещенных сайтов не попадают, например, news.bbc.co.uk и www.bbc.co.uk. Для того, чтобы запретить все ресурсы домена bbc.co.uk, нужно добавить перед ним точку: .bbc.co.uk.
Неизвестные вам сайты сомнительного содержания, вычисляются по употреблению нехороших слов, например «sex», «porno». Здесь можно воспользоваться регулярными выражениями:
acl noporno url_regex -i porno
Параметр -i означает, что регулярное выражение не различает строчных и заглавных букв (то есть включает Porno, PORNO, PoRNo и т. д.). Теперь блокируем все сомнительные сайты:
acl nosex url_regex -i sex
acl noporno url_regex -i porno
Наконец, можно запретить пользователям скачивать подозрительные файлы. В регулярных выражениях можно использовать знаки «^» и «$», означающие начало и конец строки соответственно. Так, для того, чтобы заблокировать скачивание исполняемых файлов для Windows (с расширением exe), следует добавить такую строку:
acl noexe $ url_regex -i exe$
Знак доллара означает конец строки URL, так что сайт www.hexen.com не вызовет никаких подозрений у Squid, а вот http://evilsite.com/virus.exe будет заблокирован.