iptables перенаправляет весь трафик на интерфейс

14

У меня есть два интерфейса eth1и eth0. Я хочу, чтобы весь трафик eth0был перенаправлен на eth1. Я создал приемлемое правило, как это:

iptables -A FORWARD -s 0/0 -i eth0 -p tcp -o eth1 -j ACCEPT

Но это не работает. Это правильный способ сделать это?

user110
источник

Ответы:

22

Если вы еще не включили пересылку в ядре, сделайте это.

  • Открыть /etc/sysctl.confи раскомментироватьnet.ipv4.ip_forward = 1

  • Затем выполните $ sudo sysctl -p

Добавьте следующие правила в iptables

sudo iptables -t nat -A POSTROUTING --out-interface eth1 -j MASQUERADE  
sudo iptables -A FORWARD --in-interface eth0 -j ACCEPT

Весь перенаправленный трафик будет проходить через цепочку FORWARD. Чтобы отфильтровать пакеты, теперь вам нужно создать правила для этой цепочки, определяющие, какой интерфейс является входящим / исходящим, вместо использования цепочек INPUT / OUTPUT.

ручей
источник