Meu roteador quebrou, então estou tentando configurar algo temporariamente para compartilhar conexão de internet do meu PC principal (internet vem do modem conectado diretamente à placa ethernet) para outros dispositivos através de uma rede ad hoc, para isso eu tenho um adaptador wifi que usa o driver zd1211rw (eu também tenho o alfa rtl8187, mas esse adaptador não está funcionando no ubuntu 12.04).
O problema que estou tendo é que não consigo me conectar ao ponto de acesso Wi-Fi que eu criei, ele apenas fica "adquirindo endereço de rede" e nunca termina de conectar-se.
Meu computador principal é o Ubuntu 12.04, é isso que estou fazendo. Primeiro eu coloco o adaptador wifi no modo monitor com:
airmon-ng start wlan2
Isso cria uma interface mon0, então eu uso:
airbase-ng -e MyNetName -c 11 -v mon0
A partir daqui, já posso ver a rede MyNetName usando meu laptop (com o Windows), mas se eu tentar conectá-lo, fica em "adquirir endereço de rede". Os tutoriais que eu segui continuam com estes comandos:
ifconfig at0 up
ifconfig at0 192.168.1.254 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.254
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
echo > '/var/lib/dhcp/dhcpd.leases'
Então eu inicio o servidor dhcp com
dhcpd -d -f -cf /etc/dhcp/dhcpd.conf at0
O arquivo dhcpd.conf tem esta aparência:
ddns-update-style interim; <- also tried ad-hoc instead of interim
default-lease-time 600;
max-lease-time 7200;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 198.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 8.8.8.8;
range 192.168.1.1 192.168.1.253;
}
A saída é semelhante a:
Internet Systems Consortium DHCP Server 4.1-ESV-R4
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
Wrote 0 leases to leases file.
Listening on LPF/at0/00:02:72:69:28:c8/192.168.2.128/25
Sending on LPF/at0/00:02:72:69:28:c8/192.168.2.128/25
Sending on Socket/fallback/fallback-net
Can't create PID file /var/run/dhcpd.pid: Permission denied.
O último comando:
echo "1" > /proc/sys/net/ipv4/ip_forward
A saída do comando airbase-ng é assim:
11:34:03 Created tap interface at0
11:34:03 Trying to set MTU on at0 to 1500
11:34:03 Trying to set MTU on mon0 to 1800
11:34:03 Access Point with BSSID 00:02:72:69:28:C8 started.
11:34:10 Client 70:F3:95:B3:27:76 associated (unencrypted) to ESSID: "MyNetName"
11:34:13 Client 70:F3:95:B3:27:76 reassociated (unencrypted) to ESSID: "MyNetName"
11:34:17 Client 70:F3:95:B3:27:76 reassociated (unencrypted) to ESSID: "MyNetName"
11:34:21 Client 70:F3:95:B3:27:76 reassociated (unencrypted) to ESSID: "MyNetName"
Então, meu problema é que não consigo obter um ip interno no laptop que está tentando se conectar, a coisa do gerenciador de janelas fica no "endereço de rede de aquisição", a base aérea reage mostrando mais dessas mensagens reassociadas enquanto o laptop tenta conectar. Outro problema é que depois de executar iptables --flush
a internet no PC principal pára de funcionar, mas eu quero lidar com isso assim que eu puder conectar-me completamente ao MyNetName.
Alguém tem uma ideia do que estou fazendo de errado?