Пробросить интернет с wlan0 на eth0

Тема в разделе "Raspberry Pi", создана пользователем Whitedeath, 20 янв 2017.

  1. Whitedeath

    Whitedeath Нуб

    Не могу решить следующую задачу, подскажите пожалуйста как настроить данную конфигурацию.
    Имеется малинка (Raspberry) которая подключается к интернету через wlan0, также имеется локальная сеть, подключенная к малинке через eth0 (192.168.3.0-255).
    DHCP по локалке не нужен, У всех машин статические IP
    Как только подключаю ethernet кабель, сразу отваливается интернет.
    подскажите какие настройки надо произвести, чтобы избежать сего досадного факта.

    Помогите настроить, готов оплатить Ваши услуги. Уж больно надоела через день за 80 км мотаться, чтобы обслужить оборудование.
     
  2. Igor68

    Igor68 Гуру

    Уже было... посмотрите тему
    Raspberry pi 3 + internal WI-FI + USB WI_FI
    http://forum.amperka.ru/threads/raspberry-pi-3-internal-wi-fi-usb-wi_fi.9798/
    В любом случае настроить надо сначала на столе.
     
  3. CryNET

    CryNET Гик

    Ну не знаю, я бы попробовал настроить DHCP-сервер на одной из машин (роутер или сервер), чтобы не париться со статикой, если была такая возможность.

    У все сети или только у Raspberry?

    В вашем случае надо разобраться с тем, как вы адреса для eth0 и wlan0 будете получать (я бы все-таки dhcp сервер и клиент прикрутил к ним), а потом настроить iptables и всё.
    И почему не DHCP?

    Примерный конфиг, учитывая что вы разобрались с адресами для eth0 и wlan0


    Код (Bash):
    #!/bin/sh

    iptables -F
    iptables -t nat -F
    iptables -t mangle -F
    iptables -X

    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD DROP

    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

    iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT #Из wlan0 в eth0, но не обратно.
    iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -A FORWARD -m conntrack --ctstate INVALID -j DROP
    iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited

    iptables -A INPUT -i lo -j ACCEPT # local
    iptables -A OUTPUT -o lo -j ACCEPT

    iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

    # ну и тут ваши уже настройки, просто для примера напишу, чтобы работало

    iptables -A INPUT -p TCP --dport 53 -j ACCEPT
    iptables -A INPUT -p UDP --dport 53 -j ACCEPT
    iptables -A INPUT -p UDP --dport 67 -j ACCEPT
    iptables -A INPUT -p UDP --dport 68 -j ACCEPT
    iptables -A INPUT -p UDP --dport 123 -j ACCEPT

    iptables -A INPUT -p TCP --dport 21 -j ACCEPT #FTP server
    iptables -A INPUT -p TCP --dport 20 -j ACCEPT
    iptables -A INPUT -p TCP -m multiport --dports 10000:10100 -j ACCEPT

    iptables -A INPUT -p TCP --dport 80 -j ACCEPT #http
    iptables -A INPUT -p TCP --dport 443 -j ACCEPT #https

    iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset #Это выпендреж, можно тупо iptables -A INPUT -j DROP и всё... (удалить тогда эти 3 строчки)
    iptables -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable
    iptables -A INPUT -j REJECT --reject-with icmp-proto-unreach
    iptables -A INPUT -j DROP

    iptables -A OUTPUT -j ACCEPT #Ну на выход можно хоть откуда, можно так же настроить, если оно надо
    Ну и про IPv6 (ip6tables) не забудьте, либо отключите, либо запретите, либо настройте.

    Если все нормально, то сохраняйте и в автозагрузку добавляйте правила. Если после исполнения сего скрипта отвалился интернет или связь - перезагрузитесь, тогда правила сбросятся и можете подправить скрипт.

    Сохранять правила и восстанавливать можно так:

    Код (Bash):
    ./script.sh # Исполняете скрипт, если все норм и устраивает - сохраняйте, если все сломалось - перезагрузитесь

    iptables-save > /path/to/file # сохранить текущие правила в файл
    iptables-restore < /path/to/file # восстановить правила при запуске системы, эту команду добавить в автозапуск (к примеру /etc/rc.local)
     
    Последнее редактирование: 21 янв 2017
    Igor68 нравится это.