Назад | Перейти на главную страницу

Правила NAT между 2 сетевыми интерфейсами (с iptables)

это текущая сеть, которая у меня есть:

UBUNTU:
  eth0:
    ip: 212.83.10.10
    bcast: 212.83.10.10
    netmask 255.255.255.255
    gateway 62.x.x.x
  eth1:
    ip: 192.168.1.1
    bcast: 192.168.1.255
    netmask: 255.255.255.0
    gateway ?

CENTOS:
  eth0:
    ip: 192.168.1.2
    bcast: 192.168.1.255
    netmask 255.255.255.0
    gateway 192.168.1.1

Я в основном хочу этого:

Установите определенные правила NAT из Интернета на определенные внутренние серверы в зависимости от порта:

Подключения, входящие на порт 80, должны быть перенаправлены на 192.168.1.2:80

Подключения, входящие на порт 3306, должны быть перенаправлены на 192.168.1.3:3306

и так далее...

Мне также нужно одно правило NAT, чтобы разрешить серверам в подсети 192.168.1.x просматривать Интернет. Мне нужно направить запросы на eth0 на eth1, чтобы иметь возможность выйти в Интернет.

Могу ли я сделать это на машине UBUNTU с iptables?

Спасибо!

Для первого требования вам нужно будет использовать DNAT или назначение назначения, которое используется следующим образом:

iptables -t nat -A PREROUTING -p tcp --dport TARGETPORT -j DNAT --to TARGET-IP:TARGETPORT

Пример:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.2:80

Для просмотра Интернета вам понадобится Source Natting:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source GATEWAY-IP

Or you can use masquarding instead of Source Natting like this:

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

Также не забудьте открыть необходимые порты на серверах.