Пересылка iptables между двумя интерфейсами
Итак, у меня есть linux box с двумя беспроводными интерфейсами, один - станция, а другой - точка доступа.
wlan0 (станция) - подключен к интернету
wlan1 (AP) - к нему подключаются другие клиенты.
Я хотел бы, чтобы клиенты, подключенные к wlan1, имели доступ к Интернету на wlan0. И я хотел бы сделать это с iptables, так как мое ядро не имеет поддержки моста...
Вот что я пробовал до сих пор с iptables, но он не работает:
iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT
iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
Буду признателен за любую помощь.
1 ответ
Решение
Во-первых, чтобы узлы, подключающиеся через ваш частный интерфейс, могли выходить в Интернет, вам не нужно соединять интерфейсы, вам нужно перенаправлять пакеты, поступающие на один интерфейс, на другой, где они выходят в дикую природу.
Для этого вам нужно только:
- Включите переадресацию на вашем linux box:
- Разрешить определенным (или всем этим) пакетам проходить через ваш маршрутизатор
- Как кто-то сказал, так как netfilter - это брандмауэр без сохранения состояния, разрешите трафик для уже установленных соединений
- Изменить исходный адрес пакетов, выходящих в интернет
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD -i wlan1 -o wlan0 -j ПРИНЯТЬ iptables -A FORWARD -i wlan0 -o wlan1 -m состояние - УСТАНОВЛЕНО, СВЯЗАНО \ -J ПРИНЯТЬ iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
Это должно сделать это.