OpenWrt 4: vytvoreni jednoducheho routeru

Takze jste se konecne rozhodli do sveho routeru nainstalovat OpenWrt, nebo si router za timto ucelem rovnou poridili? Mate nainstalovane OpenWrt a potrebujete zprovoznit WiFi a NAT? Tak ctete! 😉

Predpokladam funkcni zarizeni s OpenWrt 10.03 a WiFi kartou Atheros (slo by to i bez Wifi). Na editaci souboru je potreba pouzivat textovy editor vi (vi soubor.txt). V zakladu je v OpenWrt dostupny prave editor vi (vykuchana verze vim dostupna v busyboxu). 

Po prvnim spusteni routeru uvidite:

Please press Enter to activate this console.


BusyBox v1.15.3 (2010-04-06 03:14:11 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 Backfire (10.03, r20728) --------------------------
  * 1/3 shot Kahlua    In a shot glass, layer Kahlua
  * 1/3 shot Bailey's  on the bottom, then Bailey's,
  * 1/3 shot Vodka     then Vodka.
 ---------------------------------------------------
root@OpenWrt:/#

Az to namichate a vypijete , zmente rootovi heslo:

root@OpenWrt:/# passwd root
Changing password for root
New password:
Bad password: too short
Retype password:
Password for root changed by root
root@OpenWrt:/#

to je zaklad, nechce prece mit dalsiho spravce 

OpenWrt ma vetsinu nastaveni ulozenou v /etc/config :

root@OpenWrt:/# ls /etc/config/
dhcp          firewall      ntpclient     system        wireless dropbear      network       
root@OpenWrt:/#

vyuziva se UCI rozhrani (Unified Configuration Interface).

Nastavte tedy sit. Ta se nastavuje v souboru /etc/config/network:

root@OpenWrt:/etc/config# cat network
config interface loopback
        option ifname   lo
        option proto    static
        option ipaddr   127.0.0.1
        option netmask  255.0.0.0

config interface lan
        option ifname   "eth1 wlan0"
        option type     bridge
        option proto    static
        option ipaddr   192.168.7.1 
        option netmask  255.255.255.0

config interface wan
        option ifname   eth0
        option proto    dhcp
root@OpenWrt:/etc/config#

na loopback rozhrani nema cenu nic resit – nastavte ho jako ja.
Rozhrani wan je „vstup internetu do routeru“, jako na kupovanych krabickach. Nastavte tedy udaje od poskytovatele internetoveho pripojeni. Proto dhcp bere IP z dhcp, v pripade uvedeni static musite nastavit parametry rucne (jako u rozhrani lan).
U rozhrani lan vytvorime most dvou rozhrani – eth1 (sitova karta/karty, ke kterym pripojite pocitace v mistni siti) a wlan0 (wifi karta, ke ke ktere pripojite pocitace v mistni siti). Timto ziskate nove rozhrani br-lan, a to bude obsahovat kabel i bezdrat. Adresu nastavte rucne (static), pocitace budou dostavat IP adresy z DHCP z uvedeneho rozsahu 192.168.7.1.
Dokud nemate nainstalovan ovladac na wifi, neuvadejte zatim (po instalaci ovladace nezapomente doplnit!) „eth1 wlan0“, ale pouze „eth1“ – jinak budou problemy!

Dale si nastavte system v /etc/config/system:

root@OpenWrt:/etc/config# cat system
config system
        option hostname OpenWrt
        option timezone 'CET-1CEST,M3.5.0,M10.5.0/3'
root@OpenWrt:/etc/config#

Tady je zajimavy radek hostname – jmeno vaseho routeru. Dulezity radek timezone definuje casovou zonu, svoji si najdete v tabulce.

nyni restartujte router (prikaz reboot) a po spusteni by mel jit internet:

root@OpenWrt:/#ping www.google.cz
PING www.google.cz (209.85.148.105): 56 data bytes
64 bytes from 209.85.148.105: seq=0 ttl=53 time=15.040 ms
64 bytes from 209.85.148.105: seq=1 ttl=53 time=15.078 ms
64 bytes from 209.85.148.105: seq=2 ttl=53 time=19.460 ms
^C
--- www.google.cz ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 15.040/16.526/19.460 ms
root@OpenWrt:/#

 

Nainstalujte tedy nezbytne programy a ovladace. Predpokladam WiFI kartu Atheros. U Atheros karet se v novych verzich OpenWrt nepokousejte o vyborny madwifi ovladac – nefunguje  Misto nej pouzijte ath5k, nebo ath9k pro 802.11n karty. Na WiFi se sdilenym WPA PSK heslem bude stacit balicek wpad-mini (nepodporuje RADIUS).

root@OpenWrt:/# opkg update
Downloading http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/Packages.gz.
Inflating http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/Packages.gz.
Updated list of available packages in /var/opkg-lists/packages.
root@OpenWrt:/#
root@OpenWrt:/# opkg install kmod-ath5k kmod-ath9k wpad-mini
Package kmod-ath5k (2.6.32.10+2010-03-24-5) installed in root is up to date.
Installing kmod-ath9k (2.6.32.10+2010-03-24-5) to root...
Downloading http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/kmod-ath9k_2.6.32.10+2010-03-24-5_ar71xx.ipk.
...

Nyni natahnete athXk modul pro wifi, nebo pomoci reboot restartujte router. Pak prikazem iwconfig overte, ktera zarizeni „podporuji wifi“

root@OpenWrt:/# iwconfig
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      no wireless extensions.

br-lan    no wireless extensions.
wlan0 IEEE 802.11bg Mode:Master Frequency:2.442 GHz Tx-Power=20 dBm RTS thr:off Fragment thr:off Power Management:off
mon.wlan0 IEEE 802.11bg Mode:Monitor Frequency:2.442 GHz Tx-Power=20 dBm RTS thr:off Fragment thr:off Power Management:off

WiFi karta se tedy jmenuje wlan0. Smazte nastaveni pro WiFi a spustte detekci (prijdete o predchozi nastaveni!), OpenWrt vytvori jednoduchy soubor s nastavenim:

root@OpenWrt:/etc/config# rm -f /etc/config/wireless
root@OpenWrt:/etc/config# wifi detect > /etc/config/wireless
root@OpenWrt:/etc/config# cat /etc/config/wireless
config wifi-device  radio0
        option type     mac80211
        option channel  5
        option macaddr  00:25:86:e4:eb:e4
        option hwmode   11g

        # REMOVE THIS LINE TO ENABLE WIFI:
        option disabled 1

config wifi-iface
        option device   radio0
        option network  lan
        option mode     ap
        option ssid     OpenWrt
        option encryption none

root@OpenWrt:/etc/config#

To samozrejme neni nejlepsi, takze udelejte mensi upravu:

root@OpenWrt:/etc/config# cat /etc/config/wireless
config wifi-device  radio0
        option type     mac80211
        option channel  7
        option macaddr  00:25:86:e4:eb:e4
        option hwmode   11g

        # REMOVE THIS LINE TO ENABLE WIFI:
        #option disabled 1

config wifi-iface
        option device   radio0
        option network  lan
        option mode     ap
        option ssid     "Muj OpenWrt router"
        option encryption psk2
        option key      "strasneMocTajneHeslo123"

root@OpenWrt:/etc/config#

type mac80211 athXk ovladac
channel 7  cislo kanalu
macaddr 00:25:86:e4:eb:e4 mac adresa WiFI karty, tu vygeneruje OpenWrt
hwmode 11g mod WiFI karty, tady je pouzity 2,4GHz 54Mbps
#disabled 1 potreba zakomentovat, jinak je WiFi vypnuta
network lan bude patrit do site lan (/etc/config/network)
mode ap  WiFI karta bude delat pristupovy bod 
ssid „Muj OpenWrt router“ jmeno site
encryption psk2 pouzijte WPA2 (na zpetnou kompatibilitu s WPA se neohlizejte kvuli bezpecnosti (kdyby nekdo mel stary notebook a neslo mu WPA2, staci prepsat na psk)). Vse se da najit v tabulce. RADIUS nejde pouzit s wpad-mini!
key “strasneMocTajneHeslo123″ heslo k WiFi siti.

Heslo musi byt nejmene 8 znaku a maximalne 63 znaku dlouhe, jinak nebude WiFi fungovat! Vygenerujte alespon 15 znaku dlouhe heslo, ktere bude obsahovat nahodne znaky: velka a mala pismena, cisla a specialni znaky (#&“%+@“ …) hackum a carkam se vyhnete. Dobre heslo je dulezite, nechcete byt prece internetova kavarna pro siroke okoli, stejne se heslo zadava jen jednou, tak ho do PC opisete klidne z papiru.

Dalsi dulezita vec je firewal, ten je v souboru /etc/config/firewall:

root@OpenWrt:/etc/config# cat /etc/config/firewall
config include
        option path /etc/firewall.user

root@OpenWrt:/etc/config#

ani se ho tam nepokousejte nastavit – je to chaoticky bordel. Napiste tam to, co ja a v souboru /etc/firewall.user si tak muzete napsat vlastni firewall pomoci iptables.

Budete delat NAT (Network Address Translation – za jednu IP adresu od  poskytovatele schovate celou svoji sit). Protoze NAT NENI FIREWALL, jak si sposuta lidi mysli, nastavte jeste par pravidel. Pouzijte jednoduchou logiku, vse na vystupu povolit a vse na vstupu zakazat.

Jednoduchy (a funkcni) firewall vypada nasledovne: 

root@OpenWrt:/etc# cat /etc/firewall.user
echo 1 > /proc/sys/net/ipv4/ip_forward
 #povoli IPv4 NAT

iptables -F
iptables -X
 #smaze vsechna pravidla

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
 #politika firewallu

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
 #mistni smycka povolena

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
 #maskarada (NAT) => paketum, ktere jdou do internetu zmeni zdrojovou IP na IP sitovky eth0

iptables -A FORWARD -i eth0 -o br-lan -m state --state=RELATED,ESTABLISHED -j ACCEPT
 #jiz navazana spojeni z internetu do LAN povolit

iptables -A FORWARD -o eth0 -i br-lan -j ACCEPT
 #spojeni z LAN do internetu povolit

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
 #pakety k jiz navazanym spojenim povolit

iptables -A INPUT -m state --state INVALID -j DROP
 #neplatne zahodit

iptables -A INPUT -p icmp -j ACCEPT
 #povoli icmp (ping, traceroute, ...) na vsech rozhrannich

iptables -A INPUT -i br-lan -j ACCEPT
 #vse z LAN povolit

iptables -A OUTPUT -o eth0 -j ACCEPT
 #vse do internetu povolit

iptables -A INPUT -j REJECT --reject-with icmp-admin-prohibited
 # vsechna ostatni prichozi spojeni, ktera nejsou definovana odmitnout

a pro jisotu nastavte (kdyby nebyly) prava pro spusteni:

root@OpenWrt:/# chmod +x /etc/firewall.user
root@OpenWrt:/#

DHCP se da nastavit v /etc/config/dhcp, ale neni to potreba, staci nechat vychozi nastaveni.

 

Nyni pro jisotu restartujte router a pote uz by se mely byt klienti schopni pripojit pres kabel i bezdratove.

Takhle vidim v Ubuntu 10.10 router:
WiFi router v Ubuntu 10.10 - Network Manager

po pripojeni klient dostane IP adresu z DHCP:

Na routeru si muzete overit provoz site prikazem iptables -L -n -v 

A to je vse! Nyni mate plne funkcni WiFi router. Funkce jsou stejne, jako u nejlevnejsich krabicek za 600Kc, ale mate zaklad a na tom se da stavet.

V pripade dotazu, piste do diskuze pod clankem.

7 komentářů u „OpenWrt 4: vytvoreni jednoducheho routeru

  1. Cejvik
    Ahoj, děkuji za pěkný návod. Po několika letech jsem chtěl využít RouterStation desku co mám ale dva dny už rozjíždím CM9 kartičku. Opět nebyly ovladače a takové základní příkazy na openwrt stránkách nenajdete 🙁
  2. Vita
    Dobrý den,
    po nahrání posledního OpenWrt mě trápí problém s WIFI, její bitrate se pohybuje jen v rozmezí 17mb/s – max. 65 mb/s, ačkoliv by měl být 300mb/s. Nikde na netu nemůžu najít řešení :-(. Nenapadá vás v čem by to mohlo být?

    Díky za rady

  3. tuxmartin Autor příspěvku
    Dobry den,
    s predchozi verzi OpenWrt to fungovalo spravne?

    Jakou mate aktualne verzi a jaka byla ta stara funkcni verze? Jake pouzivate zarizeni? Nemenil jste nastaveni, nebo ovladac k wifi karte?

    Poslete nastaveni, verzi OpenWrt, typ zarizeni a wifi karty a pouzity ovladac. Zkusim se na to podivat, treba mne neco napadne 🙂

  4. Milan
    Dobrý den,
    tak jsem zkoušel rozběhnout openwrt pod Mikrotikem RB411.
    Podařilo se mi přenést zkompilovaný systém do NAND, router bootuje, ale v /etc/config mi schází soubory ntpclient, network a wireless.
    Pokud se pokusím soubor network sám v editoru napsat, vyskočí na mne při uložení – readonly system. Takže neuložím nic.

    Potřebuji ho nastavit na domácí wifi router – drátová eth0 jako WAN a wifi0 jako místní síť.

    Děkuji za radu,
    Milan

  5. tuxmartin Autor příspěvku
    Dobry den,
    omlouvam se za zpozdeni. Poslete mi prosim vypis prikazu „mount„. Pravdepodobne mate root (/) pripojen pouze pro cteni. OpenWrt na uzivatelske upravy pouziva overlay file system:

    /overlay is the writable part of the file system that gets merged with /rom to create a uniform /-tree. It contains anything that was written to the router after installation, e.g. changed configuration files, additional packages installed with opkg, etc. It is formated with JFFS2.

    mini_fo The (mini fanout overlay file system) – Redirects modifying operations to a writable location called „storage directory“, and leaving the original data in the „base directory“ untouched. When reading, the file system merges the modified and original data so that only the newest versions will appear.

    Momentalne tu nemam zadnou OpenWrt krabicku, takze se nemuzu podivat. Muzete poslat jeste vypis „ls -lha /„? Neni tam nekde adresar overlay?

    Zkuste take „mount -o remount,rw /“ pak provedte upravy a zapiste data „sync„. Co se stane po restartu „reboot„? Data porad nikde?

  6. Chosino

    Zdravím, koupil jsem zařízení nexx wt3020f. Nahrál jsem openwrt a chtěl bych nastavit druhou zásuvku která je primárně určena pro wan nastavit jako lan pro připojení druhého pc . Nevíte mi poradit? Tuček

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *