OpenWRT Kamikaze
Ponieważ bardzo cenię swój wolny czas oraz uważam że wynajdywanie koła po raz drugi nie ma sensu zawieszam pisanie tutoriali. Wszystko co potrzebne znajdziecie po polskiemu tutaj -> openwrt.pl.
Chaos, panic, packet loss - my work here is done!
Ponieważ bardzo cenię swój wolny czas oraz uważam że wynajdywanie koła po raz drugi nie ma sensu zawieszam pisanie tutoriali. Wszystko co potrzebne znajdziecie po polskiemu tutaj -> openwrt.pl.
Autor:
Sławomir Sikora
o
14:09
W OpenWRT paczkami zarządza się za pomocą systemu ipkg. Konfiguracja ipkg przechowywana jest w /etc/ipkg.conf
src release http://downloads.openwrt.org/kamikaze/7.07/brcm-2.4/packageswarto do tego pliku dodać repozytorium backport w którym znajdziemy miedzy innymi pakiety takie jak np. samba-server
src packages http://downloads.openwrt.org/kamikaze/packages/mipsel
dest root /
dest ram /tmp
src backport http://downloads.openwrt.org/backports/0.9Przed instalacją aktualizujemy informacje o repozytoriach i ich pakietach przez
ipkg updateListę dostępnych pakietów uzyskamy przez
ipkg listListę zaisntalowanych pakietów
ipkg list_installedPakiety instalujemy przez
ipkg install [nazwa pakietu] (wraz z zależnościami)Pakiety usuwamy przez
ipkg install [link/ścieżka] (np. http://downloads.openwrt.org/kamikaze/packages/mips/cups_1.1.23-1_mips.ipk)
ipkg remove [nazwa pakietu]Zawartość pakietu ujawni nam
ipkg files [nazwa zainstalowanego pakietu]Reszta opcji po wpisaniu
ipkg
Autor:
Sławomir Sikora
o
10:15
W tym tutorialu opiszę konfiguracją portów przewodowych. Bezprzewodówką (wifi) zajmiemy się w innym post'cie.
Konfiguracja sieci w OpenWRT Kamikaze w przeciwieństwie do White Russian jest przechowywana w pliku konfiguracyjnym a nie w zmiennych przestrzeni nvram. Plik ten to /etc/config/network.
Domyślnie zawartość to:
#### VLAN configurationJak widać plik podzielony jest na sekcje. W pierwszej sekcji konfigurujemy 6 portów wbudowanego switch'a. Dla użytkownika wystawionych jest 5 portów, a szósty podłączony jest do systemu. Ponieważ korzystam z telefonii internetowej i nie chcę podłączać dodatkowego switch przed routerem więc dokładam sobie jeden port po stronie WAN'u do którego podłączam adapter VoIP i po sprawie
config switch eth0
option vlan0 "1 2 3 4 5*"
option vlan1 "0 5"
#### Loopback configuration
config interface loopback
option ifname "lo"
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0
#### LAN configuration
config interface lan
option type bridge
option ifname "eth0.0"
option proto static
option ipaddr 192.168.1.1
option netmask 255.255.255.0
#### WAN configuration
config interface wan
option ifname "eth0.1"
option proto dhcp
#### VLAN configurationNastępnie mamy konfigurację LAN'u i WAN'u. Przy konfiguracji WAN'u przydatna może okazać się opcja macaddr (w White Russian było to hwaddr). Jeśli chcemy wpisać kilka serwerów DNS oddzielamy je spacjami i zamykamy w cudzysłów.
config switch eth0
option vlan0 "2 3 4 5*"
option vlan1 "0 1 5"
#### WAN configurationSieć możemy skonfigurować za pomocą polecenia: uci
config interface wan
option ifname "eth0.1"
option proto static
option ipaddr nasze_IP
option netmask nasza_maska
option gateway nasza_brama
option dns "DNS1 DNS2"
option macaddr nasz_mac
uci set network.wan.proto=static
uci set network.wan.ipaddr=nasze_IP
uci set network.wan.netmask=nasza_maska
uci set network.wan.gateway=nasza_brama
uci set network.wan.dns="DNS1 DNS2"
uci set network.wan.macaddr=nasz_mac
uci commit networka cała konfigurację (w przypadku gdy zmienialiśmy coś poza siecią) możemy zapisać przez
uci commit
Autor:
Sławomir Sikora
o
09:21
Failsafe mode:
Jeśli zapomniałeś hasło, uszkodziłeś któryś z skryptów startowych, zablokowałeś się na firewall'u lub uszkodziłeś partycję JFFS2, ten tryb jest dla Ciebie.
Uruchamianie urządzenia w trybie failsafe mode:
Autor:
Sławomir Sikora
o
08:22
Ponieważ nie ukrywam że dar piśmiennictwa mi się nie udzielił, w swoich tutorialach podpierał się będę stronami z wiki projektu OpenWRT (wiki.openwrt.org).
Oryginalny firmware:
Backup:
Backup oryginalnego firmware'u możemy wykonać za pomocą ukrytej strony administracyjnej. Aby wykonać backup będziemy potrzebować pendrive.
#!/bin/sh
dd if=/dev/mtdblock/1 > $1/first_config.trx
/dev/discs/disc0/part1 on /tmp/harddisk/part0 type ext2 (rw,sync)
tftp 192.168.1.1
tftp> binary
tftp> trace
tftp> put openwrt-brcm-2.4-squashfs.trx
cd /tmp/
wget http://downloads.openwrt.org/kamikaze/7.07/brcm-2.4/openwrt-brcm-2.4-squashfs.trx
mtd -r write openwrt-brcm-2.4-squashfs.trx linux && reboot
Autor:
Sławomir Sikora
o
12:22
Właśnie stałem się szczęśliwym posiadaczem "router'a" bezprzewodowego ASUS WL-500g Premium. "router'a" bo sam producent mówi o nim "More Then Just a Router". Po tym jak skończę nad nim pracować śmiało będzie można powiedzieć o tym urządzeniu SERWER.
Swoją konfigurację postaram się wam przedstawić krok po kroku w serii tutoriali.
Docelowo zamierzam na nim postawić serwery FTP (vsftpd), SMB (samba), HTTP (?), VPN (pptpd). A to wszystko stanie pod kontrolą OpenWRT Kamikaze 7.07.
kilka recenzji:
http://www.imperium.net.pl/asus-wl500g-premium-p-4305.html
http://www.notebookcheck.pl/Prezentacja-routera-Asus-WL500g-Premium.2214.0.html
a tutaj można posłuchać o OpenWRT:
http://warszawa.linux.org.pl/plug-20061108/
Autor:
Sławomir Sikora
o
11:31
Instalując coraz to nowe aplikacje na naszej maszynie wcześniej czy później dochodzi do momentu w którym brakuje nam miejsca. Można pokusić się o SD/MMC mod'a ... można też skorzystać z ram disc'u tworzonego podczas startu systemu :D
Jak z niego korzystać? Bajecznie prosta sprawa! Wystarczy edytować plik /etc/profile i dodać do niego dwie poniższe linijki:
export PATH=$PATH:/tmp/bin:/tmp/sbin:/tmp/usr/bin:/tmp/usr/sbin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/tmp/lib:/tmp/usr/lib
. /etc/profile
ipkg -d ram install tcpdump
cat > /etc/init.d/S90local
#!/bin/sh
ipkg update
ipkg -d ram install tcpdump
Ctrl + D
chmod +x /etc/init.d/S90local
Autor:
Sławomir Sikora
o
08:50
Tunning wykonałem krok po kroku za instrukcją umieszczoną w WRT54G Ultimate Hacking. I niby wszystko było ok .. system widział kartę .. dało się na niej coś zapisać .. jednak podczas instalowania na niej dodatkowych paczek z oprogramowanie router wieszał się po chwili. A to wszystko za sprawą złej kolejności ustawiania maski GPIO oraz ładowania modułu mmc.o.
Prawidłowa kolejność to najpierw maska, potem moduł. Mój skrypt startowy wygląda tak:
root@OpenWrt:# cat /etc/init.d/S20mmc
#!/bin/sh
echo "0x7e" > /proc/diag/gpiomask
insmod mmc gpio_sd_di_pin=2
mount /mnt/mmc
mkfs.ext2 /dev/mmc/disc0/part1
ipkg install kmod-ext2
echo 'ext2' > /etc/modules.d/30-ext2
echo '/dev/mmc/disc0/part1 /mnt/mmc ext2 defaults 0 0' > /etc/fstab
Autor:
Sławomir Sikora
o
07:35
Domyślnie RouterOS w logach informuje nas o połączeniu i rozłączeniu klienta za pomocą prostych wpisów w stylu:
22:32:18 wireless,info 00:80:48:41:AF:2A@wlan1: connected
Normalnie taka informacja nam wystarcza bo wiemy że klient z mac address'em 00:80:48:41:AF:2A został połączony to interfejsu wlan1. Jeśli jednak mamy problemy z łącznością, autoryzacją itp możemy skorzystać z trybu debug który daje nam o wiele więcej informacji niż domyśle logi. Dla przykładu, ten sam klient łączy się przy włączonym trybie debug:
22:33:20 wireless,debug wlan1: 00:80:48:41:AF:2A attempts to connect
22:33:20 wireless,debug wlan1: 00:80:48:41:AF:2A not in local ACL, by default accept
22:33:20 wireless,info 00:80:48:41:AF:2A@wlan1: connected
Pierwsza linia mówi nam że ktoś próbuje się przyłączyć do naszego AP. W drugiej mamy informację o tym że AP sprawdza czy może go przyłączyć i wynik tej akcji. Ostatnia trzecia linia informuje o tym że klient został połączony. Jest to tylko jeden z przykładów informacji jakie możemy uzyskać wykorzystując tryb debug. Opis wszystkich komunikatów trybu debug znajdziecie poniżej.
Aby włączyć tryb debug wykonujemy:
[admin@MikroTik] > /system logging
[admin@MikroTik] system logging> add topics=wireless,debug action=memory
STATION MODE
[MAC]@[DEV]: lost connection, [REASON]
Stacja straciła połączenie z AP ponieważ [REASON]
[MAC]@[DEV]: failed to connect, [REASON]
Stacja próbowała połączyć sie z AP, ale połączenie nie powiodło się ponieważ [REASON]
[MAC]@[DEV]: established connection on [FREQ], SSID [SSID]
Stacja próbowała połączyć się, i próba połączenia powiodła się, z AP o SSID [SSID] na częstotliwości [FREQ]
[MAC]@[DEV]: MIC failure!!!
Sprawdzanie integralności wiadomości TKIP zakończyła się niepowodzeniem, ktoś próbuje się włamać lub wykonać DOS na sieć. Jeśli w ciągu 60 sekund otrzymamy więcej niż jedną informację MIC failure, sterownik karty przechodzi w stan "TKIP countermeasures" w którym odrzuca wszystkie przychodzące i czekające w kolejce pakiety używające TKIP.
[MAC]@[DEV]: enter TKIP countermeasures
Stacja weszła w stan "TKIP countermeasures", co oznacza że rozłączy się z AP i nie będzie się odzywać przez następne 60 sekund.
AP MODE
[DEV]: radar detected on [FREQ]
Wykryty został radar na częstotliwości [FREQ], AP podejmie prace na innym kanale.
[DEV]: data from unknown device [MAC], sent deauth [(XXX events suppressed, YYY deauths suppressed)]
Otrzymano dane od nieznanego urządzenia (tzn nie zarejestrowanego w tym AP) o mac-address'ie [MAC], AP wysłał ramkę deautoryzującą. XXX oznacza liczbę wystąpienia tego zdarzenia w celu przeciwdziałania nadmiernemu rośnięciu logów, YYY oznacza liczbę frame deautoryzujących które powinny zostać wysłane, ale nie zostały, co za tym idzie zasoby radiowe nie są marnowane na wysyłanie zbyt dużej liczby ramek deautoryzujących (maksymalnie 10 ramek na 1 sekundę).
Najczęstszym powodem pojawiania się w logach tej informacji jest sytuacja w której stacja będąca podłączona do AP, nie wie jeszcze o tym że została rozłączona, dalej wysyła dane do AP. Wiadomość deautoryzująca informuje stację że nie just już podłączona do AP.
[DEV]: denying assoc to [MAC], failed to setup compression
Inicjalizacja kompresji nie powiodła się, najczęściej z powodu zbyt dużej ilości podłączonych klientów chcących skorzystać z kompresji.
[DEV]: [MAC] is new WDS master
WDS slave ustanowił połączenie z WDS master'em, co oznacza że WDS slave zaczął akceptować klientów i pracuje jako AP.
[DEV]: [MAC] was WDS master
Wiadomość ta pojawia się w logach gdy dochodzi do rozłączenia z [MAC], co za tym idzie WDS slave deautoryzuje wszystkich klientów i zaczyna skanowanie w poszukiwaniu nowego WDS master'a.
[MAC]@[DEV]: connected [, is AP][, wants WDS]
Stacja z adresem [MAC] została połączona. Jeśli obecne jest pole "is AP" - zdalne urządzenie jest AP, w przypadku "is WDS" - zdalne urządzenie żąda zestawienia połączenia typu WDS.
[MAC]@[DEV]: disconnected, [REASON]
Połączenie ze stacją z adresem [MAC] zerwane z powodu [REASON]
[DEV]: TKIP countermeasures over, resuming
Okres milczenia w stanie "TKIP countermeasures" zakończył się, AP wraca do normalnej pracy.
[DEV]: starting TKIP countermeasures
AP wchodzi w stan "TKIP countermeasures" i przez 60 sekund będzie milczał, wszyscy klienci zostają rozłączeni.
[REASON]
"joining failed" - może przydarzyć się tylko z kratami Prism w trybie Station.
"join timeout" - występuje tylko w trybie Station, synchronizacja z AP nie powiodła się. Powodem przeważnie jest słaby sygnał, zdalny AP przestał działać, silne interferencje, inne zjawiska radiowe uniemożliwiające nawiązanie połączenia.
"no beacons" - brak ramek beacon z drugiego końca połączenia WDS. Powodem przeważnie jest słaby sygnał, silne interferencje, inne zjawiska radiowe uniemożliwiające nawiązanie połączenia.
"extensive data loss" - lokalny interfejs zadecydował aby zerwać połączenie ze zdalnym urządzeniem z powodu niemożliwo wymiany danych ze zdalnym urządzeniem mimo wielokrotnych próba nawiązania połączenia z najniższą możliwą prędkością. Powodem przeważnie jest słaby sygnał, zdalny AP przestał działać, silne interferencje, inne zjawiska radiowe uniemożliwiające nawiązanie połączenia.
"decided to deauth, [802.11 reason]" - lokalny interfejs zdecydował że zdezautoryzuje zdalne urządzenie z powodu [802.11 reason].
"inactivity" - zdalne urządzenie przez zbyt długi czas było nieaktywne.
"device disabled" - lokalny interfejs został wyłączony.
"got deauth, [802.11 reason]" - otrzymano od zdalnego urządzenia ramkę deautoryzującą z kodem powodu deautoryzacji [802.11 reason].
"got disassoc, [802.11 reason]" - otrzymano od zdalnego rządzenia ramkę deasocjującą z kodem powodu deasocjacji [802.11 reason].
"auth frame from AP" - otrzymano ramkę autoryzującą od urządzenia które było AP, przeważnie spowodowane jest to zmianą tryby pracy zdalnego urządzenia z AP na Station.
"bad ssid" - zły SSID dla połączenia WDS
"beacon from non AP" - otrzymano ramkę beacon od urządzenia które nie było AP, przeważnie z powodu zmiany trybu pracy zdalnego urządzenia z Station na AP.
"no WDS support" - urządzenie nie wspiera trybu WDS.
"failed to confirm SSID" - próba potwierdzenia SSID na drugim końcu połączenia WDS nie powiodła się.
"hardware failure" - problemy ze sprzętem lub nieoczekiwane zachowanie.
"lost connection" - może przydarzyć się tylko z kratami Prism w trybie Station.
"auth failed [802.11 status]" - występuje w trybie Station, AP nie zezwala na autoryzacją, zwracany jest kod statusu [802.11 status].
"assoc failed [802.11 status]" - występuje w trybie Station, AP nie zezwala na autoryzacją, zwracany jest kod statusu [802.11 status].
"auth timeout" - występuje w trybie Station, urządzenie w tym trybie nie otrzymało odpowiedzi na ramkę autoryzującą, powodem może być słaby sygnał lub AP z jakiegoś powodu ignoruje to urządzenie.
"assoc timeout" - występuje w trybie Station, urządzenie w tym trybie nie otrzymało odpowiedzi na ramkę asocjującą, powodem może być słaby sygnał lub AP z jakiegoś powodu ignoruje to urządzenie.
"reassociating" - występuje na AP, połączenie przypuszczalnie zostało zerwane ponieważ urządzenie uważane za połączone łączy się jeszcze raz. Wszystkie informacje dotyczące połączenia musza zostać usunięte, ponieważ podczas łączenia wszystkie parametry są negocjowane na nowo. Powodów rozłączenia należy szukać na zdalnym urządzeniu. Przeważnie jest to zerwanie połączenia z jakiegoś powodu nie informując o tym AP, na przykład zmiana w konfiguracji, utrata danych.
"compression setup failure" - połączenie niemożliwe ponieważ podłączonych jest zbyt wiele stacji, które wykorzystują kompresje.
oryginał: http://wiki.mikrotik.com/wiki/Wireless_Debug_Logs
Autor:
Sławomir Sikora
o
10:12
NetInstall
Opis:
NetInstall to program który pozwala na instalacje systemu MikroTik RouterOS na dedykowanym sprzęcie PC lub płytach RouterBoard przez sieć Ethernet. Aby przeprowadzić instalację przez sieć potrzebujemy jedną czystą dyskietkę lub kartę sieciową z obsługą PXE (porty płyt RouterBoard 100, RouterBoard 200 oraz RouterBoard 500 mają taką funkcjonalność), sieć Ethernetową pomiędzy stacją roboczą a dedykowanym sprzetem PC oraz kabel szeregowy null-modem (tylko w przypadku instalacji systemu na płytach RouterBoard).
Program działa pod Windows 95/98/Me/NT/2000/XP.
Opcje programu:
* Routers/Drivers - okno to przedstawia listę wszystkich urządzeń czekających na instalację,
* Software ID - unikalny ID niezbędny w procesie rejestracji,
* Key - klucz wygenerowany dla danego Software ID. Jeśli zamówiłeś licencję powinieneś otrzymać plik z kluczem. Możesz go wskazać na tym etapie instalacji wciskając przycisk Browse...,
* Get key... - pobieranie klucza bezpośrednio z serwera MikroTik:
- Software ID - ID dla którego będzie generowana licencja,
- Username - nazwa użytkownika w bazie serwisu MitkroTik,
- Password - hasło,
- Level - poziom licencji systemy RouterOS,
- Debit key - obciąża konto już zapłaconych ale nie wygenerowanych kluczy,
- Debit money - obciąża stan gotówki przechowywanej na koncie w serwisie MikroTik. W celu uzupełnienia konta wciśnij 'add debit' po zalogowaniu do serwisu MikroTik,
- Credit key - pobieramy klucz natychmiast a płacimy za niego później,
- Credit money - za klucz płacimy gotówką z konta, klucz pobieramy odrazy a płacimy za niego później.
* Keep old configuration - zaznaczone w procesie reinstalacji oprogramowania nie czyści konfiguracji,
* IP address/mask - adres IP oraz maska sieci jakie zostaną przypisane do interfejsu ether1 po instalacji oprogramowania,
* Gateway - brama domyślna,
* Baud rate - określa prędkość portu szeregowego,
* Configure script - skrypt systemu RouterOS który zostanie wykonany zaraz po instalacji oprogramowania. Zwróć uwagę na to, że w momencie uruchamiania skryptu system nie będzie jeszcze widział wszystkich interfejsów (przeważnie kart bezprzewodowych), dlatego sugerowane jest dodanie około 20 sekundowego opóźnienia na starcie aby być pewnym obecności wszystkich interfejsów w systemie,
* Make floppy - tworzy bootowalną dyskietkę z programem NetInstall,
* Net booting - otwiera okno Network Booting Setting w którym należy wpisać IP (z zakresu stworzonej przez nas sieci), które na czas instalacji systemu będzie przyznane komputerowi, który o nią poprosi,
* Install - zaczyna proces instalacji na wybranym urządzeniu,
* Cancel - przerywa proces instalacji,
* Sets - zawiera listę zapisanych profili z wybranymi do instalacji pakietami z aktualnego katalogu. Jeśli chcesz stworzyć swoją listę, przejdź do foldery z paczkami (plikami .npk), wybierz odpowiadające Ci paczki z listy i wciśnij przycisk Save set.
* From - zezwala na wpisanie ścieżki do folderu z paczkami lub wybranie jej przyciskiem Browse,
* Select all - zaznacza wszystkie paczki na liście,
* Select none - czyści zaznaczenie.
Uwaga
Niektóre parametry opcji Get key mogą być nieaktywne ponieważ zależą od rodzaju konta.
Przykład
Poniżej krok po kroku zostanie przedstawiona instalacja systemu na dedykowanym PC wyposażonym w adapter CF-IDE i kartę CF. Podobnie przebiega instalacja na dysku twardym.
1. Instalujemy w dedykowanym PC adapter CF-IDE z kartą CF (lub dysk twardy) jako Primary Master.
2. Łaczymy stację roboczą i dedykowany PC przewodami na wprost przez switcha jak na rysunku poniżej, lub za pomocą przewodu krosowego z pominięciem switcha.
3. Uruchom program NetInstall na stacji roboczej (do ściągnięcia tutaj). Najlepiej ściągnąć Netinstall utility with RouterOS, w którym zawarty jest program NetInstall oraz system RouterOS. Wypakuj zawartość archiwum. Zwróć uwagę na to, że istnieją dwie wersje programu NetInstall, jedna dla PC i x86 oraz druga dla płyt RouterBoard i architektury MIPS,
4. Kliknij Net booting i wprowadz IP z sieci do której jest podłączony twój interfejs cieciowy (w naszym przypadku 192.168.10.0/24) w polu Client IP address. Wprowadzone IP na czas isntalacji zostanie przydzielone dedykowanemu PC,
5. Następnie przekonfiguruj BIOS dedykowanego PC lub BIOS znajdującej się w nim karty sieciowej tak aby komputer startował przez sieć i restartujemy go.
6. Podczas startu urządzenie będzie starało się wystartować przez sieć. Jeśli mu się to uda skomunikować z naszą stacją roboczą otrzyma od niej wpisany przez nas w Network Booting Settins adres IP co widać na poniższych screenach. Zaraz po tym, urządzenie na którym chcemy zainstalowac system pojawi się nam na liście Routers/Drives w programie NetInstall.
7. Zaznaczamy urządzenia na liście, przechodzimy do folderu w którym znajduje się paczka z systemem, zaznaczamy ją, jeśli chcemy to wpisujemy IP jakie ma otrzymać interfejs ether1 po instalacji lub wybieramy skrypt jaki ma zostać wykonany po instalacji, a następnie wciskamy przycisk Install.
8. Gdy proces instalacji zakończy się wciskamy w konsoli [Enter] lub przycisk Reboot w programie NetInstall.
9. Zmieniamy ustawienia BIOS tak aby dedykowany router startował z IDE.
Autor:
Sławomir Sikora
o
22:15