Налаштування nat, dnat в linux за допомогою iptables

Про що ж піде мова

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

Так що вашій увазі я представляю невеличкий екскурс по налаштуванню firewall в Linux. Заглибимося лише в настройку netfilter / iptables, інших прикладних питань ми безсумнівно теж торкнемося, адже нам не вистачає саме комплексних відповідей на наші запитання ... І я постараюся ка можна більш дохідливо тут все викласти.

Як це виглядає

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

Поїхали, потихеньку.

І так що ж ми маємо:

  • сервер з 2-ма мережевими картами і встановленим на ньому Debian Lenny
  • наявний за замовчуванням в Debian Lenny firewall - netfilter / iptables
  • локальну мережу з N комп'ютерів, все з'єднані через комутатор, в тому числі і сервер
що таке NAT

Тепер, коли ми знаємо що таке NAT і для чого він потрібен, можна приступати безпосередньо до налаштування сервера.

транзитний трафік
налаштовуємо iptables
по дрібницям.
доступ в надра мережі через шлюз або DNAT
отже що там з коханим squid

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

$ Iptables -A PREROUTING -d 192.168.0.0/24 -i eth0 -p tcp -m multiport --dports 80,443 -j REDIRECT --to-ports 3128.

І що ж нам це дає? Тепер всі запити на web сторінки з ваших робочих місць по http ((80) і https (443) протоколів будуть перенаправлятися на порт який слухає squid. Ви отримує контентную фільтрацію, інформацію про те хто де був і що робив в інтернет, користувач ні чого не підозрюючи працює як і раніше ...

трохи безпеки

Слід хоч мінімально захистити свій шлюз тому додамо ще пару правил
$ Iptables -A INPUT -i lo -j ACCEPT
$ Iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j ACCEPT
$ Iptables -A INPUT -i eth1 -m conntrack --ctstate RELATED, ESTABLISHED -j ACCEPT
$ Iptables -P INPUT DROP
Тим самим заборонили будь-яке спілкування безпосередньо з шлюзом, крім вже встановлених з'єднань, тобто ті що були ініційовані вами і ви просто отримуєте на них відповіді. Не бійтеся наш DNAT до цих правил просто не доходить ...

чому так мало?

Схожі статті