Linux na Web

Transformando o Debian em Access Point Wifi com Hostapd

Tempo de leitura: 6 minutos

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 InformacŐßaŐÉo com mais de 15 anos de atuacŐßaŐÉo na aŐĀ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: