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

пересылка iptables между двумя интерфейсами

Итак, у меня есть Linux-бокс с двумя беспроводными интерфейсами, один - это станция, а другой - точка доступа.

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-окне:
  2. Разрешить определенным (или всем) пакетам проходить через маршрутизатор
  3. Как кто-то заявил, поскольку netfilter - это брандмауэр без сохранения состояния, разрешить трафик для уже установленных соединений
  4. Измените адрес источника для пакетов, выходящих в Интернет

    echo 1 > /proc/sys/net/ipv4/ip_forward
    iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
    iptables -A FORWARD -i wlan0 -o wlan1 -m state --state ESTABLISHED,RELATED \
             -j ACCEPT
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
    

Это должно сработать.