Всім доброго часу доби. Багато швидше за все стикалися з необхідністю організувати маршрутизатор для домашньої або офісної мережі за допомогою наявного сервера / комп'ютера під управлінням Linux. Сьогодні я вирішив написати статтю про те як налаштувати NAT в Iptables на CentOS 6.
Ну що ж, можна приступати безпосередньо до налаштування.
Перш за все потрібно сказати системі, що їй прийдеться працювати як маршрутизатор.
Робиться це в файлі sysctl.conf
у відкритому файлі знаходимо рядки:
і замінюємо 0 на 1:
зберігаємо і перезапускаємо:
Тепер безпосередньо сам Iptables.
Відкриємо з-під root конфиг. За замовчуванням він знаходиться в / etc / sysconfig / iptables
У відкритому файлі ви повинні побачити щось таке:
Так виглядає чистий файл конфіга.
Якщо він у Вас порожній, то заповніть його чітсим конфіг і можна приступати до налаштування.
Для того щоб підняти NAT в Iptables використовується ланцюжок nat (як Ви могли вже здогадатися)
Щоб встановити нове постійне правило використовується ключ -A. а саме правило пишеться після визначення ланцюжка.
Для NAT, в Iptables, в найпростішому варіанті використовується ключ - MASQUERADE.
Як я писав вище, кожне правило складається з критерію, дії і лічильника.
Складемо правило для інтерфейсу eth0:
В результаті маємо отримати так:
Але це ще не все. Далі потрібно щоб наш маршрутизатор почав форвард пакети.
Для цього в ланцюжок filter ми пишемо такі правила:
Зверніть увагу, що тут вже використаний інтерфейс eth1. Це не помилка.
eth1 - це інтерфейс нашої локальної мережі пакети якої ми і натім в світ.
В кінці не завадить в ланцюжок filter додати загальних правил які не дозволять в разі помилки перекрити доступ до сервера з якого-небудь інтерфейсу.
і дозволити вільно використовувати інтерфейс lo:
Остаточний варіант ланцюжка filter повинен виглядати так:
От і все!
Перезапускаємо Iptables:
І спостерігаємо як все добре працює.