Raspberry Pi – WiFi Router Access-Point

Raspberry Pi – WiFi Router Access-Point

Raspberry Pi - WiFi Router Access-Point

Știai că poți folosi un Raspberry Pi pe post de router wireless? Astăzi îți voi arăta cum poți avea un router wireless cu ajutorul unui Raspberry Pi. Poți folosi orice Raspberry Pi ce are un port ethernet (RJ45). Dacă ai la îndemână o versiune ce are integrat și WiFi, va fi simplu, dacă nu, va trebui să folosești un adaptor wireless conectat la un port USB. Poți folosi chiar și un Raspberry Pi Zero W dacă îi atașezi o placă de rețea pe portul mini USB.

 Eu am folosit un Raspberry Pi model 3 B+, dar am testat și cu o versiune ce nu are modul wireless.

Să trecem la treabă!

Pentru început…

Pentru a crea un wireless access point cu ajutorul unui RPi avem nevoie de următoarele:

          Raspberry Pi cu sistemul de operare Raspbian deja instalat. Dacă nu știi cum poți instala Raspbian poți să citești în articolul Instalare Raspbian – 7Hub cum poți face asta;

          opțional, vei avea nevoie și de periferice (mouse, tastatură și monitor), dar acestea nu sunt necesare dacă vei crea un singur fișier cu numele ssh pe cardul micro SD după ce ai instalat Raspbian. Mai multe detalii despre configurarea headless a unui Raspberry Pi poți găsi în articolul Headless Raspberry Pi – 7Hub;

          foarte important, înainte de a instala orice aplicație pe Linux, în cazul de față pe Raspbian, trebuie sa facem o verificare a update-urilor. Întâi voi actualiza listele de update-uri prin comanda

sudo apt update 

după care instalez update-urile prin comanda

sudo apt upgrade -y 

Am folosit -y pentru a automatiza instalarea update-urilor;

  • dacă Raspberry pe care îl ai nu are o placă de rețea wireless, va trebui să conectezi una pe portul USB, așa cum precizam mai sus;
  • un cablu ethernet prin care vei conecta Raspberry la rețeaua principală;
  • un utilizator cu drepturi de administrare. Acesta va fi automat creat dacă ai urmat pașii de instalare a Raspbian, așa că nu este cazul să faci ceva special.

Cum funcționează?

Ideea de funcționare este destul de simplă. Să presupunem că avem o conexiune fizică la internet  sau la rețeaua principală prin cablu ethernet. Ce ne facem dacă vrem să avem acces la internet sau la rețea și cu dispozitive mobile? Nu ne putem conecta prin cablu la rețea, așa că vom transforma conexiunea fizică prin cablu într-o conexiune WiFi (wireless). Deci vom folosi portul ethernet (RJ45) al RPi-ului pentru a ne conecta la rețeaua principală și, implicit, la internet prin aceasta și placa (adaptorul) WiFi pentru a ne conecta la RPi cu dispozitivele mobile. Apoi, cu ajutorul unor aplicații pe care vă voi arăta cum să le instalați și să le configurați, vom avea acces la rețeaua principală cu orice dispozitiv mobil.

Instalare aplicații acces-point

Una dintre aplicațiile pe care le voi instala este hostapd. Aplicația se instalează prin rularea comenzii:

sudo apt install hostapd 

Voi folosi hostapd ca să activez access-point-ul la fiecare pornire a RPi-ului. Așa că trebuie să spun sistemului să marcheze hostapd pentru pornire automată, după care activez serviciul, iată cum:

sudo systemctl unmask hostapd
sudo systemctl enable hostapd
 

Cred că se observă că, pentru rularea fiecărei comenzi, folosesc sudo în față, ceea ce spune sistemului să ruleze comanda cu drepturi de administrator. Aș putea să folosesc comanda sudo su, care îmi va acorda drept de administrator la rularea următoarelor comenzi, dar nu este metoda pe care o recomand.

Să revenim la instalare…

Pentru a administra clienții wireless ce se vor conecta la access point-ul creat, trebuie să folosim serviciile de DHCP și DNS. Acestea sunt controlate de aplicația dnsmasq, ce trebuie instalată.

sudo apt install dnsmasq 

La final avem nevoie de o aplicație care va salva regulile firewall, pe care apoi le accesează la fiecare repornire a RPi-ului. Aplicația netfilter-persistent va avea nevoie și de un plugin, acesta este iptables-persistent.

sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent 

Și cu aceasta am încheiat partea cu instalarea aplicațiilor.

Configurarea router-ului

RPi-ul poate fi folosit  în două moduri. Poate crea o rețea standalone pentru clienții wireless conectați, dar poate face legătura și cu rețeaua principală prin care clienții wireless au acces la internet sau la alte dispozitive conectate în rețeaua principală.

Configurarea interfeței WiFi

Raspberry Pi va folosi un server (serviciu) DHCP pentru clienții conectați wireless ce necesită configurarea unei adrese IP statice pentru interfața WiFi (wlan0).

În Linux, plăcile de rețea au denumiri specifice. Pentru conexiunile prin cablu ethernet plăcile au nume cu eth, iar pentru conexiunile WiFi sunt folosite denumiri cu wlan. Cifra ce urmează după eth sau wlan arată numărul plăcii. De exemplu, dacă avem o placă eth1 sau wlan1 înseamnă că avem cel puțin 2 plăci ethernet sau WiFi. 0 (zero) întotdeauna este prima placă.

După cum spuneam, RPi-ul va funcționa ca un router între rețeaua wireless și rețeaua principală. Având în vedere acest lucru, voi configura adresa IP 192.168.9.1 pentru placa WiFi (wlan0). Acest lucru se face prin editarea configurației din fișierul dhcpd, având calea /etc/dhcpd.conf.

sudo nano /etc/dhcpcd.conf 

La finalul acestui fișier se adaugă:

interface wlan0
    static ip_address=192.168.9.1/24
    nohook wpa_supplicant
 

Activarea serviciului de routing

Acum voi configura RPi-ul pentru a permite accesul clienților conectați pe WiFi la router-ul creat să acceseze resursele disponibile în rețeaua principală. Mă refer la resurse ca fiind calculatoare, imprimante sau orice alt tip de echipament conectat în rețeaua principală.

Pentru a permite acest acces, voi crea un fișier cu numele routed-ap.conf în calea /etc/sysctl.d/routed-ap.conf.

sudo nano /etc/sysctl.d/routed-ap.conf 

… și va conține…

# https://www.raspberrypi.org/documentation/configuration/wireless/access-point-routed.md - Informatii despre acces-point router
# Enable IPv4 routing
net.ipv4.ip_forward=1
 

Cum funcționează?

Un client cu adresa IP din clasa 192.168.9.0/24 va avea acces la rețeaua principală, inclusiv la router-ul principal din această rețea, iar prin el va accesa internetul. Folosind o regulă în firewall-ul din router-ul creat, orice client wireless va accesa rețeaua principală și, implicit, internet-ul prin adresa IP a router-ului. Adresa router-ului de această data va fi adresa IP a conexiunii ethernet. Prin urmare, clienții wireless vor fi vizibili în rețeaua principală cu o singură adresă IP, oricât de mulți sunt.

Acest lucru se face cu ajutorul unei reguli în firewall:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 

… și ca regula să se aplice și după repornirea RPi-ului…

sudo netfilter-persistent save 

Toate regulile din firewall sunt scrise în /etc/firewall. Nu uita să salvezi de fiecare dată când adaugi o regulă nouă.

Configurarea serviciilor DNS și DHCP pentru interfața WiFi

DNS și DHCP sunt două servicii foarte importante în orice rețea. DHCP va aloca automat adrese IP către toți clienții, iar DNS va da un „nume” clienților în locul adresei IP.

Pe router-ul nostru aceste servicii sunt disponibile prin dnsmasq. În calea /etc/dnsmasq.conf este un fișier inițial de configurare, dar nu îl voi folosi pe acela, așa că îl voi salva cu alt nume, pentru a avea o copie în viitor, și voi crea un nou fișier dnsmasq.conf, pe care îl voi edita de la zero.

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
 

În noul fișier este nevoie să specific gama de adrese IP pe care le vor folosi clienții când se conectează, interfața (placa) wireless și numele de domeniu al router-ului.

interface=wlan0 # Interfata WiFi
dhcp-range=192.168.9.2,192.168.9.20,255.255.255.0,24h
                # Gama de IP-uri alocabile via DHCP
domain=wlan     # DNS domain
address=/rpi.wlan/192.168.4.1
                # Nume domeniu router
 

Am configurat 19 adrese IP disponibile pentru 19 clienți care se pot conecta la router-ul creat. Adresele au o valabilitate de 24 de ore. Prima adresă IP disponibilă pentru primul client este 192.168.9.2, iar ultima adresă IP este 192.168.9.20.

Clienții wireless pot accesa router-ul și pe baza numelui de domeniu rpi.wlan.

Configurare access-point

Această configurare presupune crearea unui fișier hostapd.conf în calea /etc/hostapd/hostapd.conf ce va conține parametrii de configurare a interfeței WiFi.

sudo nano /etc/hostapd/hostapd.conf 

În acest fișier voi adăuga următorii parametri:

country_code=RO
interface=wlan0
ssid=NumeRetea
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=ParolaMeaSigura
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
 

Prin country_code=RO specific codul de țară. Pentru plăcile de rețea de 5 GHz este necesară specificarea acestui cod de țară. Am specificat interfața wireless pe care o folosim, aceasta fiind wlan0. Apoi am dat numele rețelei Wifi, NumeRetea, care este disponibilă pe canalul 7. Iar parola de acces la rețea este ParolaMeaSigura.

Dacă ai o placă de rețea de 5 Ghz, va trebui modificat bw_mode=g în bw_mode=a. Dacă sunt prea multe rețele disponibile pe canalul 7, atunci va trebui modificat cu un alt canal. Parola trebuie să fie de minimum 8 caractere.

Sa verificăm...

Repornim Raspberry Pi și așteptăm să apară o nouă rețea cu numele NumeRetea.

sudo systemctl reboot 

După ce Raspberry a pornit, rețeaua va apărea pe orice dispozitiv mobil și ne putem conecta cu parola (ParolaMeaSigura) configurată în fișierul hostpad.conf.

Felicitări pentru noul tău Raspberry WiFi router.

Dacă ai întrebări, nu ezita să îmi scrii!

Leave a Reply

Your email address will not be published. Required fields are marked *

error: Content is protected !!