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!