Статьи

Ubuntu Server. Налаштовуємо роутер NAT - DHCP - Squid3 - Блог системного адміністратора, для IT Фахівців

  1. Налаштування NAT і брандмауера
  2. Налаштування кешуючого проксі-сервера Squid3

Починаючи з версії 12.04 (ми розглядаємо тільки LTS версії і не радимо використовувати на серверах проміжні релізи) всі мережеві настройки, в тому числі і DNS-сервера вказуються в одному місці, конфігураційному файлі / etc / network / interfaces. Перед тим як приступати до налаштування підвищимо права до суперкористувача:

sudo-s

потім відкриємо файл в штатному редактореnano, робота з ним далека від зручності, але для зміни декількох рядків він цілком підійде:

nano / etc / network / interfaces

Наведемо його до наступного вигляду (настройки зовнішнього інтерфейсу наведені виключно для прикладу):

auto eth0 iface eth0 inet static address 172.18.0.106 netmask 255.255.240.0 gateway 172.18.0.1 dns-nameservers 172.18.0.1 208.67.222.222 auto eth1 iface eth1 inet static address 192.168.31.1 netmask 255.255.255.0 post-up / etc / nat

Для вказівки DNS-серверів тепер використовується директива dns-nameservers, якщо серверів кілька, вони вказуються в один рядок, через пробіл.

Якщо ви отримуєте мережеві настройки від провайдера по DHCP, то настройки матимуть вигляд:

auto eth0 iface eth0 inet dhcp

Останньою рядком йде автоматичне завантаження правил iptables з файлу / etc / nat, який ми створимо пізніше.

Перезапустити мережу:

service networking restart

Якщо все зроблено правильно, на сервері повинен з'явитися інтернет. Після чого слід оновити пакети на сервері і встановити необхідний мінімум утиліт для адміністрування:

apt- get update apt- get upgrade apt- get install mc ssh

Представляти двохпанельний менеджер зі зручним редактором Midnight Commander (mc) ми думаємо не потрібно, як і SSH-сервер, що дає можливість віддаленого адміністрування.

Налаштування NAT і брандмауера

Технологія мережевої трансляції адрес - NAT - дозволяє організувати вихід в інтернет комп'ютерів локальної мережі через один мережеву адресу. Дана технологія абсолютно прозора для клієнтських пристроїв і здатна працювати з будь-якими мережевими додатками і протоколами. За функції NAT в Ubuntu відповідає мережевий фільтр iptables, який надає також функції брандмауера.

Залежно від політики мережевої безпеки існують різні підходи до налаштування брандмауера. Ми вважаємо за краще ставити тільки базові правила, виходячи з принципу, все що не заборонено - дозволено. Це дозволяє вільно працювати будь-яким мережевим службам у внутрішній мережі і забезпечувати достатній рівень безпеки в зовнішній, при цьому адміністратор повинен контролювати, які служби працюють на зовнішньому інтерфейсі, так як доступ до відкритого назовні порту буде дозволений за замовчуванням.

Створимо файл настройок:

touch / etc / nat

і внесемо в нього наступне вміст:

#! / Bin / sh echo 1> / proc / sys / net / ipv4 / ip_forward iptables -A INPUT -i lo -j ACCEPT iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -t nat -A POSTROUTING - o eth0 -s 192.168. 31.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

Збережемо зміни і дамо нашому файлу права на виконання:

chmod + x / etc / nat

перезавантажити сервер:

reboot

Тепер якщо вручну задати мережеві настройки для робочої станції, вказавши в якості шлюзу наш роутер і будь-який доступний DNS-сервер, то не їй повинен з'явитися доступ в інтернет.

Налаштування DHCP і кешуючого DNS

В принципі ми вже можемо використовувати наш роутер за призначенням, проте ручне вказівку мережевих налаштувань, це навіть не вчорашній, а позавчорашній день, тому DHCP-сервер є невід'ємною частиною мереж будь-якого розміру. Також має сенс налаштувати власний кешуючий DNS-сервер, який не тільки знизить навантаження на вищі сервера і зменшить час відгуку, але також дозволить створювати власні записи для хостів внутрішньої мережі, що може виявитися корисним при розгортанні інших мережевих сервісів.

Всі ці функції реалізовані в одному пакеті dnsmasq, який гранично простий в установці і настройці:

apt- get install dnsmasq

Функції кешуючого DNS-сервера стають доступні відразу після установки і в налаштуванні не потребують, проте слід явно вказати інтерфейси, які буде обслужіватьdnsmasq. Для цього відкриємо файл /etc/dnsmasq.conf і змінимо наступний рядок (не забуваємо розкоментувати при необхідності):

listen-address = 127.0. 0.1, 192.168. 31.1

Для настройки DHCP сервера досить вказати діапазон пулу адрес і термін оренди:

dhcp-range = 192.168. 31.100, 192.168. 31.199, 255.255. 255.0, 12 h

Перезапусім сервіс:

service dnsmasq restart

Після чого хости внутрішньої мережі будуть отримувати всі мережеві настройки автоматично.

Налаштування кешуючого проксі-сервера Squid3

На зорі свого розвитку основним призначенням проксі-сервера Squid було кешування трафіку, сьогодні, коли безлімітний інтернет став нормою життя, ці можливості відходять на другий план, але залишаються досить актуальними.

Squid підтримує кешування двох типів, в оперативній пам'яті і на диску. Сьогодні можна зустріти рекомендації відмовитися від дискового кешу, мовляв простіше скачати об'єкт заново, ніж шукати його на диску. Однак ми вважаємо, що розумний розмір дискового кешу при великій кількості клієнтів дозволяє ефективно використовувати канал за рахунок зберігання в кеші статичних елементів: картинок, скриптів, CSS-файлів для часто відвідуваних ресурсів.

Відразу застережемо від поширеної помилки - використання для зберігання кешу старих повільних дисків і виділення під кеш значного простору. В цьому випадку ефект буде прямо протилежний очікуванням, час пошуку об'єкта на диску при великому навантаженні буде займати значно більше часу, ніж його повторне скачування.

Але всі переваги Squid розкриваються тоді, коли з'являється необхідність тонкої фільтрації трафіку, тут багаті можливості дозволяють реалізовувати найрізноманітніші схеми, які просто неможливо розглянути в рамках одного матеріалу.

Для установки squid виконайте команду:

apt- get install squid3

Перейдемо до налаштувань. Для новачка конфігураційний файл squid може видатися надто складним, насправді більшу частину його займають докладні коментарі і приклади. Тому ми підемо по файлу від початку до кінця, вказуючи які рядки треба додати або змінити. Відкриємо файл конфігурації /etc/squid3/squid.conf і перейдемо до вказівкою групи доступу (acl) для локальної мережі. Раскомментіруем і виправимо або додамо нижче рядок:

acl localnet src 192.168.31.0 / 24
acl localnet src 192

Потім, спускаючись далі по конфігураційному файлу знайдемо секцію відповідає за правила доступу і переконаємося, що вона містить такі правила:

http_access allow localnet http_access allow localhost http_access deny all

Дана секція дозволяє доступ для клієнтів локальної мережі, власне сервера і забороняє всім іншим.

Тепер зазначимо порт, інтерфейс і режим роботи проксі-сервера.

http_port 192 .168.31.1: 3128 intercept

Параметр intercept вказує, що проксі працює в прозорому режимі, тобто не вимагає прямої вказівки проксі на клієнтах.

Перейдемо до вказівкою параметрів кеша. Задамо місця доступно і вкажемо максимальний обсяг кешованого об'єкта в пам'яті:

cache_mem 1024 MB maximum_object_size_ in _memory 512 KB

При завданні цих параметрів виходите з доступної пам'яті сервера, але врахуйте, що кеш в пам'яті починає ефективно працювати тільки після "прогріву" і буде скинутий при перезавантаженні або виключенні сервера.

Після чого вкажемо розмір дискового кешу і його розташування:

cache_dir ufs / var / spool / squid3 2048 16 256

Розмір кешу вказується в МБ, в нашому випадку 2048 МБ - 2 Гб, наступні два числа вказують кількість директорій першого і другого рівня, рекомендуємо Залишіть ці параметри без зміни.

Наступний параметр задає максимальний розмір об'єкта в дисковому кеші:

maximum_object_size 4 MB

Далі по файлу вкажемо місце зберігання логів і кількість ротацій:

access. log daemon: / var / log / squid3 / access. log squid logfile_rotate 31

У нашому випадку логи зберігаються 31 день, вказуючи це значення виходите з розмірів балки і вільного місця на диску, в будь-якому випадку цей параметр можна завжди змінити.

Інші параметри залишаємо без змін, зберігаємо файл і перезапускаємо squid:

service squid3 restart

Потім в / etc / nat додаємо правило загортають http-трафік на squid:

iptables -t nat -A PREROUTING -i eth1! -d 192.168.31.0 / 24 -p tcp -m multiport --dport 80, 8080 -j DNAT --to 192.168.31.1:3128

Зберігаємо зміни, перезавантажуємо сервер.

Звертаємо вашу увагу, що squid3 в прозорому режимі, на відміну від попередньої версії, не приймає з'єднання, якщо в настройках прямо вказано використання проксі.

В цьому випадку ви отримаєте повідомлення, що доступ заборонений:

Як бачимо, настройка роутера на сучасній платформі, незважаючи на відмінності, залишається вельми простий і доступна для повторення широкому колу читачів. У наших майбутніх матеріалах ми також будемо приймати за основу роутер, налаштований саме з даного матеріалу, в той же час з даними роутером будуть працювати всі рішення, опубліковані нами раніше, хоча для деяких з них можуть знадобитися незначні коригування.

Новости