Задать вопрос
@kocmoc941
C/C++ Developer

Iptables redirect eth0 to eth1, как проверить работоспособность?

Смысл в следующем:
у меня дома есть комп с eth0 - инет (прямой по dhcp от провайдера) и eth1 - который подключен к роутеру через который я хочу раздавать вафлю, но нет времени настраивать.
Т.к. я только перешёл на линукс (кстати DEBIAN JESSIE), я поставил ещё и на работе на виртуалку его, дабы написать скриптик по настроики сети и просто дома выполнить.
Но есть проблема, мне его надо проверить, уже 2 попытки настроить дома не увенчались успехом (поэтому решил делать так), собственно вопрос:
как настроить роутинг пакетов на eth1 и проверить его, т.е. пакеты будут раздаваться только через eth0->eth1->browser, если например сделать ifconfig eth1 down - то инет отрубится ?
пробовал так:
#принимаем только установленные
iptables -P INPUT DROP
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#тут пытаюсь направить все пакеты на eth1
iptables -tnat -A PREROUTING -i eth0 -j DNAT --to-destination 192.168.10.5

#собственно думаю понятно, что я хотел сделать
iptables -P FORWARD DROP
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

#вот тут есть вопрос: я запрещаю все локальные исходящие пакеты с eth0, но с eth1->eth0 - будет считаться ?
iptables -A OUTPUT -o etho -j DROP

#собственно сам роутинг
iptables -tnat -A POSTROUTING -o eth0 -j MASQUERADE
  • Вопрос задан
  • 1656 просмотров
Подписаться 2 Оценить 1 комментарий
Решение пользователя Baton34 К ответам на вопрос (4)
@Baton34
Надо превратить комп с дебианом в роутер:
sysctl net.ipv4.ip_forward=1 # Разрешаем шлюзу передавать транзитный трафик
iptables -F FORWARD # На всякий случай очистим цепочку FORWARD
# Разрешаем проходить пакетам по уже установленным соединениям
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Разрешаем исходящие соединения из локальной сети к интернет-хостам
iptables -A FORWARD -m conntrack --ctstate NEW -i eth1 -j ACCEPT
iptables -P FORWARD DROP # Весь остальной транзитный трафик — запрещаем.
iptables -t nat -F POSTROUTING # На всякий случай очистим цепочку POSTROUTING таблицы nat
# Маскарадим весь трафик, идущий через eth0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Почитай учебник по iptables

#вот тут есть вопрос: я запрещаю все локальные исходящие пакеты с eth0, но с eth1->eth0 - будет считаться ?
iptables -A OUTPUT -o etho -j DROP
Этим правилом отрубишь выход в инет с самого дебиан-роутера, т.к. пакет сначала проходит output а потом уже postrouting. Вот схема наглядная: Netfilter-tables.jpg
Ответ написан