Finalmente consegui configurar um ponto de acesso na minha placa WiFi usando hostapd e dnsmasq. Eu fiz nesta ordem:
1) Configure hostapd e dnsmasq:
nano /etc/hostapd/hostapd.conf
nano /etc/dnsmasq.conf
Conteúdo do hostapd.conf:
interface=wlan1mon motorista=nl80211 ssid=o2wlan69 hw_mode=g canal=6 macaddr_acl=0 ignore_broadcast_ssid=0
Conteúdo de dnsmasq.conf:
interface=wlan1mon intervalo dhcp=192.168.1.2,192.168.1.30,255.255.255.0,12h opção dhcp = 3.192.168.1.1 opção dhcp = 6.192.168.1.1 servidor=8.8.8.8 consultas de log log-dhcp endereço de escuta=127.0.0.1
2) Estas são duas das quatro linhas que não sei exatamente o que fazem:
ifconfig wlan1mon up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
3) Inicie os serviços:
dnsmasq -C /etc/dnsmasq.conf -d
hostapd /etc/hostapd/hostapd.conf
4) E aqui estão as linhas 3 e 4 que não sei exatamente o que fazem:
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE iptables --append FORWARD --in-interface wlan1mon -j ACCEPT
Eu sei que o iptables é usado para alterar o bloqueio ou redirecionar o tráfego que chega e sai do dispositivo e sei que você pode atribuir máscaras de rede e endereços IP a dispositivos de rede com ifconfig. Também sei como uma máscara de rede afeta o intervalo de IP local, mas não está claro para mim como esses comandos ajudam meu ponto de acesso a compartilhar uma conexão de Internet entre minha interface wlan1mon e eth0. Além disso, por que preciso executar o comando ifconfig e o comando route?
Responder1
ifconfig wlan1mon up 192.168.1.1 netmask 255.255.255.0
Este comando diz ao seu computador para habilitar o dispositivo de rede wlan1mon (sua interface WiFi) e atribuir a ele o endereço IP 192.168.1.1 (com a sub-rede 192.168.1.0/24), para que possa enviar/receber pacotes de rede.
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
Este comando diz ao computador para enviar todos os pacotes que possuem um destinatário na sub-rede 192.168.1.1/24 a 192.168.1.1 (não tenho certeza se este comando deve ser executado no computador que encaminha, pois as rotas são necessárias apenas para o conectando clientes, no que me diz respeito, e como você já tem um servidor DHCP configurado, essa rota deve ser adicionada automaticamente nesses clientes.)
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
Este comando instrui o computador a "mascarar" corretamente o IP dos pacotes de entrada/saída (NredeAendereçoTtradução) na cadeia POSTROUTING em eth0. Basicamente, ele atribui o endereço IP do computador a cada pacote de saída (para que computadores externos possam enviar uma resposta) e reendereça os pacotes recebidos para o host apropriado dentro da sua rede.
iptables --append FORWARD --in-interface wlan1mon -j ACCEPT
Este comando permite que os pacotes recebidos do wlan1mon sejam encaminhados em primeiro lugar. Isso significa que o computador de encaminhamento tem permissão para processar e encaminhar esses pacotes de rede (mesmo) se o destinatário for outra pessoa.