lucasdona
(usa Linux Mint)
Enviado em 14/04/2014 - 10:42h
Configuração melhor que o modo Ad-hoc, pelo que vi, dispositivos novos não suportam mais o tipo ad-hoc. E realmente é o que parecem, smartphones novos nem acham a rede, os antigos conectam, mas vamos ao que interessa, configuração show de bola, seu pc vai parecer realmente um roteador.
Configuração realizada no Ubuntu 13.10 (minimal, versão sem ambiente gráfico), compartilhando uma conexão 3g através do wifi. Configuração e funcionamento feito todo em modo texto, não precisa de modo gráfico em momento algum. Recomendo ler todo o tutorial antes de iniciá-lo. Acredito que funciona perfeitamente em outras distribuições, mas alguns caminhos de arquivos de configuração pode sem diferentes. Vamos lá.
Programas necessários:
apt-get install dhcp3-server
apt-get install hostapd
apt-get install wireless-tools
apt-get install wpasupplicant
apt-get install wvdial (diagador 3g modo texto. Só pra quem for compartilhar a conexao 3g)
OBS: não entrarei em detalhes sobre o wvdial, mas é bem simples, abaixo segue um exemplo de uma configuração da operadora Vivo. Local do arquivo /etc/wvdial.conf
[Dialer vivo]
Modem = /dev/ttyUSB2 #Local onde o modem é montado
Baud = 115200
DialCommand = ATDT
Check Def Route = on
FlowControl = Hardware(CRTSCTS)
Username = vivo
Password = vivo
Phone = *99#
Stupid mode = 1
Auto Reconnect = off
Auto DNS = off
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
Init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"
ISDN = 0
Modem Type = Analog Modem
Editar o arquivo "/etc/hostapd/hostapd.conf" com o conteúdo abaixo (se não existir, criar o arquivo):
interface=wlan0
driver=nl80211
ssid=NomeDaRede
hw_mode=g
channel=11
wpa=1
wpa_passphrase=SenhaDaRede #testado com uma senha de 10 números
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_ptk_rekey=600
Editar o arquivo "/etc/dhcp3/dhcpd.conf" com o conteúdo abaixo (nessa versão do Ubuntu editei o arquivo "/etc/dhcp/dhcpd.conf"):
subnet 10.10.0.0 netmask 255.255.255.0 {
range 10.10.0.25 10.10.0.50;
option domain-name-servers 8.8.4.4, 208.67.222.222;
option routers 10.10.0.1;
}
Editar o arquivo "/etc/default/dhcp3-server" (nesse Ubuntu é /etc/default/isc-dhcp-server) mudando somente a linha abaixo, mais nada. Deixando exatamente assim:
INTERFACES="wlan0"
Adicionar ao final do arquivo "/etc/network/interfaces" o conteúdo abaixo:
iface wlan0 inet static
address 10.10.0.1
netmask 255.255.255.0
Editar as linhas abaixo do arquivo /etc/default/hostapd (se não existir criar nessa ordem):
RUN_DAEMON="yes"
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DAEMON_OPTS="-dd"
Toda vez que iniciar o sistema executar os comandos abaixo depois de estabelecida conexão 3g. Dependendo da distribuição usada os comandos podem mudar. Segue abaixo script para iniciar com o sistema. Adicionar o script criado em "/etc/rc.local" antes da linha "exit 0". Não esqueça de colocar o "&" ao final da linha no rc.local.
#!/bin/bash
ifconfig wlan0 down
service isc-dhcp-server stop #ou service dhcp3-server stop (depende da distribuição usada)
service hostapd stop
ifconfig wlan0 up
ifconfig wlan0 10.10.0.1
service isc-dhcp-server start #ou service dhcp3-server start (depende da distribuição usada
service hostapd start
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
iptables -A FORWARD -i ppp0 -o wlan0 -j ACCEPT -m state --state RELATED,ESTABLISHED
iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT
echo "1" > /proc/sys/net/ipv4/ip_forward
OBS: não linhas onde tem "ppp0" é a conexão que será compartilhada, não testei com outras interfaces, mas acredito que é só mudar essa linha, alterando pra outras interfaces como "eth0" que irá funcionar 100%.
Script adicional para gerenciar a conexão 3g, bem básico. Não é necessário para o compartilhamento da conexão. Pode ser adicionado também ao "/etc/rc.local", não esquecer de colocar o "&" ao final do comando.
#!/bin/bash
verificar_ppp0() {
if [ $(ifconfig | grep ppp0 | wc -l) -gt 0 ]; then
return 0
else
return 1
fi
}
##inicio do programa
op="vivo"
while true; do
if ! verificar_ppp0; then
killall -9 wvdial
killall -9 pppd
sleep 1
wvdial $op &
sleep 10
else
echo "coenctado"
sleep 30
fi
done
Fonte de pesquisa:
http://exain.wordpress.com/2011/03/31/making-a-wifi-hotspot-access-point-using-linux-wifi-lan-cardus...
Estou testando essa configuração a quase uma semana, pc já ta ligado sem reiniciar a uns 3 dias e funcionando perfeitamente.
Acho que é isso. Espero ter ajudado.
Abraços.