Настройка IPTABLES и NAT в Ubuntu Server

Данная статья может пригодиться тем кому нужно настроить интернет через шлюз на Ubuntu.

Итак для начала нужно определиться что мы будем делать:

  1. Настроим доступ в интернет всем компьютерам локальной сети
  2. Пробросим порты на отдельные компьютеры

    Что у нас есть
    eth0 — интернет
    eth1 — локальная сеть

Для начала нам нужно создать файл /etc/firewall.sh
Нужно сделать его исполняемым

sudo chmod +x /etc/firewall.sh

Открываем его любым удобным редактором

sudo nano /etc/firewall.sh

И вносим в него следующие строки:

#!/bin/sh

iptables -F // сброс всех настроек

iptables -t nat -F // сброс настроек NAT

sysctl -w net.ipv4.ip_forward="1" // переброска пакетов между сетевыми интерфейсами разрешена

Маскарад

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE // Куда перебрасывать пакеты из локальной сети

Закрытие/открытие портов

iptables -t filter -A INPUT -i eth0 -p tcp --dport 21 -j ACCEPT

// Открытие входящего порта 21 на eth0

// Так же есть DROP

// Возможно использование без интерфейса

Проброс портов

iptables -t nat -A PREROUTING -p tcp --dport 21 -i eth0 -j DNAT --to 192.168.1.2

// Переброс порта 21 с интерфейса eth0 на IP в локальной сети 192.168.1.2

Теперь чтобы все это дело не приходилось руками запускать при каждом запуске компьютера добавим строчку в файл
/etc/rc.local:

/etc/firewall.sh

Проверяем, перезапускаем.