Em Hotéis, crie um ponto de acesso Wi-fi com um Raspberry Pi
Lidar com o Wi-Fi de hotel pode ser frustrante, principalmente quando se trata de conectar múltiplos dispositivos. Frequentemente, essas redes têm limitações de uso por dispositivo ou não permitem comunicação entre dispositivos conectados, apresentando ainda riscos de segurança. Uma solução prática é usar um Raspberry Pi para se conectar à rede do hotel e, em seguida, criar uma rede própria, facilitando a conexão de todos os seus dispositivos automaticamente. Este método, útil em redes com portal cativo, como aeroportos e cafés, pode ser configurado inicialmente em casa e utilizado em viagens.
É possível usar um Raspberry Pi para estabelecer uma única ligação Wi-Fi em hotéis e, a partir dela, criar uma rede autónoma para os seus vários aparelhos. Esta solução permite evitar a configuração repetida dos dispositivos em cada estadia em hotel, já que após a configuração inicial, eles se conectarão automaticamente à rede gerada pelo Raspberry Pi em futuras visitas.
Dica: Este tutorial abrange a criação de um hotspot Wi-Fi utilizando a conexão de um hotel. No entanto, as instruções fornecidas são igualmente aplicáveis a outras redes públicas que utilizam portais cativos, como as encontradas em aeroportos, universidades e cafés. Este método é versátil e útil em diferentes contextos onde a conectividade Wi-Fi é restrita ou limitada a dispositivos individuais.
O melhor é começar por configurar o hotspot em casa. Para usar o ponto de acesso quando estiver num hotel, consulte o ponto 'Usar o ponto de acesso'.
Materiais para ponto de acesso Wi-Fi com Raspberry Pi:
- Raspberry Pi
- Fonte de alimentação Raspberry Pi adequada (consulte a documentação da fonte de alimentação para obter detalhes)
- Cartão MicroSD (consulte a documentação do cartão SD para obter detalhes)
- Adaptador para conectar seu cartão microSD ao seu computador normal
- Adaptador Wi-Fi USB
Para a configuração inicial do cartão SD, vamos precisar de:
Outro computador conectado à rede. Iremos referir-nos a ele como computador normal para diferenciá-lo do computador Raspberry Pi que está a configurar como NAS.
Escolha o Raspberry Pi certo
Selecionar o Raspberry Pi apropriado é crucial. Optar por um modelo mais rápido, como o Raspberry Pi 4 com 2GB de RAM, oferece melhor desempenho. É vantajoso escolher um modelo com Wi-Fi integrado para este projeto, pois precisará de duas interfaces Wi-Fi: uma para ligar à rede do hotel e outra para criar a sua própria rede Wi-Fi para os dispositivos adicionais.
Selecionar um adequado adaptador USB Wi-Fi é um passo importante
Deve-se preferir aqueles compatíveis com drivers Linux. Neste guia, utilizou-se um adaptador 802.11 b/g/n de 2,4 GHz baseado no chipset MediaTek MT7601U, mas existem várias opções compatíveis no mercado que podem atender às suas necessidades de conexão Wi-Fi.
Dica: Se escolheu um Raspberry Pi que não inclui um módulo Wi-Fi integrado, precisará de dois adaptadores USB Wi-Fi. Pelo menos um dos seus adaptadores Wi-Fi deve suportar o modo AP (ponto de acesso) para transmitir uma rede hotspot.
Configure seu Raspberry Pi
Para começar, siga a documentação de primeiros passos para configurar seu Raspberry Pi. Para o seu sistema operacional, escolha Raspberry Pi OS Lite (32 bits) para rodar sem cabeça (sem mouse e teclado).
Durante o estágio de personalização do sistema operacional, edite as configurações da seguinte forma:
- Digite um nome de host de sua escolha (sugerimos pi-hotspot para este tutorial).
- Digite um nome de usuário e senha; precisará deles mais tarde para autenticar.
- Marque a caixa ao lado de Configurar LAN sem fio para que seu Pi possa se conectar automaticamente ao Wi-Fi.
- - Digite o SSID (nome) e a senha da sua rede; pode encontrá-los nas configurações de Wi-Fi ou em um adesivo no roteador.
- Na guia Serviços, marque a caixa ao lado de Habilitar SSH para que possamos nos conectar ao Pi sem mouse e teclado.
- - Habilite a autenticação por senha para conexões SSH.
Desligue seu Raspberry Pi desconectando-o da fonte de alimentação. Em seguida, conecte seu adaptador (ou adaptadores) USB WiFi ao Raspberry Pi. Por fim, ligue seu Raspberry Pi conectando-o novamente à fonte de alimentação.
Conecte-se remotamente ao seu Raspberry Pi
O SSH permite que se conecte remotamente ao Raspberry Pi, eliminando a necessidade de teclado e mouse. É perfeito se o seu Raspberry Pi estiver localizado num local de difícil acesso, como a parte traseira do monitor.
OBSERVAÇÃO: Para fazer SSH no Raspberry Pi, usará o nome de host definido usando o Raspberry Pi Imager. Se tiver problemas para se conectar usando este método, pode usar o endereço IP do Raspberry Pi. Para obter mais informações sobre como encontrar seu endereço IP e acessar seu Raspberry Pi remotamente, consulte a documentação de acesso remoto.
Conecte-se via SSH
Abra uma sessão de terminal em seu computador normal. Para acessar seu Raspberry Pi via SSH, execute o seguinte comando, substituindo <username>pelo nome de usuário que escolheu no Imager:
$ ssh <username>@pi-hotspot.local
$ ssh <username>@pi-hotspot.local
The authenticity of host 'pi-hotspot.local (fd81:b8a1:261d:1:acd4:610c:b069:ac16)' can't be established.
ED25519 key fingerprint is SHA256:s6aWAEe8xrbPmJzhctei7/gEQitO9mj2ilXigelBm04.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/
[fingerprint])? yes
Warning: Permanently added 'pi-hotspot.local' (ED25519) to the list of known hosts.
<username>@pi-hotspot.local's password:
Linux pi-hotspot 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue Oct 24 09:41:00 2023
<username>@pi-hotspot:~ $
Quando a senha for solicitada, use a senha que criou no Raspberry Pi Imager.
Configurar ponto de acesso
Agora que seu Raspberry Pi está instalado e funcionando, é hora de transformá-lo em um hotspot.
Encontre o seu adaptador USB Wi-Fi
Primeiro, precisamos encontrar o adaptador USB. Execute o seguinte comando para identificar dispositivos Wi-Fi com a CLI do Network Manager:
$ nmcli device
Deverá ver uma saída semelhante a esta:
DEVICE TYPE STATE CONNECTION
wlan1 wifi connected Example Wi-Fi
lo loopback connected (externally) lo
wlan0 wifi disconnected --
p2p-dev-wlan0 wifi-p2p disconnected --
eth0 ethernet unavailable --
Na saída acima, o módulo USB Wi-Fi, , wlan1está conectado a uma rede Wi-Fi chamada "Exemplo de Wi-Fi". O dispositivo Wi-Fi integrado, wlan0, não está em uso no momento, portanto o estado atualmente é "desconectado".
Se o seu Raspberry Pi tiver um módulo Wi-Fi integrado, ele deverá aparecer por padrão como wlan0. O primeiro módulo Wi-Fi conectado deverá aparecer como wlan1, e os adaptadores subsequentes serão exibidos como wlan2, wlan3e assim por diante. Dependendo da sua configuração específica, o Raspberry Pi pode se conectar à rede usando o adaptador USB ou o módulo Wi-Fi integrado.
Criar rede de hotspot
A seguir, usaremos o módulo Wi-Fi integrado para transmitir uma rede hotspot. Execute o seguinte comando para criar um ponto de acesso, substituindo os espaços reservados <hotspot name>e <hotspot password>por um nome de ponto de acesso e senha à sua escolha:
$ sudo nmcli device wifi hotspot ssid <hotspot name> password <hotspot password> ifname wlan0
Dica: A ifname wlan0opção no final deste comando especifica que o hotspot deve usar o módulo Wi-Fi integrado, que suporta o modo AP (Access Point) necessário para transmitir uma rede hotspot. Para hospedar um hotspot de um Raspberry Pi que não possui um módulo Wi-Fi integrado, especifique uma interface correspondente a um adaptador USB que suporte o modo AP.
Depois de criar a rede de pontos de acesso, o seu ponto de acesso deverá ficar ativo automaticamente.
Em seguida, conecte-se à rede Wi-Fi do ponto de acesso do seu computador normal. Procure uma rede com um SSID correspondente ao nome do ponto de acesso escolhido na etapa anterior. Use a senha que também forneceu nessa etapa para autenticar.
Em seguida, conecte-se ao seu Raspberry Pi usando SSH:
$ ssh <username>@pi-hotspot.local
E execute o seguinte comando para visualizar as suas conexões atuais:
$ nmcli connection
Irá ver uma saída semelhante a esta:
NAME UUID TYPE DEVICE
Hotspot 69d77a03-1cd1-4ec7-bd78-2eb6cd5f1386 wifi wlan0
lo f0209dd9-8416-40a0-971d-860d3ff3501b loopback lo
Ethernet 4c8098c7-9f7d-4e3e-a27a-70d54235ec9a ethernet --
Example 1 f0c4fbcc-ac88-4791-98c2-e75685c70e9f wifi --
Example 2 9c6098a7-ac88-40a0-5ac2-b75695c70e9e wifi --
A conexão nomeada Hotspotrepresenta sua nova rede de hotspot. As conexões Example 1e Example 2 acima representam conexões Wi-Fi salvas que estão inativas.
Configurar rede de hotspot
Vamos configurar a sua rede hotspot para transmitir automaticamente sempre que seu Raspberry Pi inicializar. Quando o Raspberry Pi inicializa, ele inicia qualquer conexão com conexão automática habilitada com maior prioridade. Para garantir que seu ponto de acesso sempre inicie na inicialização, ativaremos a conexão automática para o ponto de acesso e configuraremos uma prioridade mais alta do que qualquer outra conexão.
Execute novamente o nmcli connectioncomando acima e copie o UUID da sua rede de hotspot da tabela. Em seguida, execute o seguinte comando para visualizar as propriedades de conexão da sua rede de hotspot, substituindo o <hotspot UUID>espaço reservado pelo UUID do seu hotspot:
$ nmcli connection show <hotspot UUID>
A saída vai conter muitas propriedades que descrevem a sua rede de hotspot. Mas por enquanto estamos interessados apenas nas duas propriedades a seguir:
connection.autoconnect: no
connection.autoconnect-priority: 0
Execute o seguinte comando para alterar as propriedades de prioridade e conexão automática do seu ponto de acesso, substituindo o <hotspot UUID> espaço reservado pelo UUID do ponto de acesso que copiou para a área de transferência antes:
$ sudo nmcli connection modify <hotspot UUID> connection.autoconnect yes connection.autoconnect-priority 100
Se o seu comando foi executado com sucesso, devemos ver os seguintes novos valores para essas propriedades quando executarmos novamente nmcli connection show <hotspot UUID>:
connection.autoconnect: yes
connection.autoconnect-priority: 100
Configurar portal de conexão
A seguir, vamos configurar um portal que permite conectar facilmente o seu Raspberry Pi a uma rede Wi-Fi de hotel a partir de um navegador.
Instale as seguintes ferramentas:
$ sudo apt install python3-flask
Em seguida, execute o seguinte comando para criar um diretório onde possamos criar o nosso portal, chamado wifi-portal:
$ mkdir ~/wifi-portal
Em seguida, navegue até o diretório do portal:
$ cd ~/wifi-portal
Abra app.pyno diretório do portal, que contém a lógica para o website do portal:
$ sudo nano app.py
Copie e cole o seguinte código em app.py:
from flask import Flask,request
import subprocess
app = Flask(__name__)
wifi_device = "wlan1"
@app.route('/')
def index():
result = subprocess.check_output(["nmcli", "--colors", "no", "-m", "multiline", "--get-value", "SSID", "dev", "wifi", "list", "ifname", wifi_device])
ssids_list = result.decode().split('\n')
dropdowndisplay = f"""
<!DOCTYPE html>
<html>
<head>
<title>Wifi Control</title>
</head>
<body>
<h1>Wifi Control</h1>
<form action="/submit" method="post">
<label for="ssid">Choose a WiFi network:</label>
<select name="ssid" id="ssid">
"""
for ssid in ssids_list:
only_ssid = ssid.removeprefix("SSID:")
if len(only_ssid) > 0:
dropdowndisplay += f"""
<option value="{only_ssid}">{only_ssid}</option>
"""
dropdowndisplay += f"""
</select>
<p/>
<label for="password">Password: <input type="password" name="password"/></label>
<p/>
<input type="submit" value="Connect">
</form>
</body>
</html>
"""
return dropdowndisplay
@app.route('/submit',methods=['POST'])
def submit():
if request.method == 'POST':
print(*list(request.form.keys()), sep = ", ")
ssid = request.form['ssid']
password = request.form['password']
connection_command = ["nmcli", "--colors", "no", "device", "wifi", "connect", ssid, "ifname", wifi_device]
if len(password) > 0:
connection_command.append("password")
connection_command.append(password)
result = subprocess.run(connection_command, capture_output=True)
if result.stderr:
return "Error: failed to connect to wifi network: <i>%s</i>" % result.stderr.decode()
elif result.stdout:
return "Success: <i>%s</i>" % result.stdout.decode()
return "Error: failed to connect."
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0', port=80)
Pressione Ctrl+X , depois Y e finalmente Enter para salvar o arquivo editado com o nano.
A seguir, vamos configurar seu Raspberry Pi para executar automaticamente o portal Wi-Fi após a inicialização. Execute o seguinte comando para abrir sua cronguia, uma ferramenta de agendamento do Linux:
$ crontab -e
Entre 1 para usar o editor de texto nano para editar sua programação cron. Em seguida, adicione a seguinte linha ao arquivo, substituindo o <username> espaço reservado pelo nome de usuário da sua conta de administrador do Raspberry Pi:
@reboot sudo python3 /home/<username>/wifi-portal/app.py
Pressione Ctrl+X , depois Y e finalmente Enter para salvar o arquivo editado com o nano.
E digite o seguinte comando para reiniciar o seu Raspberry Pi:
$ sudo reboot
Agora está pronto para se conectar a qualquer rede Wi-Fi de hotel!
Use o ponto de acesso Wi-Fi com Raspberry Pi
Agora deve ter o ponto de acesso Wi-Fi do seu hotel totalmente configurado. Cada vez que for a um hotel, repita os seguintes passos:
- Conecte o seu Raspberry Pi.
- Conecte o seu computador normal à conexão Wi-Fi do hotspot.
- Conecte um dispositivo ao hotspot e visite http://pi-hotspot.local . Selecione uma rede Wi-Fi e digite uma senha, se necessário.
- Num dispositivo conectado ao hotspot, abra o portal http://captive.apple.com . Autentique-se para conectar a rede do hotspot Raspberry Pi à Internet.
Na primeira vez que usar outro dispositivo com o hotspot, será necessário configurar a conexão Wi-Fi manualmente. Mas depois disso, o dispositivo deverá conectar-se automaticamente ao hotspot.
Dica: Talvez seja necessário repetir a etapa do portal cativo a cada 12 a 48 horas, dependendo da configuração da rede do seu hotel.
Próximos passos
Agora que tem o seu próprio ponto de acesso Wi-Fi para usar nas redes Wi-Fi de hotéis, faça bom uso dele! Assista a alguns filmes, navegue na internet e relaxe.
Agora que relaxou, considere algumas melhorias para tornar o ponto de acesso Wi-Fi do seu hotel ainda mais conveniente. Por usar um segundo Raspberry Pi (ou servidor doméstico, se já tiver um), pode hospedar uma VPN pessoal na sua rede doméstica com PiVPN e configurar o seu Raspberry Pi de hospedagem de hotspot para se conectar a ele. Com uma conexão VPN, pode proteger todos os dispositivos conectados ao seu ponto de acesso contra espionagem enquanto estiver conectado a redes de convidados inseguras.
Fonte do conteúdo: https://www.raspberrypi.com/tutorials/host-a-hotel-wifi-hotspot/