ASUS WL-500g Premium s OpenWRT (WhiteRussian)


Projekt OpenWRT udělá z celkem obyčejného přístroje s dost nešikovným firmware, skoro plnohodnotný server včetně www stránek, sambou, ftp a torrent klientem. ASUS WL-500g Premium



Doporučuji stáhnout firmware X-WRT, což je rozšíření OpenWRT o větší možnost nastavení přes www stránky
firmware X-WRT
případně ji vyhledat na stárnkách věnující se X-WRT soubor openwrt-brcm-2.4-squashfs.trx

Instalace firmware z linuxu:
  1. spustíme si terminálové okno a příhlásíme se jako root
  2. uložíme soubor a nebo stáhenme firmware z netu:  wget http://downloads.x-wrt.org/xwrt/firmware_images/whiterussian/0.9/milestone-3-rc2/default/openwrt-brcm-2.4-squashfs.trx
  3. nastavíme si siť IPadresu 192.168.1.2, Maska 255.255.255.0, brána 192.168.1.1, DNS 192.168.1.1
  4. vytáhneme z routeru všechny síťové kabely a pak jej vypneme i z elektrické sítě
  5. ze zadu stlačíme tlačítko pomocí nějakého hrotu RESTORE a stále držíme
  6. zapojíme do elektrické sítě a pustíme tlačítko RESTORE (měla by pak pomalu blikat kontrolka poweru)
  7. zapojíme síťový kabel od PC do routeru do LAN1
  8. zapsat postupeně v konzoli:
    1. tftp 192.168.1.1
    2. tftp> binary
    3. tftp> trace
    4. tftp> put openwrt-brcm-2.4-squashfs.trx
  9. vyčkat nějaou dobu, než se přepíše firmware v routeru (doporučuji radši i 6 minutek)
  10. vytáhnout router z elektrické sítě a znovu jej zapnout
  11. v PC do prohlížece napsat 192.168.1.1 a měla by naskočit www stánka pro nastavení routeru
  12. prvně musíte zadat heslo  pro roota a jeho ověření (doporučení, aby bylo dostatečně složité a hlavně si jej zapamatujte)
  13. web nastavení rouberu po Vás bude chtít zadat user a heslo. User = root, heslo je to co jste si zadali

Instalace firmware z windowu jsem nikdy nezskoušel, ale dle stránek wiki.openwrt by měl být v instalačním CD ASUS firmware restoration tool, který přes UPLOAD nahraje firmware do routeru.


Nastavení routeru:
Osobně doporučuji nastavit základní údaje (přípojení k světu ven WLAN, DHPC, WIFI) přes www stránky routeru (defaultně na http://192.168.1.1). V sekci System a Network
Důležíté: zaptnout v System - Settings - Boot Wait na ENABLED - dle informací z webu při zakázané této volbě by někdy po restartu nemusel už router najet.
Zbytek si myslím, že už sami odvodíte.

Jen dodávám ještě důležitou informaci:
Pro rozjetí WIFI je potřeba inastalovat NAS a doporučuju ještě qos-scripts (buď pomocí tlačítka Install NAS a Qos-scripts a nebo v konzoli  ipkg install nas a ipkg install qos-scripts )

Výhoda daného nastavení, že se to zapisuje přímo natvrdo do nvram, takže po případném dalším nahrání firmware, zústanou hodnoty ohledně DHPC, WIFI, WLAN nastaveno :-)
A co dál?
A teď začne hlavní důvod, proč jsme nahráli OpenWRT :-), je sice pravda, že minimální znalost linuxu je k dalším postupům je více než vhodná, ale i tak šup do toho.

Příhlásíme se na router pomocí ssh. Z windowsového PC pomocí programu PUTTY. Z linuxu pomocí konzole a příkazu ssh root@192.168.1.1 a násleně hesla, které jsme zadali přes www stranky, při 1. najetí routeru po nahrání OpenWRT.

Zaktualizování instalačních balíčků (je potřeba provést před první instalací jakéhokoliv balíčku)

ipkg update

Zprovoznění USB
  1. ipkg install kmod-usb2
  2. insmod usbcore
  3. insmod ehci-hcd
  4. ipkg install kmod-usb-storage
  5. insmod scsi_mod
  6. insmod sd_mod
  7. insmod usb-storage
  8. ipkg install kmod-ext3  //podpora formátu ext3 (osobně jsem obětoval jednu flashku pro data pro torrent a stahování, na které jsem nastavil souborový formát právě ext3)
  9. ipkg install kmod-ext3 //podpora pro klasickou flashku
  10. změna se projeví až po rebootu reboot
Připojení flashky
  1. vytořit složku
    mkdir /mnt/flash
  2. je zapotřebí namountovat flashku
    mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/flash/  //part1 či part2 závisí od toho, do kterého USB konektoru zastrčíte flashku (doporučení napsat mount /dev/sci/ho a pak tabulátoremi se dostat až do pozice part
  3. já mám flashu zastrčenou zastrčenou v routeru furt a tak aby se automaticky připojila i po restartu routeru jsem vytvořil soubor S45mount v /etc/init.d/
    1.  vi /etc/init.d/S45mount
    2. a napsat do něj (psací mód se dává pomocí písmene i a následne uložení a zavření souboru pomocí klávesy ESC a pak :wq )
      #!/bin/sh

      # připojení flashky po restartu

      /bin/mount /dev/scsi/host0/bus0/target0/lun0/part1 /mnt/flash/
Samba - deamon pro sdílení souborů a tiskáren
  1. instalace samby serveru
    ipkg install samba-server
  2. je zapotřebí do /etc/hosts přidat ipadresu serveru a jeho název  (to co jste zadali přes web nastavení routeru v sekci System - Settings - Host name (např. router1)), jinak samba nenaběhne :-(
    1. vi /etc/hosts
    2. a upravit na (psací mód se dává pomocí písmene i a následne uložení a zavření souboru pomocí klávesy ESC a pak :wq )

      127.0.0.1 router1 localhost OpenWrt
      192.168.1.1 router1

  3. nastavení samby se provádí v souboru /etc/samba/smb.conf
    1. otevření configuračního souboru
       vi /etc/samba/smb.conf
    2. nastavení parametů v conf souboru (můj smb.conf soubor zní jednoduše takto) (psací mód se dává pomocí písmene i a následne uložení a zavření souboru pomocí klávesy ESC a pak :wq )
      [global]
      #nastavení názvu skupiny
      workgroup = nasdomovek
      # název samba serveru
       server string = OpenWrt Samba Server
      # úroveň zabezpečení
       security = share
      #z důvodu ukázání  ve windowsech v sdílených složkách
       os level = 34
       wins support = yes
       encrypt passwords = yes
      #pod jakým účtem poběží user host
       guest account = nobody
      #povolení přísupu jen z adres
       hosts allow = 192.168.1., localhost
       domain master = yes
       local master = yes
       name resolve order = lmhosts hosts bcast
      #nastavení kódování (tady by měsi linuxáci asi udupali že tam nemám UTF8, ale co nadělám, když doma převážně máme windowsy)
       unix charset = iso8859-2
       client code page = 852

      [router1]
       path = /mnt/flash
       public = yes
       create mask = 0770
       directory mask = 0770
       browseable = yes
       delete readonly = yes
       writeable = yes
    3. nastavení samby, aby se spouštěla i po restartu serveru
      mv /etc/init.d/samba /etc/init.d/S55samba
Více www stránek na routeru (budu se zabývat jen statickými stránkami)
  1. nakopírovat www stránky někam na router (osobně je mám uložené na flashce např. /mnt/flash/moje_webovky/)
  2. otevřít soubor  vi /etc/init.d/S50httpd a přidat tam řádek např.
    httpd -p 8080 -h /mnt/flash/moje_webovky -r ${REALM:-OpenWrt}  //parametr -p určuje port, -h složku s www stárnkami a -r že se má propadat i do podložek
Stahování torretnů na routeru
  1. stahout soubor ctorrent_1.3.4-dnh2.2-1_mipsel.ipk na router (daný soubor jsem kdysy našel někde na webu, v žádném případě není to můj produkt a děkuji těm, kteří jej udělali)
    wget www.cuda.xf.cz/asus500wgp_openwrt/ctorrent_1.3.4-dnh2.2-1_mipsel.ipk
  2. spustit instalaci ctorrentu
    ipkg install ctorrent_1.3.4-dnh2.2-1_mipsel.ipk
  3. Jak používat ctorrent (né všechny torrenty se daří díky ctorrentu spustit, ale to mě tak moc netrápí)
    1. doporučuji, aby jste nemuseli mít stále spuštěnou konzolu routeru při stahování tak nejprve použít prográmek screen (instalace pomoci ipkg install screen ), jinak by jste to nemuseli spouště na routeru, že?
    2. spuštění programu screen
      screen a potom mezerník
    3. vejít do složky /mnt/flash, stáhntou soubor s identifikací torrentu, spuštění torretnu (ukázka torrentu linuxové distribuce Gentoo)
      cd /mnt/flash/
      wget http://www.mininova.org/get/1165730
      ctorrent -C 0 -E 1 /mnt/flash/1165730   //parametr -C 0 znamená nepoužívat cash, díky tomu mě torrent nepadá, -E 1 zanamená, že jak se dosáhne poměr downloadu/uploadu 1, po tom co dotáhne celý soubr se  tak se torrent automaticky zastaví, lze využít i více parametrů ctorrent --h )
    4. je možnost zavřít konzoli křížkem, díky programu screen poběží ctorrent dál
    5. znovuvyvolání ctorrentu
      screen -r  pokud máte spuštěných více instancí screenu tak prvně screen -list a pak screen -r a číslo relace (např. screen -r 39987 )
    6. uzavření screenu
      CTRL+D
Zazálohování nastavení routeru
tento krok jsem se rozhodl udělat po tom, co jsem na routeru nastavil špatně firewall a nemohl jsem se na něj už nijak příhlásit, proto bylo zapotřebí jej znovu přeinstalovat a znovu provádět všechno nastavení (tím myslím conf soubory sshd, samba, ftpd atd.)
  1. nainstalovat cron pomocí webového rozhraní routeru (už si přesně nepamatuju kde to bylo, ale v jedné sekci ano :-))
  2. vytvořil jsem složku /mnt/flash/bck
    mkdir /mnt/flash/bck
  3. nastavit zálohování (v příkladu bude nastaveno, že každý den v 00:01 a dělá se následující, záloha číslo 7 se smaže, záloha č. 6 se přejmenuje na 7, záloha č. 5 se přejmenuje na 6,.... a nakonec se zabalí /etc do zaloha_01.tar, tím dosáhnu 7 dní starých záloh nastavení)
    crontab -e
    a tam napsat
    01 00 * * * /bin/rm /mnt/flash/bck/zaloha_07.tar && /bin/mv /mnt/flash/bck/zaloha_06.tar /mnt/flash/bck/zaloha_07.tar && /bin/mv /mnt/flash/bck/zaloha_05.tar /mnt/flash/bck/zaloha_06.tar &&  /bin/mv /mnt/flash/bck/zaloha_04.tar /mnt/flash/bck/zaloha_05.tar && /bin/mv /mnt/flash/bck/zaloha_03.tar /mnt/flash/bck/zaloha_04.tar && /bin/mv /mnt/flash/bck/zaloha_02.tar /mnt/flash/bck/zaloha_03.tar && /bin/mv /mnt/flash/bck/zaloha_01.tar /mnt/flash/bck/zaloha_02.tar && tar cvf /mnt/flash/bck/zaloha_01.tar /etc
    pak uložit pomocí
    :wq
FTP s virtuálními usery (zjistil jsem, že nejideálnějíší je pro to pure-ftpd)
  1. naistalujeme pure-ftpd
    ipkg install pure-ftpd
  2. vytořit nového usera
    • nejde použít standardně příkaz useradd a proto je zapotřebí otevřít (pomocí programu vi) soubor /etc/passwd a tam přidat řádek např.
      pureftp::500:500:pureftp:/mnt/flash:/bin/ash
      po uložožení nastavíme nějaké heslo pro uživatele pureftp pomoci
      passwd pureftp a pak 2x zadat heslo (doporučuji zadat nějaké kvalitní)
    • dále do souboru /etc/group
      pureftp:x:500:
  3. Nakonfigurování pure-ftp
    konfigurace se provádí jen opravou a nadefinování spouštěcího scriptu v sekci OPTIONS

    OPTIONS="-A yes -B -c 10 -S XXX.XXX.XXX.XXX,21 -P 88.146.167.59 -p 30000:30500 -l puredb:/etc/pureftpd.pdb -C 4 -E yes -lunix -u 499 -U 133:022 -g $PID_F" kde
    -A yes =  zajistí, že useři budou mít přístup jen do svých domácích složek
    -c 10 = maximální počet  připojených uživatelů
    -S XXX.XXX.XXX.XXX,21 = ipadresa,port na které bude ftp poslouchat
    -P XXX.XXX.XXX.XXX = ipadresa pro pasivní režim, použití, když máte až za routerem ftpserver na který forwardujete komunikaci týkající se ftp, pak je zapotřebí nastavit vnější ipadresu
    -p 30000:30500 = rozsah portů pro pasivní režim
    -l puredb:/etc/pureftpd.pdb = cesta k databázi virtuálních userů
    -C 4 = maximální počet připojení z jedné ipadresy
    -E yes = zakázání anonymním uživatelům se připojit
    - zbytek jsem tam ponechal z původního nastavení
  4. Nastavení automatického startu po restartu routeru
    cp /etc/init.d/pure-ftpd /etc/init.d/S55pure-ftpd /číslo za S musí být vyšší než je S týkající se mountu, aby už byla připojena flashka
  5. spuštění pure-ftpd (jen z důvodu vytoření virtuálního usera a vytvoření databáze virtuálních userů)
    /etc/init.d/S55pure-ftpd start
  6. Vytvoření nového virtuálního usera
    pure-pw useradd cuda -u pureftp -d /mnt/flash/ftp/cuda //-u určuje pod jakým skutečným userem virtuální user poběží, -d domácí adresář (ten samozřejmě musí existovat)
  7. Zaktualizování databáze
    pure-pw mkdb