El SysAdmin del 3er Mundo

todo lo que expliqué mientras nadie prestaba atención

compartir la wifi

| Comments

Cada vez que paso por 23, me cuentro mil y una red cuyo ESSID tiene el sufijo Conectify delante. Insultado por semejante derroche de windows, le comentaba a un colega, que daba tristeza no ver un linuxero ahí conectado.

El socio me dijo: -en linux no se puede compartir la wifi

PA DARLE POR LA CARA!

Dos paquetes nada más que hacen falta: iw, hostapd

La idea es:

  • crear una interfaz wifi como estacion
  • crear una interfaz wifi como AP
  • crear un interfaz bridge (puente)
  • declarar que la interfaz de salida del puente, es la estación
  • echar a andar el AP por software

¿SE ENTENDIÓ?

Si tienes el puñetero NetworkManager corriendo, este es un buen momento para pararlo.

La interfaz que usualmente vez como wlan0 es en realidad phy0. ¿Quieres verlo? Corre esto:

iw
1
iw dev wlan0 del

¿Te fijaste que wlan0 desapareció? No te preocupes, puedes volver a crearla. Así:

iw
1
iw phy phy0 interface add estacion0 type station

Como mismo hicimos una estación, podemos hacer un AP.

iw
1
iw phy phy0 interface add hotspot0 type __ap

Ahora creamos la interfaz de puente y le asignamos a wlan0 como extremo de salida.

br0
1
2
3
4
5
6
ip link add name br0 type bridge
iw dev estacion0 set 4addr on
ip link set dev estacion0 promisc on
ip link set dev estacion0 up
ip link set dev estacion0 master br0
ip link set up dev br0

En letra de molde:

  • crea un bridge llamado br0
  • dile que lleva ipv4 (requerido, no se por qué)
  • pon la interfaz en modo promiscuo
  • levanta el enlace de estaicon0
  • coloca a estacion0 como interfaz de salida del túnel
  • levanta el bridge

Ahora viene lo más importante, el AP. El fichero /etc/hostapd/hostapd.conf contendrá la configuración de nuestros AP. A mi me quedó así:

/etc/hostapd/hostapd.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# el nombre de tu wifi
ssid=Linux

# la contraseña de tu wifi
wpa_passphrase=secretisisimo

# la interfaz de red que hará de AP
interface=hostspot0

# el puente al que se acoplará
bridge=br0

# el canal, lo puede seleccionar manual
# pero un valor de 0, hará el survey.
# Mejor que el ap lo seleccione, así
# no chocas con ningún canal de etecsa en 23
# y aprovechemos ahora que podemos hacer lo
# que nos de la gana con el espectro radioeléctrico
channel=0

# no toques más nada de aquí pa abajo
auth_algs=3
driver=nl80211
hw_mode=g
logger_stdout=-1
logger_stdout_level=2
max_num_sta=5
rsn_pairwise=CCMP
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP

y arráncalo:

systemctl
1
systemctl start hostapd

Desde entonces, lo que se conecte a tu wifi con ESSID “Linux” en este caso, irá a dar a la red que tengas conectada en tu Wifi. En este caso la red de br0, cuyo otro extremo sería la wifi de etecsa.

Lo mismo puede hacer cambiando el extremo del tunel. Por ejemplo, con eth0 saldría hacia una red cableada. Una manera de meter una WiFi en una red.

Además

De esta misma forma, si tuvieras dos tarjetas wifi, pones una como AP y le pones la otra como extremo del puente.

OJO

Otra cosa, si tienes corriendo el NetworkManager no podrás echar a andar hostapd. Páralo, arranca hostapd y vuelve a hechar a andar el NetworkManager.

La técnica es la técnica y sin técnica, no hay técnica.

Si este artículo te resultó interesante, considere donar 0.003 BTC: 1LgL9cfT2StNk9gdedMJZseMnKJCEgQJdQ

Comments