Raspberry Pi wifi router
Máme dobrého suseda, ktorý nám zdieľa internet cez wifi. Fungovalo to viacmenej dobre až do doby, keď sa presťahoval o 3 poschodia vyššie a wifi signál k nám už nedosiahol. Ako riešenie som chcel použiť jeden z mnohých lacných wifi routerov, ktoré sa u nás našli a použiť ich s externou anténou na routovanie wifi do lokálnej siete. Žiadny žiaľ nevedel routovať wifi na ethernet, len naopak. Skúsil som pozrieť ceny drahších routerov, najlepšie s možnosťou nahrania openWRT firmvéru, ale ceny boli skrátka príliš vysoké. No a ťahať kábel cez pár poschodí sa mi nezdalo moc praktické. Navyše sme žiadnu skutočnú lokálnu sieť nemali a tak by bolo pre nás výhodnejšie mať vlastnú wifi.
Napadlo ma použiť Raspberry Pi, ktoré som si kúpil zo zvedavosti, ale nemal naň moc času a ležalo v poličke bez využitia (zrejme bežné „použitie“ Raspberry). Dokúpil som dve wifi karty do USB s chipsetom RT5370 po cca. 13 Eur. Kúpa to bola trochu naslepo, dôležitý parameter bol pre mňa konektor na externú anténu, ale v Linuxe bežia dobre. Malý problém je len s hodnotou Link Quality vo výpise iwconfig, pretože hodnoty pod 35/70 znamenajú slabý až žiadny signál. Trochu ma to potrápilo pri konfigurácii.
InštaláciaPoužívam štandardný Raspbian, do ktorého je potrebné doinštalovať balíky hostapd a isc-dhcp-server.
KonfiguráciaPre nastavenie routovania musíme pomeniť niekoľko súborov v /etc. Poďme na to.
Sieťové karty nastavíme v /etc/network/interfaces (celý súbor):
# interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.48.1 netmask 255.255.255.0 auto wlan0 allow-hotplug wlan0 iface wlan0 inet static hostapd /etc/hostapd/hostapd.conf address 192.168.128.1 netmask 255.255.255.0 allow-hotplug wlan1 iface wlan1 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
Nakŕmime iptables konfiguráciou v /etc/network/if-pre-up.d/iptables (celý súbor):
#!/bin/sh #This script restores iptables upon reboot iptables-restore < /etc/iptables.up.rules exit 0
A konfiguráciu uložíme do /etc/iptables.up.rules (celý súbor):
# Generated by iptables-save v1.4.14 on Fri Aug 14 22:52:43 2015 *nat :PREROUTING ACCEPT [125:34167] :INPUT ACCEPT [1:28] :OUTPUT ACCEPT [4:304] :POSTROUTING ACCEPT [0:0] -A POSTROUTING -o wlan1 -j MASQUERADE COMMIT # Completed on Fri Aug 14 22:52:43 2015
Pre wlan1 nastavíme prístupové údaje k susedovej sieti v /etc/wpa_supplicant/wpa_supplicant.conf (celý súbor):
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=SK network={ ssid="<susedove ssid>" psk="<heslo>" }
Wlan0 nastavíme ako APčko v /etc/hostapd/hostapd.conf (celý súbor):
interface=wlan0 driver=nl80211 ssid=<ssid lokálnej wifi> hw_mode=g channel=11 macaddr_acl=0 auth_algs=3 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=<heslo do lokálnej wifi> wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP rsn_pairwise=CCMP
V /etc/sysctl.conf je kvôli routovaniu potrebné odkomentovať riadok:
net.ipv4.ip_forward=1
No a aby sme aj dostali automaticky nejakú IP adresu, tak v /etc/dhcp/dhcpd.conf nastavíme (celý súbor):
ddns-update-style none; default-lease-time 600; max-lease-time 7200; authoritative; log-facility local7; subnet 192.168.128.0 netmask 255.255.255.0 { range 192.168.128.48 192.168.128.128; option broadcast-address 192.168.128.255; option routers 192.168.128.1; default-lease-time 600; max-lease-time 7200; option domain-name "<meno lokálnej wifi siete>"; option domain-name-servers <ip adresa dns servera>; } subnet 192.168.48.0 netmask 255.255.255.0 { range 192.168.48.48 192.168.48.128; option broadcast-address 192.168.48.255; option routers 192.168.48.1; default-lease-time 600; max-lease-time 7200; option domain-name "<meno lokálnej eth siete>"; option domain-name-servers <ip adresa dns servera>; }
Tým by mala byť konfigurácia hotová a po reštartovaní siete by sa malo Raspberry pripojiť k wifi sieti zadefinovanej v /etc/wpa_supplicant/wpa_supplicant.conf a vytvoriť lokálnu wifi sieť, ktorá je nakonfigurovaná v /etc/hostapd/hostapd.conf. U nás to behá už viac ako pol roka k spokojnosti. Zo začiatku sme mali problém so silou signálu a ak sa Raspberry odpojí od wifi siete, už sa nevie automaticky pripojiť. Toto som žiaľ nevedel vyriešiť a ak by ste mali nejaký nápad, môžete sa mi ozvať.
Print serverMáme tlačiareň s USB portom. Vždy, keď sme chceli tlačiť, tak sme tlačiareň vytiahli, priniesli k počítaču, vytlačili čo bolo treba a zasa tlačiareň schovali. Prečo sa ale takto trápiť, keď nám už celý deň beží Raspberry a väčšinu času aj tak nič nerobí? Spravíme si print server.
Ako prvé treba nainštalovať balík cups a ak máte nejakú exotiku (napr. Dell 1100), tak aj ovládače splix.
Potom treba nakonfigurovať v /etc/cups/cupsd.conf:
zmeniť Listen localhost:631
na Listen *
a pridať Allow all
do:
<Location /> Order allow,deny Allow all </Location> and: <Location /admin> Order allow,deny Allow all </Location>
Nakoniec treba pridať užívateľa pi do skupiny lp cez príkaz:
sudo adduser pi lp
a nakonfigurovať tlačiareň cez webové rozhranie. Odteraz si môžete tlačiť z PDA cez wifi a chodiť si len po hotový papier.
Nie som žiadny linuxový administrátor, konfigurácie som poskladal z viacerých návodov na internete a ak je niečo zle, nechám sa rád poučiť. Prajem Vám veľa naroutovaných packetov!