Установка и настройка SQUID3 прокси сервера, на базе Ubuntu Server 14.04.1
Продолжаем цикл статей с настройкой сервера ubuntu 14.04.1, сегодня на очереди установка и настройка squid3 — прокси сервера для ubuntu server. Если вы еще не знаете что такое прокси сервер, попробую описать одним предложением. Прокси сервер — это компьютер который обрабатывает запросы клиентских компьютеров при обращении к сети интернет.
С помощью прокси сервера, можно не только предоставить централизованный доступ к интернету, но и лимитировать его, закрывать доступ к определенным сайтам, открывать доступ только к разрешенным сайтам, кэшировать статичные данные (css, картинки, баннеры…) и многое другое.
Для установки прокси сервера я буду использовать уже готовый сервер с ubuntu 14.04.1 и настроенными службами DHCP и DNS. И так, приступим.
Открываем доступ к интернету для компьютеров в локальной сети
Для начала нам нужно открыть полный доступ к интернету для всех компьютеров в нашей локальной сети. Для этого воспользуемся NATом. NAT — технология позволяющая пускать весь сетевой трафик через один адрес. То есть все запросы к интернету в локальной сети, будут обрабатываться именно сервером.
Создадим файл с настройками
Внесем в этот фал следующее:
#!/bin/sh #Включаем форвардинг пакетов echo 1 > /proc/sys/net/ipv4/ip_forward #Разрешаем траффик на lo iptables -A INPUT -i lo -j ACCEPT #Разрешаем доступ из внутренней сети наружу iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT #Включаем NAT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE #Разрешаем ответы из внешней сети iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #Запрещаем доступ снаружи во внутреннюю сеть iptables -A FORWARD -i eth0 -o eth1 -j REJECT
Сохраним файл и присвоим ему права на выполнение:
Добавим запуск NATа (строку post-up /etc/nat) в файл с сетевыми настройками:
ваш файл должен выглядеть так:
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.104 netmask 255.255.255.0 gateway 192.168.1.1 auto eth1 iface eth1 inet static address 192.168.0.1 netmask 255.255.255.0 post-up /etc/nat
Сохраняем, закрываем и перезагружаем сервер:
В таком виде, все готово для раздачи интернета компьютерам в сети. Если сейчас включить клиентский компьютер, он получит IP адрес от DHCP сервера, а также получит настройки шлюза (192.168.0.1), соответственно должен появится интернет. Если интернет появился, двигаемся дальше, если нет, проверяем что сделали не так.
Установка и настройка Squid3
Теперь нам нужно установить Squid3 — сам прокси сервер. В статье описаны базовые настройки, для более углубленной настройки, советую почитать документацию по squid.
Устанавливаем пакет squid3
После установки откроем файл /etc/squid3/squid.conf
В первую очередь найдем строку http_port 3128 и добавим к ней значение intercept и IP адрес сервера, чтобы получилось вот так:
http_port 192.168.0.1:3128 intercept
Это делается для того, чтобы в последующем нам не приходилось настраивать прокси сервер на всех клиентских машинах (прокси будет прозрачным).
Теперь, нужно указать сеть в которой будет работать наш прокси сервер, для этого раскомментируем строку acl localnet src 192.168.0.0/16 # RFC1918 possible internal network и укажем префикс маски сети 24 вместо 16 (так как у нас маска 255.255.255.0). В итоге срока должна выглядеть так:
acl localnet src 192.168.0.0/24 # RFC1918 possible internal network
разрешаем доступ к прокси из внутренней сети, расскомментировав строку
http_access allow localnet
Теперь настроим кэширование. Нужно найти строку cache_dir ufs /var/spool/squid3 100 16 256, раскомментировать её и поменять значения на такие:
cache_dir ufs /var/spool/squid3 2048 16 256
Далее расскомментируем строку maximum_object_size 4 MB, тем самым укажем максимальный размер кэшируемого объекта.
Раскомментируем строку maximum_object_size_in_memory 512 KB, тем самым указываем максимальный объем кэшированного объекта в памяти.
Раскомментируем строку cache_mem 256 MB и заменим занчение с 256 на 1024, тем самым указываем допустимый объем памяти.
Вот мы и настроили кэширование, кэширование должно снизить нагрузку на канал и увеличить скорость открытия страниц. Кэш очищается при перезагрузке сервера.
Теперь включим ведение логов, для этого раскомментируем строку access_log daemon:/var/log/squid3/access.log squid и добавим ниже logfile_rotate 31(файлы логов будут храниться 31 день, после будут перезаписываться самые старые).
На этом базовую настройку squid3 можно завершить. Перезапустим squid3
Теперь прокси сервер настроен и запущен, но для того чтобы трафик пользователей шел именно через него, нужно завернуть весь http трафик на squid. Для этого добавляем в /etc/nat строку:
# Заворачиваем http на прокси iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Собствеенно теперь мой файл /etc/nat имеет такой вид:
#!/bin/sh #Включаем форвардинг пакетов echo 1 > /proc/sys/net/ipv4/ip_forward #Разрешаем траффик на lo iptables -A INPUT -i lo -j ACCEPT #Разрешаем доступ из внутренней сети наружу iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT #Включаем NAT iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE #Разрешаем ответы из внешней сети iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT #Запрещаем доступ снаружи во внутреннюю сеть iptables -A FORWARD -i eth0 -o eth1 -j REJECT # Заворачиваем http на прокси iptables -t nat -A PREROUTING -i eth1 ! -d 192.168.0.0/24 -p tcp -m multiport --dport 80,8080 -j DNAT --to 192.168.0.1:3128
Если вы сделали все как написано в статье, значит у вас будет полностью рабочий прокси сервер. В следующих статьях я напишу как установить контент — фильтр Dansguardian и как сделать black list для добавления запрещенных сайтов.
Если остались вопросы, добро пожаловать в комментарии.