Bridge WiFi externo (internet) para LAN / WiFi local

1

Eu tenho uma situação um pouco estranha. Eu tenho acesso à internet em minha casa via WiFi corporativo. Eu quero configurar uma LAN com WiFi local em casa, conectando o WiFi corporativo para acesso à Internet.

Por isso, quero algo como um roteador que tenha duas antenas Wi-Fi: um Wi-Fi interno (doméstico) e uma conexão Wi-Fi externa (corporativa). Então eu posso ligar um PC em minha casa ethernet / WiFi e acessar arquivos locais compartilhados, impressoras, etc, bem como a internet, como se o WiFi corporativo fosse o ADSL / fibra / qualquer linha.

Esse hardware já existe? Alguma dica que eu deveria estar procurando?

Eu tinha considerado, talvez, construir um PC para fazer isso, usando vários dongles WiFi / placas PCIe. No entanto, eu realmente quero o 802.11ac de banda dupla, com compatibilidade retroativa para suportar qualquer outro hardware que queira conectar, e não estou convencido de que um pequeno dongle agindo como um "servidor" possa fornecer o mesmo roteador ... ?

    
por Dave 05.09.2018 / 23:49

1 resposta

0

OK, agora posso responder minha própria pergunta.

Eu usei as dicas do comentário de Tyson para começar, mas havia um pouco mais que eu precisava fazer. Especialmente porque eu não tinha mencionado a rede corporativa com a qual eu estava me conectando era o WPA2-Enterprise PEAP MSCHAPv2 autenticado (eduroam).

Eu tenho um hardware bem barato: um ponto de acesso TP-Link TL-WA801ND (Wireless N 300MB single-band 2.4Ghz); e um ASUS AC750 Router (Wireless AC dual-band).

Nenhum desses bits de hardware pode se conectar no modo cliente a uma rede host com autenticação PEAP.

Eu descobri uma substituição de firmware de código aberto, OpenWrt , com alguns artigos Wiki e vídeo do YouTube que prometem fazer o modo cliente com PEAP possível.

Eu li muito sobre problemas com o espaço de armazenamento disponível em o ponto de acesso WA801ND . No entanto, tive sorte. Eu fui enviado um WA801ND V5, que tem o dobro do armazenamento (8MB) das versões anteriores.

No entanto, não havia nada sobre a instalação na V5 em wiki # 1 e instruções de criação assustadoras em wiki # 2 (por que existem dois wikis no site da OpenWrt?).

Eu tive a mesma sorte, porque eu encontrei um git commit detalhando suporte para o V5 , apesar do que os wikis dizem, e com instruções sobre como piscar.

Lendo por alguma documentação , juntamente com as instruções no git commit, finalmente conseguimos o OpenWrt instalado o ponto de acesso WA801ND.

Isso obtém o firmware exclusivo do terminal apenas no dispositivo, que não suporta a autenticação PEAP no modo cliente.

O primeiro passo é ativar o suporte a PEAP.

O OpenWrt vem com seu próprio gerenciador de pacotes, mas o WA801ND não tinha acesso à internet, então eu tive que pegar os pacotes manualmente. Infelizmente, o repositório de pacotes mudou de estrutura desde que a maior parte da documentação on-line foi escrita, por isso foi complicado encontrar os pacotes.

Eu finalmente descobri que há dois sub-repositórios, um para o "destino" (dispositivo) e um para o arco (CPU).

Assim, depois de ter baixado e scp'd o wpad_2018-05-21-62566bc2-4_mipsel_24kc.ipk package para /tmp no dispositivo, eu poderia opkg remove wpad-mini then opkg install /tmp/wpad_2018-05-21-62566bc2-4_mipsel_24kc.ipk , ativando o suporte ao PEAP wpa_supplicant.

Eu tive a chance de configurar o WA801ND através de arquivos de configuração, mas isso é um grande projeto por si só. Eu realmente queria uma interface web GUI. O padrão no OpenWrt é o Luci , que tem várias dependências que precisam ser baixadas e scp'd para o dispositivo.

Por sorte, encontrei uma página wiki com um script (próximo ao final) para automatizá-la. Infelizmente, o script era antigo, faltava uma dependência ou duas e o URL do pacote estava errado. Eu consertei e voila, Luci instalou!

A partir daí, foi fácil configurar uma conexão de modo cliente com a rede PEAP através da interface da Web Luci no ponto de acesso WA801ND e, em seguida, conectar a Ethernet do ponto de acesso à porta WAN do roteador AC750. Eu tive que mudar a sub-rede do roteador de 192.168.1.x para 192.168.2.x assim não entrou em conflito com o ponto de acesso. Então tudo "acabou de funcionar" (finalmente!).

O script corrigido é anexado abaixo, para referência:

#!/bin/sh
#assumes the user has egrep, wget, ssh, and scp

# Change this to match your router
architecture="mipsel_24kc"
target="ramips/mt76x8"

# These should be fine unless you've changed something
user="root"
ip_address="192.168.1.1"


url="https://downloads.openwrt.org/snapshots/packages/${architecture}/"
target_url="http://downloads.openwrt.org/snapshots/targets/${target}/packages/"
tmpdir="/tmp/luci-offline"
packages_base="liblua lua libuci-lua libubus libubus-lua uhttpd rpcd"
packages_luci="luci-base luci-lib-ip luci-lib-nixio luci-theme-bootstrap luci-mod-admin-full luci-lib-jsonc liblucihttp liblucihttp-lua"
packages_target="libiwinfo-lua"

mkdir "$tmpdir"
cd "$tmpdir"

echo "Downloading base packages"
wget --quiet -N "${url}base/Packages" || echo "Failed to get base Packages"
for pkg in $packages_base; do
    pkgfile="$(egrep -oe " ${pkg}_.+" Packages | tail -c +2)"
    pkgurl="${url}base/${pkgfile}"
    wget --quiet -N "$pkgurl" || echo "Failed to fetch $pkg"
done

echo "Downloading Luci packages"
wget --quiet -N "${url}luci/Packages" || echo "Failed to get luci Packages"
for pkg in $packages_luci; do
    pkgfile="$(egrep -oe " ${pkg}_.+" Packages | tail -c +2)"
    pkgurl="${url}luci/${pkgfile}"
    wget --quiet -N "$pkgurl" || echo "Failed to fetch $pkg"
done

echo "Downloading target-specific packages"
wget --quiet -N "${target_url}/Packages" || echo "Failed to get target Packages"
for pkg in $packages_target; do
    pkgfile="$(egrep -oe " ${pkg}_.+" Packages | tail -c +2)"
    pkgurl="${target_url}/${pkgfile}"
    echo "Downloading $pkgurl"
    wget --quiet -N "$pkgurl" || echo "Failed to fetch $pkg"
done

echo "Copying packages to device"
ssh "${user}@${ip_address}" mkdir -p /tmp/luci-offline-packages
scp *.ipk "${user}@${ip_address}":/tmp/luci-offline-packages
echo "Installing pacakges"
ssh "${user}@${ip_address}" opkg install /tmp/luci-offline-packages/*.ipk
echo "Deleting packages from device"
ssh "${user}@${ip_address}" rm -rf /tmp/luci-offline-packages/

echo "Starting HTTP server and enabling on boot"
ssh "${user}@${ip_address}" /etc/init.d/uhttpd start
ssh "${user}@${ip_address}" /etc/init.d/uhttpd enable

echo "Deleting packages from PC"
cd
rm -rf "$tmpdir"
    
por 16.09.2018 / 01:51