Linux na Web

Transformando o Debian em Access Point Wifi com Hostapd

Access Point Wifi Debian

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.

Por que ter um Access Point?

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;

Verificando e configurando a interface wifi

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.

Identificando a placa pelo comando lspci

Para isso, primeiro temos que identificar a placa com o comando lspci:

lspci

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

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.

Instalando o driver correto

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:

Depois, instalamos o pacote para a nossa placa:

Após finalizar a instalação podemos carregar os módulos do kernel:

Depois de carregados os módulos, a interface já será reconhecida pelo Debian:

ip a

Configurando as interfaces

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:

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

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:

Criamos um arquivo específico para a interface bridge:

Agora, reiniciamos o sistema para recarregar as configurações da interface e pronto, a parte de rede está configurada.

Instalando o hostapd

Para transformar nosso pc num Access Point usamos o servidor com o serviço hostapd, vamos instalá-lo com o comando abaixo:

Partimos agora para configuração do arquivo do hostapd, com as definições para habilitar nossa rede wifi chamada Linux na Web:

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.

Configurando opções do serviço

Antes de iniciarmos o serviço hostapd, precisamos configura algumas opções:

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.

Podemos verificar a nossa interface bridge com o comando:

Podemos ver que ela agrupa ambas as interfaces, enp2s0 e wlp4s0.

brctl show

Portanto, já podemos verificar a disponibilidade da nossa rede:

wifi Linux na Web

E fazer a conexão:

Senha wifi

Podemos também identificar pelos logs:

log do hostapd

Algumas opções de segurança

Podemos escolher algumas opções para melhorar nossa rede, impedindo a sobrecarga e deixando mais segura.

Restringindo quantidade de conexões

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:

Assim, somente 5 conexões serão possíveis, a partir da quinta nenhuma outra conexão será permitida.

Fazendo controle de acesso

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:

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:

O parâmetro deny_mac_file define o arquivo que terá os mac-addres bloqueados:

E para recarregar as configurações, executamos o comando:

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:

log de acesso negado

Agora vamos configurar para bloquear todas as tentativas de conexões, exceto se o mac-address do dispositivo estiver numa lista de dispositivos liberados:

O parâmetro accept_mac_file define o arquivo que terá os mac-addres liberados:

E para recarregar as configurações, executamos o comando:

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

 

Sobre: 
Graduado em Sistemas de Informação com mais de 15 anos de atuação na área de TI. Entusiasta de tecnologia e software livre principalmente Linux em servidores.

0 Comentários

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

%d blogueiros gostam disto: