Прокси-сервер – это такая штука, обеспечивающая доступ нескольких компьютеров из одной сети в другую сеть (но не путать с маршрутизаторами – это совсем разные вещи, прокси-сервер работает на прикладном уровне). Наиболее расспространенная задача прокси-сервера – обеспечить доступ в интернет для ПК, на которых его нет через один ПК, который имеет доступ в глобальную сеть. Рассмотрим эту задачу в случае использования Windows-компьютера в качестве шлюза в интернет.
Для решения этой задачи можно пользоваться проприетарными решениями с визуальным интерфейсом – например, UserGate.Но у меня не получилось заставить его корректно работать на ПК с Windows 7 да и он платный 🙂 Поэтому лучшим решением я считаю доставшийся нам с *nix-ов Squid. Скачать сие творение можно по адресу: Squid 2.7 (последняя версия на момент написания статьи)
Скачиваем и распаковываем желательно в корень диска. Не пытайтесь что-нибудь запустить оттуда – в этой программе нет графического интерфейса – и пусть вас это не пугает 🙂
Далее открываем консоль – Win+R / сmd / [Enter] переходим в папку с установленным сквидом (далее я буду писать для пути установки c:squid)
c:
cd c:squidsbin
Теперь необходимо установить сквид как службу Windows командой:
squid -i -f c:/squid/etc/squid.conf -n Squid27
где Squid27 – имя службы, которое в принципе может быть любое допустимое.
http_port 3128
acl localnet src 192.168.3.0/255.255.255.0
acl localhost src 127.0.0.1/255.255.255.255
acl all src 0.0.0.0/0.0.0.0
http_access allow localnet
http_access allow localhost
http_access deny all
cache_log none
cache_store_log none
где
- http_port 3128 – номер порта на сервере, через который работает сквид. Т. е. в настройках клиентов будем указывать адрес сервера и этот порт;
- acl localnet src 192.168.0.0/255.255.0.0 – эта строчка указывает диапазон ip-адресов, для которых возможно подключение к нашему прокси. Маску можно указывать как /8, /16, /24 (для 255.0.0.0, 255.255.0.0, 255.255.255.0 соответсвенно), а localnet – это имя. По сути, этой строчкой мы объявляем переменную, с которой дальше будем работать. следующая строчка аналогично объявляет переменную all, где указаны все существующие ip;
- http_access allow localnet – этой строкой мы разрешаем доступ с ip, указанных в переменной localnet к нашему прокси;
- http_access deny all – запрещаем всем остальным доступ к прокси. Эти разрешения работают сверху-вниз, потому эту строчку нужно указывать последней! Иначе никто до проксика не достучится 🙂
- cache_log none – нужна, как и следующая строка, чтобы логи не разрослись в гигабайты)
Еще можно внести следующие параметры:
- cache_mem 32 MB – определяет размер дополнительного кеша сквида в оперативной памяти;
- cache_dir ufs c:/squid/var/cache 100 16 256 – определяет путь к папке кеша, размер его в Мб (100) и количество подпапок (зачем последнее – я так и не понял 🙂 )
Теперь надо в той же папке убрать “.default” в названии файла mime.conf или просто создать пустой текстовый файл с таким именем. Это нужно для формирования кеша. В консоли набираем команду (находясь в папке sbin):
squid -z -f c:squidetcsquid.conf
Вот, в принципе, мы и готовы к запуску нашего прокси. Пишем в командной строке (или можно зайти в Службы и запустить мышкой 🙂
net start Squid27
Остановка:
net stop squid27
Переконфигурация:
squid -n Squid27 -f с:/squid/etc/squid.conf -k reconfigure
Еще можно много чего наворотить в этом прокси, например, задать ограничения разным пользователям по времени, по скорости, запретить доступ на определенные сайты и т. д. и т. п. Но в задачи этой статьи не входит описывание этого всего – такой материал легко найти на просторах Интернета.
Всем спасибо, все свободны 🙂