WRT-ruuteri häkkimine
Sisukord
Linksys WRT54GL
Wärkvara
WRT54GL on väike, ühel plaadil on kokku pandud interneti ruuter, 4-pordiline 10/100 switch ja 54Mbps Wireless-G (802.11g) Access Point. Kaks antennipistikut koos antennidega.
Mootoriks on 200MHz Broadcom 5352 protsessor, 4MB Flash-mälu ja 16MB RAM. Serial interface: UART otsad on trükkplaadil olemas.
Opsüsteemiks on Linux. Haldamine käib veebiliidese kaudu.
Modimine
Firmware vahetamine
OpenWRT, DD-WRT ja mitmed teised.
Milleks: rohkem funktsioone ja arenduskeskkond.
Lisainfot maakeeles https://wiki.itcollege.ee/index.php/DD-WRT
Wärkvara täiustamine
- Täisväärtusliku jadaliidese tegemine. Kuigi protsessoril on serial-port olemas, pole selle tarbeks pistikut pandud. Pistiku panekust ja pingenivoode muutmisest.
- Digitemp. Ühejuhtme-liidesega (i-button) termomeeter. Kasutab serial-liidest.
- Püsimälu laiendamine SD mälukaardi lisamise teel.
Digitemp programm
Tutvume: http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/
Sellelt lehelt saame DD-WRT jaoks valmis programmi digitemp_DS9097-dd: http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/digitemp_DS9097-dd
wget http://www.lecad.uni-lj.si/~leon/other/wlan/wrt54ow/digitemp_DS9097-dd
Paneme käima ja loeme abiteksti
# digitemp GNU Public License v2.0 - http://www.brianlane.com Compiled for DS9097 Usage: digitemp [-s -i -U -l -r -v -t -a -d -n -o -c] -i Initalize .digitemprc file -w Walk the full device tree -s /dev/ttyS0 Set serial port ...
Konfifaili tegemine
# ./digitemp -s /dev/tts/1 -i DigiTemp v3.3.2 Copyright 1996-2004 by Brian C. Lane GNU Public License v2.0 - http://www.brianlane.com Turning off all DS2409 Couplers . Searching the 1-Wire LAN 1089818800080032 : DS1820/DS18S20/DS1920 Temperature Sensor ROM #0 : 1089818800080032 Wrote .digitemprc
Nagu näha, leidis ta ühe anduri ja saadud infi alusel koostas .digitemprc faili
# cat .digitemprc TTY /dev/tts/1 READ_TIME 1000 LOG_TYPE 1 LOG_FORMAT "Sensor %s: %.4C" CNT_FORMAT "%b %d %H:%M:%S Sensor %s #%n %C" HUM_FORMAT "%b %d %H:%M:%S Sensor %s C: %.2C F: %.2F H: %h%%" SENSORS 1 ROM 0 0x10 0x89 0x81 0x88 0x00 0x08 0x00 0x32
Seda faili võib/saab vajaduse järgi muuta.
Võtame lugemi:
# ./digitemp -q -t 0 Sensor 0: 22.5625
Kui konfifaili ei ole (ei leita), antakse veateade "Error, you don't have +rw permission to access".
Tegelikuks kasutamiseks peaks digitemp olema salvestatud flash-mällu, algkäivituse ajal kusagilt laetama või olema firmware'sse kompileeritud.
Digitemp WRT flash-mälus
Installeerime WRT54GL flash-mällu DD-WRT mini firmware. Peale jffs-failisüsteemi käivitamist (veebiliidesest valime: Administration ⇒ Management ⇒ JFFS2 ⇒ Enable) jääb masinasse ca 750 kB vaba ruumi. digitemp programmile piisab 150 kB mälust.
Kusagil serveris on kataloog digitemp ja seal failid digitemp, digitemp.conf ja Readme.txt . Selle kataloogi kopeerime WRT-sse :
/jffs/digitemp # scp -r keegi@server.example.com:digitemp /jffs/ /jffs/digitemp # ls -l -rw-r--r-- 1 root root 493 Mar 5 14:37 Readme.txt -rwxr-xr-x 1 root root 143848 Feb 15 00:26 digitemp -rw-r--r-- 1 root root 280 Mar 1 13:41 digitemp.conf /jffs/digitemp #
DD-WRT graafilise halduslehe aknasse (Administration ⇒ Commands) sisestame:
echo '*/5 * * * * root /jffs/digitemp/digitemp -c /jffs/digitemp/digitemp.conf -a | /usr/bin/nc -w 10 server.example.ee 23' > /tmp/crontab
See rida konfib cron'i nii, et igal viiendal minutil võetakse temperatuurilugem ja saadetakse logiserveri porti 23.
Salvestame: Save Startup
Võrgust laadimine
Kui meie ruuteris aga piisavalt vaba mälu ei ole ja mingil põhjusel digitempi firmwaresse ei taha kompileerida, siis tuleb nvram-mi kirjutada laadimis- ja käivitmiskäsud. Umbes nii:
wget failid # (digitemp, digitemp.conf) sh skriptifail # (digitemp.sh)
Selline lahendus nõuab võrgust kättesaadava failiserveri olemasolu.
Mis-on-mis
- rs232 port
- rs232 standardile vastav jadaliides (serial port).
- 3,5V serial port
- muidu nagu rs232 port aga signaalitasemed on 0V ja 3,5V -10V ja +10V asemel.
Lingid
- DD-WRT koduka wiki
- OpenWRT kodukas
- rs-liidese variant
- Digitemp programmid
- http://www.linksysinfo.org/
- http://www.linksys.com/
- http://www.linksysinfo.org/forums/showthread.php?t=47535
- http://www.hoppie.nl/tempsens/ - Monitor temperatures with Linux, Nagios, and DS1820
- http://openwrt.bumpclub.ee/
- http://linux.ee/linksys_wrt54g