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


14

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

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

Але це не працює. Це правильний спосіб зробити це?

Відповіді:


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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.