Video of the week

I've found this great video and I recommend you to watch if you are interested in wireshark and filtering methods

Debian 9 - LVM configuration

Hi, today I'm presenting an example of the LVM configuration during Debian 9.5 installation. I found this article while I was looking for various LVM configurations, recommended system files for each partition type, etc - https://wiki.debian.org/LVM - it's worth taking the advantage of the flexibility of this approach. Watch my video and let me know if you like it (just drop a comment).

Write comment (0 Comments)

[ORACLE] The Network Adapter could not establish the connection

Let's assume you've started your Oracle database properly. It's mounted and opened. The LISTENER process is running. You use ps -ef | grep ora command to verify pmon and other processes. You use tnsping to verify if the service is accessible. Everything seems to be ok. However, when you run SQL Developer on your local machine (not on the server), you get an error message which says that the network adapter could not establish the connection - it happened to me while running Oracle 12c on one of my virtual machines. When I was trying to connect to the database from my laptop - I couldn't.

I launched Wireshark and set the filter to display only packets related to the communication between the server and my laptop. I quickly got an answer to the problem - I found that every time I was trying to connect to the server, it would reject each and every attempt. I got ICMP Type 3 Code 10 - Communication with Destination Host is Administratively Prohibited - Firewall, which was running on Oracle Linux 7, was blocking the communication. To simply open port number 1521 I used the following command:

 firewall cmd

After changing firewall configuration I was able to connect to my Oracle database via SQL Developer.

Write comment (0 Comments)

Programowanie z gdb

 

Podstawy programowania z debuggerem gdb.

Kiedyś kiedyś, za górami i za lasami na lekcji fizyki byłem świadkiem pewnego zdarzenia. Pan profesor ośmieszył kolegę pytając się go o występowanie zjawiska nad którym pastwił się niemal przez całą lekcyjną godzinę. Okazało się, że kolega przybrał formę mazaka koloru zielonego (to dopiero było zjawisko transformacji) i nie potrafił odpowiedzieć. Profesorowi chodziło o to, że odpowiedzią na pytanie był np telefon, którym mazak bawił się przez całą lekcje - słabo jest coś mieć i tylko (bo fajnie jest też wiedzieć jak to coś działa).

Napisać w miarę funkcjonalny program to nie sztuka. Pamiętam, że wiele z tego czego uczyłem się na poczatku brałem sobie po prostu na słowo honoru i nie interesowało mnie zbytnio jak to działa. Czasy się zmieniają.

  1. #include <stdio.h>
  2.  
  3. void f(int x)
  4. {
  5. int a;
  6. static int b;
  7. int *wskaznik_bss = &amp;b;
  8. printf("0x%p adres na stercie.\n",wskaznik_bss);
  9. }
  10.  
  11. int a_global;
  12. static int b_global;
  13.  
  14. int main()
  15. {
  16. unsigned int aa = 0xab;
  17. unsigned int bb[2] = { 0xbc, 0xbd };
  18. static int cc;
  19.  
  20. unsigned int *wsk_aa = &amp;aa;
  21. unsigned int *wsk_bb = bb;
  22. printf("Zmienna wskaznikowa *wsk_aa: %p\n",wsk_aa);
  23. printf("Zmienna wskaznikowa *wsk_bb: %p\n",wsk_bb);
  24. f(4);
  25. return 0;
  26. }

W przykładowym kodzie mamy zmienne lokalne funkcji f oraz lokalne dla funkcji main. Funkcja main w bezpośrednim zakresie posiada dwa wskaźniki ustawiona na zmienne aa oraz bb.

Uruchomimy program, zatrzymamy się na początku funkcji main i zobaczymy co kryje się w tych zmiennych:

$ gdb zmienne
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <<a href="http://gnu.org/licenses/gpl.html>">http://gnu.org/licenses/gpl.html></a>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...
(gdb) b main
Breakpoint 1 at 0x8048419: file zmienne.c, line 23.
(gdb) r
Starting program: /home/flash/Ubuntu/gdb-tutorial/zmienne
 
Breakpoint 1, main () at zmienne.c:23
23              unsigned int aa = 0xab;
(gdb) info locals
aa = 3087702128
bb = {3087527924, 134520820}
wsk_aa = (unsigned int *) 0x80484a9
wsk_bb = (unsigned int *) 0xbfeb82c8
cc = 0

Read more: Programowanie z gdb
Write comment (0 Comments)

/etc/X11/xorg.conf

Przychodzą takie czasy, kiedy coś w systemie musi się (...). Wczoraj postanowiłem, że przećwiczę na bt4 Kasperskiego, Avast'a oraz multimedialny kombajn Banshee. Zainstalowałem dokładniej w takiej kolejności. Kaspersky - mój antywirusowy faworyt - nie zaproponował mi umowy na okres próbny więc musieliśmy się rozstać:

  1. sudo dpkg -l | grep kav sudo dpkg --purge kav4ws
  2. /* opcja --purge usuwa pliki konfiguracyjne, dpkg -r kav4ws - pozostawia pliki konfiguracyjne aplikacji */

Instalacja Kasperskiego pozostawia po sobie jeszcze 2 elementy:

  1. userdel kluser
  2. groupdel klusers

Po instalacji Avasta i Banshee zresetowałem bt4 no i czekam.. Okno logowania jest - super - ale zaraz, klawiatura nie działa, touchpad nie działa.

Zaczyna się dochodzenie - różnicowanie:

1. Czy problemem jest sterownik?

Podłączam mysz zewnętrzną przez USB i działa! Świetnie - przełączam się w tryb tekstowy.

2. W trybie tekstowym klawiatura działa - co to oznacza? - problem z serverem X ( X11, X-ami, X-serverem, systemem X Window - jak kto woli )

Odrzucam zatem hipotezę ze sterownikiem. Przełączam się na midnight commandera i lokalizuję plik /etc/X11/xorg.conf - zawierał właściwie tylko 3 sekcje i ani trdycyjnego wpisu odnośnie:

  1. Section "InputDevice"
  2. // Keyboard, TouchPad Mouse
  3. EndSection

Poszukałem asekuracyjnie wpisów z pamiętników innych userów i natrafiłem na listing Xorg.0.log z podobnym problemem, w którym poduważyłem jeden tip:

  1. cat /var/log/Xorg.0.log | more
  2. /* ... */
  3. Markers: (--) probed, (**) from config file, (==) default setting,
  4. (++) from command line, (!!) notice, (II) informational,
  5. (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
  6. /*...*/
  7. (II) The server relies on udev to provide the list of input devices.
  8. If no devices become available, reconfigure udev or disable AutoAddDevices.
  9. /*...*/

 Może więc reinstalacja udev?

  1. sudo apt-get install udev --reinstall

- i nic nowego w tym temacie.

3. Rekonfiguracja X Servera z trybu recovery?
Po ustawieniu na nowo opcji związanych z klawiaturą i restarcie systemu temat 'klepsydry' dla klawiatury na bramie był wciąż aktualny :/ może

  1. sudo dpkg-reconfigure xserver-xorg

- może jeszcze nie teraz, czemu? Na koniec jeśli wcześniej nie wyjdzie. Dlaczego? Dużo zapisywania na kartkę, wymagana znajomość sprzętu etc.

4. X -configure ?
Po utworzeniu pliku 'skeleton' dla xorg.conf (xorg.conf.new) i skopiowaniu go z katalogu domowego do /etc/X11/ klawiatura i touchpad ruszyły

  1. X -configure
  2. sudo cp /home/flash/xorg.conf.new /etc/X11/xorg.conf

X11 po utworzeniu pliku próbuje zapisać go na nowo poprzez przegląd hardware'u. W pliku xorg.conf pojawiły się najbardziej interesujące mnie wpisy:

  1. Section "ServerLayout"
  2. Identifier "X.org Configured"
  3. Screen 0 "Screen0" 0 0
  4. InputDevice "Mouse0" "CorePointer"
  5. InputDevice "Keyboard0" "CoreKeyboard"
  6. EndSection
  7.  
  8. Section "InputDevice"
  9. Identifier "Keyboard0"
  10. Driver "kbd"
  11. EndSection
  12.  
  13. Section "InputDevice"
  14. Identifier "Mouse0"
  15. Driver "mouse"
  16. Option "Protocol" "auto"
  17. Option "Device" "/dev/input/mice"
  18. Option "ZAxisMapping" "4 5 6 7"
  19. EndSection

Na koniec dodam, że przy tego typu operacjach musem jest robienie backapu plików konfiguracyjnych a po udanej restauracji najlepiej odrazu zrobić obraz systemu.

Write comment (0 Comments)

dnsmasq (dd-wrt)

Od jakiegoś czasu miałem problem z pobieraniem plików z serwerów RAPIDSHARE - FILESONIC - FILESERVE ( z innych nie korzystam ). Problem polegał na zrywaniu połączeniu nawet przy 98% pobranego pliku. Pozostałe programy do ściągania plików działają bez zarzutu więc ostatnimi czasy przerzuciłem się na Torrent. Pojawił się jednak poważny problem z kategorii katastrofa. Obejrzałem kolejny odcinek ER z gościnną rolą John'a Leguizamo i postanowiłem sprawdzić jego dotychczasowy dorobek artystyczny poza filmami "Romeo i Julia" czy "Życie Carlita". Okazało się, że to Człowiek Orkiestra i całkiem niedawno grał jedną z głównych ról w serialu "The Kill Point". Postanowiłem zassać bo bardzo lubię aktora a że jest zdolny to i w serialu musiał pokazać klasę. Okey, szukam więc na The Pirate Bay i cyk - torrent z całym sezonem ( 8 odcinków ) - super, ale brak połączenia to tracker :/ - chujnia. Trzeba działać i szukać linków na pebie albo exsite - prawie bryndza, prawie bo mam aktywne linki do fileserve w PL ale wiem, że są z tymi połączeniami problemy.

Plan działania? Odpalam Wireshark'a i obserwuję całą transmisję - 15minut cisza, 18minut spokój,  super nic się nie dzieje. Zostało pare minut ale po kolejnych 3minutach BOOOOM!!! Transfer stoi - no do ku... nędzy - kląłem tak tego dnia jeszcze 3 razy. Poszukałem trochę w necie i najczęściej trafiałem na universalne zło i przyczyny wszelkich problemów czyli WIRUSY. Taka odpowiedz jest dobra na wszystko. Problem w tym, że problem był obecny zarówno w Linuxie jak i na Windowsie. Czyli problem stanowi raczej coś co łączy te dwa elementy - co to może być? Musi to być router a nie wirus.

Z logów Wiresharka - nie przytoczę nawet skrótu z 200MB pliku - wynikało, że w pewnym momencie po wysłaniu ACK'a przez mój host po reasemblacji pakietu dochodziło do masowych zapytań w kierunku serwera DNS. Było ich bardzo dużo i zawierały błędy - sugerowane przez Wireshark'a checksum offloadig - odsyłam do [ źródeł ], z których wyczytać można również:

  1. You can do two things to avoid this checksum offloading problem:
  2. Turn off the checksum offloading in the network driver, if this option is available.
  3. Turn off checksum validation of the specific protocol in the Wireshark preferences.

Kolejny problem w tym, że błędy 'checksum offloading' mogą być błędnie interpretowane przez Wireshark'a więc niekoniecznie błąd musi być błędem. Jadę dalej i szukam czegoś ala cokolwiek TIMEOUT  w ustawieniach routera i znalazłem 3 - MAX CONNECTIONS - TCP TIMEOUT - UDP TIMEOUT. Pierwszej opcji nie zwiększałem z 1024 bo mój 8MB Router by tego nie ścierpiał. UDP TIMEOUT && TCP TIMEOUT - te ustawienia również nie mogły mieć wpływu na transfer ponieważ komunikacja podczas downloadu jest cały czas aktywna - tzn. dane krążą cały czas w obie stronty tzn. do mnie dane a do serwera potwierdzenia. UDP TIMEOUT ustawiłem "tak o" na 120 sekund, TCP na 180 sekund - jeśli przeglądarka wysyła pakiety keep-alive co 60 sekund to mógłbym tylko w kontekście przeglądania stron obnizyć oba TIMEOUTy do 90-120 (asekuracyjnie). Te ustawienia wpływają jednak na zużycie pamięci routera i trzeba mieć to na uwadzę - im większe TIMEOUTy dla różnych komunikacji TCP tym np. może wyłączenie HTTPD? ( killall httpd - włączenie: httpd [enter])

Ale na tutorialach DD-WRT znalazłem ciekawy skrypt apropo zwiększenia domyślnych timeoutów na poczet innych aplikacji więc wgrałem go sobie na startup a znajdziesz go [ tu ] - i wiele innych ciekawostek apropo ROUTER SLOWDOWN. Okey wracam myślami do DNS'a - z logów Wireshark'a dało się wypatrzeć, że te wszystkie requesty pochodziły od stron z zakładek w Firefoxie a miałem ich otwartych całe mnóstwo - ostatnie zapytanie DNS dotyczyło ostatniej zakładki którą była strona FILESERVE - coś musiało być na rzeczy. Postanowiłem zalogować się na Router i wykonać tam małą operację:

 ddwrt

Read more: dnsmasq (dd-wrt)
Write comment (0 Comments)
Page 1 of 2