Продолжаем цикл статей с настройкой сервера ubuntu 14.04.1, сегодня на очереди установка и настройка squid3 – прокси сервера для ubuntu server. Если вы еще не знаете что такое прокси сервер, попробую описать одним предложением. Прокси сервер – это компьютер который обрабатывает запросы клиентских компьютеров при обращении к сети интернет.
С помощью прокси сервера, можно не только предоставить централизованный доступ к интернету, но и лимитировать его, закрывать доступ к определенным сайтам, открывать доступ только к разрешенным сайтам, кэшировать статичные данные (css, картинки, баннеры…) и многое другое.
Для установки прокси сервера я буду использовать уже готовый сервер с ubuntu 14.04.1 и настроенными службами DHCP и DNS. И так, приступим.
Открываем доступ к интернету для компьютеров в локальной сети
Для начала нам нужно открыть полный доступ к интернету для всех компьютеров в нашей локальной сети. Для этого воспользуемся NATом. NAT – технология позволяющая пускать весь сетевой трафик через один адрес. То есть все запросы к интернету в локальной сети, будут обрабатываться именно сервером.
Создадим файл с настройками
Внесем в этот фал следующее:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#!/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) в файл с сетевыми настройками:
ваш файл должен выглядеть так:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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 адрес сервера, чтобы получилось вот так:
1
|
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). В итоге срока должна выглядеть так:
1
|
acl localnet src 192.168.0.0/24 # RFC1918 possible internal network
|
разрешаем доступ к прокси из внутренней сети, расскомментировав строку
1
|
http_access allow localnet
|
Теперь настроим кэширование. Нужно найти строку cache_dir ufs /var/spool/squid3 100 16 256, раскомментировать её и поменять значения на такие:
1
|
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 строку:
1
2
|
# Заворачиваем 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 имеет такой вид:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#!/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 для добавления запрещенных сайтов.
Если остались вопросы, добро пожаловать в комментарии.
Источник http://faqpc.ru/nastrojka-squid3-na-ubuntu-server-14-04-1/
Добавить комментарий