Продовжуємо цикл статей з налаштуванням сервера 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 шлюз 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 - сам проксі сервер. У статті описані базові налаштування, для більш поглибленої налаштування, раджу почитати документацію по squid.
Встановлюємо пакет squid3
sudo aptitude install 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 для додавання заборонених сайтів.
Якщо залишилися питання, ласкаво просимо в коментарі.
via