Punto de Acceso Inalámbrico con Hostapd

De WikiSalud
Saltar a: navegación, buscar

Contenido

Resumen

Configuración de un WAP (Wireless Access Point) en Debian usando Hostapd

Introducción

Necesita crear una red inalámbrica pero no tiene un dispositivo dedicado (Ni los recursos para conseguir uno). Aunque una red ad hoc resolvió sus problemas por un momento, necesita de algo más profesional.

Por otra parte, pues estamos creando un AP con un equipo linux. Las posibilidades frente a este hecho son bastantes amplias a decir verdad.

Procedimiento

Paquetes necesarios

Los últimos dos son opcionales, sobre todo si esta investigando problemas con la configuración

apt install isc-dhcp-server hostapd iw lshw

Configuración del sistema

Antes de nada, es conveniente revisar que se hayan resueltos todos los problemas con el driver

Luego, buscamos con ip link show o iw dev el nombre de nuestra interfaz. Lo configuramos para poder usarlo en el resto de la configuración

iwl=wlxc025674d64a2

Configurando ip estática en /etc/network/interfaces.

grep -q $iwl /etc/network/interfaces || echo "
auto $iwl
iface $iwl inet static
    address 10.200.10.1/24
" >> /etc/network/interfaces

Reiniciamos la red

systemctl restart networking.service

Configuración de isc-dhcp-server

Configuramos /etc/default/isc-dhcp-server quitando la referencia IPv6 y configurando nuestra interfaz en IPv4:

sed -i -E 's/(INTERFACESv6.*)/#\1/g' /etc/default/isc-dhcp-server
sed -i -E "s/(INTERFACESv4=\")/\1$iwl/g" /etc/default/isc-dhcp-server

Luego, al fichero en /etc/dhcp/dhcpd.conf le podemos dar una configuración bastante mínima y bastante útil en la siguiente forma:

cat << CONF >/etc/dhcp/dhcpd.conf
ddns-update-style none;

option domain-name "dominio.org.sv";
option domain-name-servers 10.10.20.20;

default-lease-time 600;
max-lease-time 7200;

authoritative;

log-facility local7;

subnet 10.200.10.0 netmask 255.255.255.0 {
  range 10.200.10.10 10.200.10.20;
  option routers 10.200.10.1;
  option broadcast-address 10.200.10.255;
}

CONF

Reiniciamos el servicio.

systemctl restart isc-dhcp-server.service

Configuración de Hostapd

En /etc/default/hostapd configuramos a 'DAEMON_CONF con el fichero que vayamos a usar. Por seguir un poco la convención lo hacemos de la siguiente forma:

sed -i -E 's|#(DAEMON_CONF=")|\1/etc/hostapd/hostapd.conf|g' /etc/default/hostapd

Luego, configuramos el referido fichero de la siguiente forma:

cat << CONF > /etc/hostapd/hostapd.conf
interface=$iwl
ssid=SERVICIOS_MINSAL
country_code=SV
hw_mode=g

# 0 por defecto, con lo cual el buscaría el mejor canal disponible, pero hay drivers que no soportan dicha búsqueda
channel=1 

# La idea será usar únicamente 802.11b/g/n with WPA2-PSK/WPA2-PSK-256 y CCMP
wpa=2
wpa_passphrase=P4ssw0rd
wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256
wpa_pairwise=CCMP
rsn_pairwise=CCMP

# Activamos 80211n, es decir, la n que se agrega a g en g+n. Resulta que probé, y sí, parece haber una mejora en throughput, aunque por otro lado la señal parece disminuir cuando se encuentra otras en el ambiente
ieee80211n=1
wmm_enabled=1

logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2

ctrl_interface=/var/run/hostapd

CONF

Reiniciamos el servicio

systemctl unmask hostapd.service
systemctl restart hostapd.service

Esta podría considerarse una configuración mínima bastante funcional. Sin embargo, hay un inmenso e interesante abanico de opciones disponibles. Un muestra de fichero de configuración puede leerse en

zcat /usr/share/doc/hostapd/examples/hostapd.conf.gz | less

La forma más sencilla de verificar que todo funciona es ejecutando en el servidor AP:

iw dev
phy#0
        Interface wlp2s0
                ifindex 3
                wdev 0x1
                addr c0:25:67:39:24:5a
                ssid SERVICIOS_MINSAL
                type AP
                channel 1 (2412 MHz), width: 20 MHz, center1: 2412 MHz

Claro, la prueba más contundente es unir equipos. Es tan sencillo como se haría de cualquier equipo: Acabamos de configurar un AP totalmente funcional.

Suele haber un problema al reiniciar el servicio con una configuración previa. La solución más sencilla es la de bajar la interfaz antes de reiniciar el servicio. El servicio no debería tardar más de 10 segundos para entrar en funcionamiento.

ip link set down dev wlp2s0
systemctl restart hostapd.service

Concediendo acceso a la red

Para que los usuarios de la red inalámbrica puedan acceder a la red tomando al equipo con hostapd como gateway, basta con configurar de la siguiente forma:

sed -i -E 's/#(net.ipv4.ip_forward.*)/\1/g' /etc/sysctl.conf
sysctl -p
iptables -t nat -A POSTROUTING -s 10.200.10.0/24 -o ens3 -j MASQUERADE

Si se quiere hacer permanente, debe instalarse el paquete iptables-persistent y luego guardar las reglas

apt install iptables-persistent
iptables-save > /etc/iptables/rules.v4

TODO

  • La opción channel. Estoy por revisar documentación: La ventaja es que reduce el tiempo de puesta en marcha de la interfaz considerablemente, ya que por defecto, hostapd intenta buscar el mejor canal disponible frente a otras redes en su misma área.
  • auth_algs esta ausente y no entiendo bien su valor por defecto
  • Hasta dónde parezco entender las sugerencias de la documentación, es posible configurar roamming.
  • Radius me hace sospechar que OTP es posible de alguna forma.

Fuentes

Herramientas personales
Espacios de nombres

Variantes
Acciones
Navegación
Herramientas