Usar Raspberry PI Zero como punto de acceso via Windows 10

Fecha publicación
Dificultad
Avanzado
#
6
3 more properties
Publicado
tags
raspberry, raspberry pi, raspberry pi zero, rpi zero, windows 10, win10, windows10, wifi, access point, punto de acceso, wireless


Introducción

Windows 10 nos permite usar nuestra interface WiFi como punto de acceso y automáticamente configura todo lo necesario para que de forma sencilla podamos compartir Internet. Pero prácticamente no permite personalizar ninguna de sus configuraciones y además nos limita a un máximo de 8 dispositivos conectados de forma concurrente.
La Raspberry PI W es un equipo que cuesta alrededor de 10€ y que además es muy pequeño y pesa poquísimo. Es decir que lo podemos llevar encima.
Al disponer de un puerto micro-USB OTG (On-The-Go) podemos hacer que este se comporte como una tarjeta de red USB y al conectarlo a nuestra máquina Windows 10 esta lo va a percibir como una interface más del sistema.
Además dispone de conectividad WiFi y podemos configurarla para que se comporte como un punto de acceso para que enrute el tráfico a través de la máquina Windows que tiene conectada a Internet.
El escenario quedaría algo así:

Paquetes a instalar

YAML
apt update
apt install hostapd iptables-persistent tcpdump tcpflow mtr 

Ficheros de configuración usados

config.txt

Añadir al final del fichero:
YAML
dtoverlay=dwc2

cmdline.txt

Añadir despues de rootwait:
YAML
modules-load=dwc2,g_ether
Todo junto quedará así:
YAML
console=serial0,115200 console=tty1 root=PARTUUID=99da7761-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether

ssh

fichero vacio en la partición vFAT, o dentro de /boot depende de si estamos accediendo vía Windows o desde una shell en Rπ0.

/etc/network/interfaces

YAML
allow-hotplug wlan0
iface wlan0 inet static
  address 192.168.4.1
  netmask 255.255.255.0
  network 192.168.4.0
  gateway 192.168.4.1

allow-hotplug usb0
iface usb0 inet static
  address 192.168.7.2
  netmask 255.255.255.0
  network 192.168.7.0
  broadcast 192.168.7.255
  gateway 192.168.7.1
	dns-nameserver 1.1.1.1
  dns-nameserver 8.8.8.8

/etc/dnsmasq.conf

YAML
interface=wlan0
dhcp-range=192.168.4.100,192.168.4.120,255.255.255.0,24h
domain=wlan
address=/gw.wlan/192.168.4.1
no-resolv
server=1.1.1.1
server=8.8.8.8

/etc/hostapd/hostapd.conf

YAML
country_code=ES
interface=wlan0
ssid=YOUR_SSID
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=YOUR_PASSWORD
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

/etc/sysctl.conf

Añadir a la última linea del fichero de configuración
YAML
net.ipv4.ip_forward=1

/etc/iptables/rules.v4

YAML
# Generated by xtables-save v1.8.2 on Thu Dec 31 18:05:35 2020
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o usb0 -j MASQUERADE
COMMIT
# Completed on Thu Dec 31 18:05:35 2020
# Generated by xtables-save v1.8.2 on Thu Dec 31 18:05:35 2020
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Thu Dec 31 18:05:35 2020

Referencias

https://learn.adafruit.com/turning-your-raspberry-pi-zero-into-a-usb-gadget/ethernet-gadget
Raspberry Pi Zero W Access Point (ap) setup
These are my own personal notes on how i setup a Pi Zero W as an access points it is a blatant copy of this: https://gist.github.com/tcg/0c1d32770fcf6a0acf448b7358c5d059 but is just missing a couple of things from: http://imti.co/post/145442415333/raspberry-pi-3-wifi-station-ap and like tcg, this is not intended as a guide but notes as i will invariably have to rebuild this sometime and i have broken biscuits for brains.
Raspberry Pi Zero USB/Ethernet Gadget Tutorial
The Raspberry Pi Zero's small size isn't the only thing that makes it an awesome single board computer. Thanks to its ability to be recognized as a USB/Ethernet gadget, you can connect to your Pi from another computer via USB. Power is provided over USB, and your computer's internet connection is shared over USB too.