PDA

View Full Version : trasformare linux in access point


emipao
01-03-2009, 18:19
Ciao a tutti.
In casa ho un normale router wireless ed ho letto che è possibile trasformare una card atheros in un access point in modo da distribuire la connessione della scheda ethernet del portatile in una wifi, permettendo così altri pc in casa di connettersi da altre stanze.

ovviamente so che potrei connettermi direttamente all'access point con gli altri pc, ma voglio comunque provare in questa maniera.

in pratica quelo che voglio fare è:

-connettermi normalmente con la mia wlan0 al router, ok fin qua ci siamo (sarebbe grave)

-impostare l'altra scheda del portatile (ath0 atheros) come access point

-eseguire sul portatile un server dhcp in modo che gli altri pc prendano automaticamente gli ip

-navigare con gli altri pc che a questo punto useranno come accesspoint NON il router ma il mio portatile.

Basi:
il mio router ha questo ip 192.168.0.2
il mio portatile si connette tramite wlan0 al router e prende automaticamente l'ip

cosa ho fatto:

Ho installato dhcp ed ho settato dhcpd.conf così:

dns-update-style ad-hoc;
subnet 192.168.0.0 netmask 255.255.255.0 {
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.2;
option domain-name-servers 212.216.112.112;
option domain-name "domain.com";
range dynamic-bootp 192.168.0.3 192.168.0.50;
default-lease-time 21600;
max-lease-time 43200;
}

dove appunto option routers ha l'indirizzo del mio router e dns quello del dns di telecom

poi ho fatto partire uno script che mi trasforma la scheda in access point sul canale 11 con nome prova e ip 192.168.0.11:

#!/bin/sh
wlanconfig ath0 destroy
wlanconfig ath0 create wlandev wifi0 wlanmode master
iwconfig ath0 essid prova channel 11
ifconfig ath0 192.168.0.11 netmask 255.255.255.0
iptables -P FORWARD ACCEPT
iptables -t nat -A POSTROUTING -o ath0 -j MASQUERADE
dhcpd
route add -net default gw 192.168.0.2 ath0
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
iptables -F -t nat
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT \
--to 192.168.0.2
iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT \
--to 192.168.0.2
echo "Done."

quello che succede è questo:

gli altri pc (con windows) prendono perfettamente i settaggi infatti controllando i dettagli delle loro connessioni vedo:

ip: 192.168.0.12
subnet: 255.255.255.0
gateway: 192.168.0.2
server dhcp: 192.168.0.11 (il pc con linux)
server dns: 212.216.112.112

ma per qualche cavolo di motivo non navigo, sapete essermi di aiuto?

sacarde
02-03-2009, 10:42
il ping risponde?

il ping a un sito?



p.s.
se ho capito bene:


|pcwindows| ---> |pclinux,serverdhcp| -------> |router-internet|-----> internet

gurutech
02-03-2009, 11:46
iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT \
--to 192.168.0.2
iptables -t nat -A OUTPUT -p udp --dport 53 -j DNAT \
--to 192.168.0.2
echo "Done."


con questa regola stai dicendo che tutte le richieste alla porta UDP 53 (DNS) devono essere redirette a 192.168.0.2
Chi e' 192.168.0.2? Hai un server DNS montato li' sopra?
prova da un client a fare
ping 151.1.1.1
che e' un ip pubblico, vedi se ti risponde, allora hai sicuramente un problema di risoluzione dei nomi. Se passi ai client i DNS telecozz quella regola la puoi togliere.

emipao
03-03-2009, 00:05
no, 192.168.0.2 è il mio router zyxel (tutti hanno.1 io ho .2)... da li si va su internet, non dovrebbe che io sappia avere dentro di se un server dns

malocchio
03-03-2009, 00:16
Prova a fare il ping del portatile, il ping di un altro pc in rete, il ping del router, qualche nslookup, ping ip pubblici.

emipao
03-03-2009, 21:09
ho appena effettuato i test:

il pc con windows:

pinga il pc linux con access point
pinga il router 192.168.0.2
pinga google tramite indirizzo ip
NON pinga www.google.com

sembra essere un problema di dns, però premetto che ho provato con un'altra scheda di rete a fare da access point e con i medesimi settaggi navigo...

sacarde
04-03-2009, 07:48
nel resolv.conf

212.216.112.112

e' al primo posto?

emipao
04-03-2009, 08:35
si, al primo

sacarde
04-03-2009, 08:54
se ho capito


e' il pc windows che non pinga www.google.it

?

e uno linux?


p.s.
e con un'altra sk di rete va tutto ?!?!

emipao
04-03-2009, 10:11
vedo di chiarire:

sul portatile con linux ho creato un access point utilizzando la scheda wlan1.

sul pc con windows non riesco a pingare google ma pingo il suo ip

se sul portatile linux creo l'ap con la scheda ath0 invece sul pc windows pingo www...

ps: sul portatile ho 3 schede wifi: wlan0 (connessa a internet tramite il router) ath0 e wlan1 che uso per fare access point.

sacarde
04-03-2009, 10:32
pensi che sia un problema di sistema?

p.s.
potresti provare a far partire il pc-windows con un livecd linux

emipao
04-03-2009, 11:12
a questo punto credo sia un problema di driver della scheda di rete.

ho provato a connettemi con il cellulare e stesso discorso, se faccio access point con ath0 navigo, con wlan1 no.

gurutech
04-03-2009, 13:29
a questo punto credo sia un problema di driver della scheda di rete.

ho provato a connettemi con il cellulare e stesso discorso, se faccio access point con ath0 navigo, con wlan1 no.

hai provato a rimuovere le regole di iptables che ti avevo indicato?

emipao
04-03-2009, 17:10
ciao, si scusa, avevo provato ma sensa successo.
nella console dove ho lanciato l'ap mi dice:

Got broadcast probe request from00:1C:9A:2D:F6:A6

18:04:55 Got directed probe request from 00:1C:9A:2D:F6:A6 - "Wifi100"

18:04:55 Got an auth request from 00:1C:9A:2D:F6:A6 (open system)
18:04:55 Client 00:1C:9A:2D:F6:A6 associated (unencrypted) to ESSID: "Wifi100"

e continua ad ultranza con Got broadcast probe request from 00:1C:9A:2D:F6:A6