13094
Comment:
|
13098
|
Deletions are marked like this. | Additions are marked like this. |
Line 35: | Line 35: |
[[https://wiki.debian.org/NetworkManager|NetworkManager]] es una utilidad ''intenta hacer la configuración de redes y su puesta en servicio menos penosa''. La realidad es que, como toda configuración "automágica", deja mucho que desear, tomando desiciones automáticas que no siempre convienen. | [[https://wiki.debian.org/NetworkManager|NetworkManager]] es una utilidad que ''intenta hacer la configuración de redes y su puesta en servicio menos penosa''. La realidad es que, como toda configuración "automágica", deja mucho que desear, tomando desiciones automáticas que no siempre convienen. |
Compartir una red física por WiFi en sistemas con "systemd"
J.A.P. javier.debian.bb.ar@gmail.com GNU/Linux Registered User # 389414
Abstract
Este documento describe cómo realizar un puente entre una red física conectado por cable a una red inalámbrica (WiFi), sin necesidad de configurar un enrutador.
Arquitectura: Plataforma Debian GNU/Linux amd64 buster stable
Fecha: 10/FEB/2020
Copyright (C) Javier A. Piendibene, 2020. This document are free software; you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. For more details, on Debian GNU/Linux systems, see the file /usr/doc/copyright/GPL for the full license.
1. Introducción
Es probable que usted tenga un dispositivo inalámbrico, como ser un teléfono celular, que desee conectar a una red, ya sea la de su empresa o Internet, pero no posea una conexión WiFi inalámbrica (wireless), pero sí posee un ordenador que accede a esta red mediante una placa con cable (wired).
También es posible que alguna vez haya leído el tutorial https://wiki.debian.org/es/Compartir_red_fisica_con_WiFi, el cual, luego de la implementación de systemd, quedó obsoleto.
En lugar de instalar un enrutador con capacidad WiFi, puede realizar un puente entre la red cableada y una placa WiFi, ya sea esta última instalada dentro de la computadora (PCI) o extraíble (USB).
2. Preparando los programas necesarios
Para trabajar sin inconvenientes, lea primero este artículo sobre HostAP.
Eliminando cosas que pueden generar problemas:
# apt purge network-manager*
NetworkManager es una utilidad que intenta hacer la configuración de redes y su puesta en servicio menos penosa. La realidad es que, como toda configuración "automágica", deja mucho que desear, tomando desiciones automáticas que no siempre convienen.
Por lo que también conviene editar el archivo /etc/apt/preferences y agregar las líneas
Package: network-manager* Pin: release * Pin-Priority: -1
para evitar que Network-Manager se autoinstale.
Para instalar los programas necesarios, ejecute como root la siguiente instrucción:
# apt install net-tools iw wireless-tools hostapd bridge-utils rfkill
3. Configurando la red
Lo haremos en forma manual.
3.1. Activar la placa inalámbrica
Puede ser que no tenga problemas, pero a veces las cosas se complican.
Verificar que el sitema reconozca sus placas de red.
Para placas PCI:
# lspci (...) 01:00.0 Ethernet controller: Qualcomm Atheros AR8152 v2.0 Fast Ethernet (rev c1) 03:02.0 Network controller: Ralink corp. RT2561/RT61 802.11g PCI
Para placas USB:
# lsusb (...) Bus 001 Device 005: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
Asegúrese de tener instalados los controladores ("firmware") correspondientes. Los más comunes son:
Qualcomm/Atheros --> # apt install firmware-atheros
MediaTek/Ralink --> # apt install firmware-ralink
Realtek --> # apt install firmware-realtek
Identifique sus placas de red mediante
# ifconfig -a lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 (...) enp1s0: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC> mtu 1500 (...) wlan0: flags=-28669<UP,BROADCAST,MULTICAST,DYNAMIC> mtu 1500 (...) wlp3s2: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC> mtu 1500 (...)
Como se ve, figuran cuatro placas:
lo: Es una placa virtual, llamadda loopback, interna del sistema; no la vamos a usar.
enp1s0: Placa de red.
wlan0: Placa de red.
wlp3s2: Placa de red.
Las que vamos a usar son las dos últimas. Para ello, veremos cuál es cableada y cuál inalámbrica.
# iwconfig lo no wireless extensions. enp1s0 no wireless extensions. wlp3s2 IEEE 802.11 Mode:Master Tx-Power=20 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:off wlan0 unassociated ESSID:"" Nickname:"<WIFI@REALTEK>" Mode:Managed Frequency=2.412 GHz Access Point: Not-Associated Sensitivity:0/0 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Con esto vemos que enp1s0 es cableada, wlp3s2 y wlan0 son inalámbricas. Vamos a usar la primera en este ejemplo.
Ejecutamos la instrucción iwlist wlp3s2 scan, y veremos qué sucede.
Puede haber un fallo:
# iwlist wlp3s2 scan wlp3s2 Interface doesn't support scanning : Network is down
Esto puede significar que la placa esté bloqueada:
# rfkill list all 0: phy0: Wireless LAN Soft blocked: yes Hard blocked: no
y vemos que efectivamente, lo está desde el sistema ("Soft blocked"). Puede haber placas que se bloqueen físicamente ("Hard blocked") con un interruptor ("switch"); si este último es el caso, actívelo ("Off --> On").
Desbloqueamos y verificamos nuevamente:
# rfkill unblock all # rfkill list all 0: phy0: Wireless LAN Soft blocked: no Hard blocked: no
RFkill es un subsistema en el kernel de Linux que proporciona una interfaz a través de la cual las interfaces de radiofrecuenca (placas WiFi) se pueden solicitar, activar o desactivar. El sistema por defecto y seguridad, bloquea las placas de red inalámbricas.
Verificamos si la placa ahora está en funcionamiento:
# iwlist wlp3s2 scan wlp3s2 Scan completed : Cell 01 - Address: 90:F6:52:D7:17:A4 Channel:1 Frequency:2.412 GHz (Channel 1) Quality=36/70 Signal level=-74 dBm Encryption key:on ESSID:"USUARIO-PC_Network" (...) Authentication Suites (1) : PSK IE: Unknown: DD180050F2020101880003A4000027A4000042435E0062322F00
Esto lista todas las redes WiFi al alcance de nuestra placa.
3.2. Activar el punto de acceso (AP)
Lea el archivo /usr/share/doc/hostapd/README.Debian para la documentación más actualizada.
Cree el archivo de configuración /etc/hostapd/hostapd.conf según este ejemplo.
interface=wlp3s2 bridge=br0 driver=nl80211 auth_algs=1 ignore_broadcast_ssid=0 logger_syslog=-1 logger_syslog_level=0 hw_mode=g ssid=MiWiFi channel=11 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=MiClave1234 wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP
* Donde dice ?MiWiFi coloque el nombre que quiera darle a su red.
* Donde dice ?MiClave1234 coloque una clave de por lo menos ocho caracteres.
Para mayor información, lea el archivo /usr/share/doc/hostapd/examples/hostapd.conf.
Por defecto y seguridad, el servicio hostapd está enmascarado, razón por la cual el mismo no se inicia bajo systemd.
# systemctl status hostapd ● hostapd.service Loaded: masked (Reason: Unit hostapd.service is masked.) Active: failed (Result: exit-code) since Mon 2020-02-17 10:13:11 -03; 9s ago feb 17 10:13:11 DESP2 systemd[1]: hostapd.service: Service RestartSec=100ms expired, scheduling restart. feb 17 10:13:11 DESP2 systemd[1]: hostapd.service: Failed to schedule restart job: Unit hostapd.service is masked. feb 17 10:13:11 DESP2 systemd[1]: hostapd.service: Failed with result 'exit-code'.
Procedemos a desenmascararlo:
# systemctl unmask hostapd Removed /etc/systemd/system/hostapd.service.
3.3. Configurar las interfaces
Asumo que su computadora está conectada a Internet por la enp1s0 mientras está realizando esto. Por esta razón, tome nota de su enrutamiento acutal
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 172.16.150.1 0.0.0.0 UG 0 0 0 enp1s0 dns.google 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0 10.3.0.201 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0 10.100.233.205 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0 172.16.150.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0 172.16.150.1 0.0.0.0 255.255.255.255 UH 0 0 0 enp1s0 resolver2.opend 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0 resolver1.opend 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0
En mi caso, mi ISP es una red corporativa, por lo que hay varios segmentos habilitados en la red.
Edite el archivo /etc/network/interfaces para tener acceso a una red de Internet y que quede similar al siguiente:
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* ####################################################################### # The loopback network interface auto lo iface lo inet loopback ####################################################################### # Preparar el entorno pre-up rfkill unblock all pre-up ip addr flush dev wlp3s2 ####################################################################### # WiFi Access Point auto br0 iface br0 inet dhcp bridge-ports enp1s0 wlp3s2 ####################################################################### # Internet auto enp1s0 allow-hotplug enp1s0 iface enp1s0 inet dhcp ####################################################################### # Reiniciar sistemas post-up systemctl restart hostapd post-up route del -net 0.0.0.0 gw 0.0.0.0 dev enp1s0 ### Ver NOTAS IMPORTANTES ###
3.4. Reiniciando la red
Ejecute el siguiente comando:
# systemctl restart networking.service
4. NOTAS IMPORTANTES
El orden de las interfaces, a veces suele alterar el funcionamiento del manjo de redes; es conveniente definir el puente antes que las demás interfaces.
Preste atención a la carpeta /etc/network/interfaces.d/, puede tener alguna placa de red configurada allí en forma particular; lo normal es que esté vacía.
En algunas redes, dependiendo de cómo la haya configurado su ISP, puede haber problemas de enrutamiento. Para ello, nuevamente listamos la tabla de enrutamiento.
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 172.16.150.1 0.0.0.0 UG 0 0 0 enp1s0 default 0.0.0.0 0.0.0.0 UG 0 0 0 enp1s0 dns.google 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0 10.3.0.201 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0 10.100.233.205 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0 172.16.150.0 0.0.0.0 255.255.255.0 U 0 0 0 enp1s0 172.16.150.0 0.0.0.0 255.255.255.0 U 0 0 0 br0 172.16.150.1 0.0.0.0 255.255.255.255 UH 0 0 0 enp1s0 resolver2.opend 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0 resolver1.opend 172.16.150.1 255.255.255.255 UGH 0 0 0 enp1s0
Como puede observarse, se creó una nueva ruta por defecto ("default"). SÓLO PUEDE HABER UNA RUTA "DEFAULT". Por esa razón, agregué al final la línea post-up route del -net 0.0.0.0 gw 0.0.0.0 dev enp1s0.
Si usted no tiene ese problema, no la agregue.
Con estos pasos, usted debería tener una red WiFi funcionando disponible para la mayoría de los dispositivos inalámbricos.
5. Acerca de las placas de red
No todas las placas red inalámbricas soportan la posibilidad de volverse un punto de acceso WiFi (AP) en forma nativa; es decir, no pueden ponerse en modo "Master". (Ver man iwconfig).
Pero el controlador (driver) nl80211 de hostap soluciona este inconveniente en la mayoría de los casos.
tags: compartir share wireless wired hostapd wifi bridge systemd