Você tem aquele notebook ou pc antigo encostado, com duas placas de rede, sendo uma delas wifi. Que tal transformá-lo num Access Point Wifi (AP) para conectar seus dispositivos?
Neste artigo vou transformar um PC antigo num AP utilizando o Debian 9.
Existem diversos motivos para se ter um AP, entre eles destaco os seguintes:
➡ Permite interligar dispositivos variados;
➡ Permite levar conexão wifi a pontos que não possuí;
➡ Permite conectar dispositivos móveis a um rede cabeada;
➡ Permite fazer proxy e cache para acessar as páginas da Internet;
➡ Permite criar regras de controle de acesso para sua rede;
➡ Permite criar uma rede virtual sem precisar de switchs e pontos de rede;
Numa instalação simples, geralmente o Debian não irá instalar o driver para a placa wifi, para isso teremos que identificá-la e configurá-la de forma adequada.
Para isso, primeiro temos que identificar a placa com o comando lspci:
# lspci | egrep -i '(network|wireless)'
Após identificar a interface que possui a identificação 04:00.0, podemos exibir mais detalhes da placa com o comando abaixo:
# lspci -v -s 04:00.0
Os parâmetro -v, exibe mais detalhes sobre a placa e no parâmetro -s, nós pedimos pra mostrar só as informações de um dispositivo específico.
Podemos identificar que se trata de uma placa da Intel de número 7260, também vemos que é um modelo que suporta redes AC (802.11ac).
Procurando na Internet encontrei o driver num repositório para hardware que não tem a licença free, vamos instalar adicionando o repositório no sources.list:
# echo '# Debian 9 "Stretch"' >> /etc/apt/sources.list
# echo 'deb http://httpredir.debian.org/debian/ stretch main contrib non-free' >> /etc/apt/sources.list
Depois, instalamos o pacote para a nossa placa:
# apt update && apt install firmware-iwlwifi -y
Após finalizar a instalação podemos carregar os módulos do kernel:
# modprobe -r iwlwifi ; modprobe iwlwifi
Depois de carregados os módulos, a interface já será reconhecida pelo Debian:
No nosso Debian temos duas interfaces, a enp2s0 que recebe o IP do roteador da Operadora de Internet e a interface wlp4s0 que será utilizada para a conexão wifi.
Primeiro, vamos instalar alguns programas necessário para configurar nossa interface wifi:
# apt install iw bridge-utils -y
Podemos identificar se a placa permite ser utilizada como Access Point, para isso executamo o comando abaixo. Se aparecer a opção AP na lista sua placa suporta este modo:
# iw list | grep "Supported interface modes" -A 8
Para nosso AP funcionar com a Internet da Operadora e receber o IP automaticamente, vamos criar uma interface bridge entre a interface lan (enp2s0) e a wifi (wlp4s0), lembrando que devemos utilizar um IP da mesma rede utilizada pela sua operadora:
No arquivo /etc/network/interfaces remova as configurações da interface de rede, deixando apenas a configuração de loopback:
# vi /etc/network/interfaces
# Interface loopback
auto lo
iface lo inet loopback
Criamos um arquivo específico para a interface bridge:
# vi /etc/network/interfaces.d/br0
# Interface Brigde (Lan + Wifi)
auto br0
iface br0 inet static
# Configuração da rede
address 192.168.0.200
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 8.8.8.8
# Faz a ponte entre as duas interfaces
bridge-ports enp2s0 wlp4s0
Agora, reiniciamos o sistema para recarregar as configurações da interface e pronto, a parte de rede está configurada.
# shutdown -r now
Para transformar nosso pc num Access Point usamos o servidor com o serviço hostapd, vamos instalá-lo com o comando abaixo:
# apt install hostapd -y
Partimos agora para configuração do arquivo do hostapd, com as definições para habilitar nossa rede wifi chamada Linux na Web:
# vi /etc/hostapd/hostapd.conf
interface=wlp4s0
bridge=br0
driver=nl80211
ssid=Linux na Web
hw_mode=g
country_code=BR
channel=10
wpa=2
wpa_passphrase=senha@forte
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=CCMP
auth_algs=1
macaddr_acl=0
Abaixo temos uma descrição de cada linha do arquivo:
interface=wlp4s0: Define a interface da nossa rede wifi.
bridge=br0: Define a interface bridge que vamos utilizar.
driver=nl80211: Driver utilizado para nossa interface wifi. A maioria das placas wifi utilizam o nl80211.
ssid=Linux na Web: Define o nome da nossa rede.
hw_mode=g: Define o modo de operação da rede. Onde a é referente a tecnologia 802.11a, b é 802.11b e g será a rede 802.11g.
country_code=BR: Define código do país. Não é obrigatório o uso desta opção.
channel=10: Define o canal utilizado pela nossa rede. Deixando como 0, ela irá procurar o canal com menos interferência.
wpa=2: Define o protocolo utilizado na rede. Onde 1 é para wap1, 2 para wap2 e 3 para ambos.
wpa_passphrase=senha@forte: Definimos a senha para acesso a nossa rede wifi.
wpa_key_mgmt=WPA-PSK: Define o algoritmo da chave de criptografia desejada. As opções são WPA-PSK e WPA-EAP, utilizaremos WPA-PSK.
wpa_pairwise=TKIP CCMP e rsn_pairwise=CCMP: Definem os algoritmos de criptografia que iremos utilizar.
auth_algs=1: Define o algoritmo de autenticação. Com 1 definimos para WPA2 e com 2 definimos como WEP. Sempre escolha 1, pois é mais seguro.
macaddr_acl=0: Permite criar regras para acesso pelo MAC ADDRESS. Com 0 desabilitamos o bloqueio, permitindo acesso para todos.
Antes de iniciarmos o serviço hostapd, precisamos configura algumas opções:
# vi /etc/default/hostapd
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DAEMON_OPTS="-dd -t -f /var/log/hostapd.log"
Onde:
DAEMON_CONF: Define arquivo de configuração do hostapd.
DAEMON_OPTS: Define parâmetros opcionais para o serviço. No nosso caso definimos o formato e onde deve ser gerado os registros de logs do hostapd.
Pronto, com as configurações finalizadas, podemos reiniciar o serviço.
# systemctl restart hostapd
Podemos verificar a nossa interface bridge com o comando:
# brctl show
Podemos ver que ela agrupa ambas as interfaces, enp2s0 e wlp4s0.
Portanto, já podemos verificar a disponibilidade da nossa rede:
E fazer a conexão:
Podemos também identificar pelos logs:
# tail -f /var/log/hostapd.log
Podemos escolher algumas opções para melhorar nossa rede, impedindo a sobrecarga e deixando mais segura.
Podemos restringir a quantidade de estações que podem se conectar a nossa rede, adicionando no arquivo de configuração (hostapd.conf) a opção max_num_sta seguida da quantidade:
max_num_sta=5
Assim, somente 5 conexões serão possíveis, a partir da quinta nenhuma outra conexão será permitida.
Podemos restringir o acesso a nossa rede, pelo mac-address dos dispositivos. Para isso, temos que definir alguns parâmetros no arquivo de configuração:
macaddr_acl=NUM
Onde NUM pode ser:
0: Aceita conexão a todos os dispositivos, a menos que esteja numa lista de mac-address bloqueados.
1: Nega conexão a todos os dispositivos, a menos que esteja numa lista de mac-address liberados.
2: Utiliza um servidor RADIUS para fazer as validações de conexão.
Vamos configurar para liberar todas as conexões, exceto se o mac-address do dispositivo estiver numa lista de dispositivos bloqueados:
# vi /etc/hostapd/hostapd.conf
macaddr_acl=0
deny_mac_file=/etc/hostapd/hostapd.deny
O parâmetro deny_mac_file define o arquivo que terá os mac-addres bloqueados:
# vi /etc/hostapd/hostapd.deny
e8:91:20:35:a2:c0
E para recarregar as configurações, executamos o comando:
# systemctl reload hostapd
Pronto, todos os mac-address dos dispositivos que estiverem no arquivo hostapd.deny, não conseguirão se conectar a rede. Podemos verificar nos logs:
# tail -f /var/log/hostapd.log
Agora vamos configurar para bloquear todas as tentativas de conexões, exceto se o mac-address do dispositivo estiver numa lista de dispositivos liberados:
# vi /etc/hostapd/hostapd.conf
macaddr_acl=1
accept_mac_file=/etc/hostapd/hostapd.accept
O parâmetro accept_mac_file define o arquivo que terá os mac-addres liberados:
# vi /etc/hostapd/hostapd.accept
e8:91:20:35:a2:c0
E para recarregar as configurações, executamos o comando:
# systemctl reload hostapd
Assim finalizamos nosso Access Point, lembrando que utilizamos o roteador da operador para receber o IP, mais é possível você configurar seu próprio serviço dhcp local.
Para mais informações acesse:
Gentoo Linux Hostapd
Arch Linux Access Point
Se una com os assinantes de nossa Newsletter, sempre que tiver postagem nova você será notificado.