17 January 2013

Sinhronizacija sa NTP serverom


Za neke servise je od presudnog značaja da na serveru bude tačno vrijeme, sinhronizovano sa nekim od javnih NTP servera. Evo kako da se to lako podesi na RedHat-olikim distribucijama:


  1. Potrebno je imati instaliran servis ntp. Lako se instalira komandom
    #yum install ntp
  2. NTP daemon staviti u startup:
    #chkconfig ntpd on
  3. Sinhronizovati sistemski časovnik sa nekim od javnih NTP servera:
    #ntpdate pool.ntp.org
  4. Startovati NTP servis:
    #service ntpd start

16 January 2013

nc mini howto


Nc ili Netcat je alatka za dijagnostiku i ispitivanje mreže. Sa njom je moguće kreirati bilo koju vrstu konekcije i ispitivati kako se mreža ponaša.

Opcije:

  1. -c string - Specifikuje shell komandu koja će se izvršiti poslije konekcije. Navedeni string se prosljeđuje /bih/sh -c da bi se izvršio. Ukoliko /bin/sh ne radi, koristiti opciju -e.
  2. -e filename - Označava fajl koji će se izvršiti poslije konekcije.
  3. -l - Listen mode - za dolazeće konekcije. Primjer: na serveru se pokrene nc -l 2389. Port 2389 treba biti propušten na firewall-u. Na klijentskoj strani unijeti nc 172.18.2.116 2389, gdje je navedena IP adresa adresa servera. Poslije toga, svaka linija teksta potvrđena Enterom će se prikazati na ekranu servera.
    Na ovaj način je moguće prenositi i sadržaj tekstualnih fajlova. Na strani servera treba biti napravljen prazan fajl test i otvorena konekcija komandom
    nc -l 2389 > test. Na klijentskoj strani izvršiti: cat test.txt | nc 172.18.2.116 2389. Sadržaj tekstualnog fajla će umjesto na ekranu biti ispisan u fajlu test na serveru.
  4. -n - Numeričke vrijednosti IP adresa, bes DNS razrješavanja.
  5. -p - Specifikuje koji će lokalni port nc koristiti kao source port. Ova opcija se ne koristi sa opcijom -l
  6. -s - Specifikuje source adresu sa koje dolazi konekcija. Ne koristi se sa opcijom -l.
  7. -u - Koristi UDP protokol za konektovanje umjesto podrazumijevanog TCP-a.
  8. -v - Verbose mode. Za više detalja koristiti -vv.
  9. -w - Prekida sesiju poslije navedenog broja sekundi
  10. -z - Zero I/O mode. Koristi se za skeniranje portova.

Primjeri korišćenja:

  1. nc -v 172.18.1.169 -z 1-65535 - U verbose mode-u skenira portove navedenog hosta u rangu od 1 do 65535. Ako je neki od portova otvoren, prikazaće poruku succeeded.
  2. nc -p 31337 host.example.com 42 - Otvara TCP konekciju na port 42 na navedenom hostu, a konekcija dolazi sa source porta 31337
  3. nc -u host.example.com 53 - Otvara UDP konekciju na navedeni host na port 53.

10 January 2013

iproute2 paket komandi


iproute2 paket je osmislio Aleksej Kuznjecov, čovjek koji je napisao i ruting kod za Linux 2.2. To je set komandi kojima se mijenjaju neke standardne komande za podešavanje i dijagnostiku mreže, tj. prikazivanje i modifikovanje ruta, podešavanje mrežnih interfejsa, politika rutiranja i tunela. Ima nekoliko komandi - navedene su u sljedećoj tabeli:


stara komanda
iproute2 komanda
arpip neighbor
ifconfigip link, ip addr
iptunnelip tunnel
iwconfigiw
nameifip link, ifreneame
netstatip route, ip maddr
routeip route


Sintaksa komande je:

ip [OPTIONS] OBJECT [COMMAND [ARGUMENTS]]

OBJECT  može imati vrijednosti:
  1. link - Fizički ili logički mrežni adapter.
  2. address - IPv4 ili IPv6 adresa na mrežnom adapteru.
  3. neighbour - ARP ili NDISC keš stavka.
  4. route - Osnovna stavka u ruting tabeli.
  5. rule - Pravilo u ruting tabeli.
  6. maddress - Multicast adresa
  7. mroute - Multicast ruting keš.
  8. tunnel - Tuneliranje preko IP-a.

Primjeri korištenja komande ip:

  1. ip address add 172.18.2.161/24 dev eth3 - Dodaje IP adresu na interfejs.
  2. ip address delete 172.18.2.161/24 dev eth3 - Briše P adresu sa interfejsa eth3.
  3. ip address show - Prikazuje detalje za sve interfejse. Korištenjem komande dev mogu se prikazati detalji samo za navedeni interfejs.
  4. ip link set eth0 up - Podizanje interfejsa eth0. Moguće je koristiti i ip link set eth0 down za disable-ovanje interfejsa.
  5. ip link show - Prikazuje detalje za interfejse, kao što su ID interfejsa, imena interfejsa, njihovi flagovi, mtu, kao i
  6. ip route add 10.13.53.0/24 via gw 172.18.1.168 - Dodavanje rute koja kaže da sve zahtjeve za mrežu 10.13.53.0/24 šalje na gateway 172.18.1.168.
  7. ip route add 10.13.53.0/24 dev tun0 - Dodavanje rute koja kaže da sve zahtjeve za mrežu 10.13.53.0/24 šalje na interfejs tun0.
  8. ip route add default via 172.18.2.1 - Setovanje default gateway-a - Svi paketi koji su adresirani na neku mrežu za koju ne postoji posebna ruta se šalju na default gateway 172.18.2.1
  9. ip route default gw 172.18.2.1 eth0 - Setovanje default gateway-a na interfejsu eth0.
  10. ip route delete 10.13.53.0/24 dev tun0 - Briše rutu 10.13.53.0/24. 
  11. ip route show - Prikazuje ruting tabelu.

08 January 2013

tcpdump mini howto


Tcpdump je packet sniffer program - jedan od osnovnih alata za dijagnostiku mreže. On "hvata" pakete koji prolaze kroz mašinu i može da ih sačuva u fajl. Ovaj fajl se kasnije može analizirati i samom komandom tcpdump, ali i alatima kao što je Wireshark. Mogu se čuvati čitavi paketi ili samo njihovi headeri. Pokretanje komande bez argumenata će na ekran ispisivati saobraćaj sa prvog od mrežnih interfejsa (ignoriše se lo).

Prilikom čuvanja rezultata izvršavanja u fajl, tcpdump će sačuvati samo prvih 68 bajtova podataka iz svakog paketa. Ostatak se odbacuje. Ovo ponašanje je moguće podešavati opcijom -s.

Moguće je koristiti i filtere paketa. Takvi izrazi su: port, portrange, ether, net, host. Uz njih se mogu koristiti i prefiksi (ili sufiksi) src i dst. Ako se prefiksi ili sufiksi ne navedu, podrazumijeva se saobraćaj u oba smjera.
Tcpdump omogućava pravljenje kompleksnih filtera korištenjem izraza not, and, or, length, greater, less, kao i korištenje zagrada u cilju grupisanja izraza, tj. određivanja prioriteta izvršavanja.

Opcije tcpdumpa
  1. -A - Prikazuje sadržaj capture-ovanih paketa u ASCII formatu.
  2. -c - Capturuje samo određen broj paketa.
  3. -e - Prikazuje ethernet header svakog paketa.
  4. and - Kvalifikator - logičko i. Koristi se u kompleksnim upitima za tcpdump.
  5. ether - Filtriranje paketa po Ethernet (MAC) adresi. Može se koristiti u oblicima ether src, ether dst i ether host.
  6. host - filtriranje paketa po imenu hosta. Može da se koristi i u oblicima host, src host i dst host.
  7. -i - Capturuje pakete sa određenog mrežnog interface-a.
  8. less N - Capture-uje pakete koji su manji od N bajtova. Vidjeti primjer.
  9. -n - Ne razrješava DNS imena. Ovo omogućava brži rad komande i smanjuje ukupnu količinu paketa koji se vide na ekranu (nema DNS upita)
  10. net - Filtriranje paketa po subnetu. Može se koristiti u oblicima src net, dst net  i net. Ova komanda zahtijeva i korišćenje mask parametra.On se može navoditi po staroj notaciji navođenjem netmaska ili po CIDR notaciji. Vidjeti primjere.
  11. not - Izraz. Koristi se za filtriranje saobraćaja - ako ne želimo da tcpdump prikazuje saobraćaj po nekom portu.
  12. or - Kvalifikator - logičko ili. Koristi se u kompleksnim upitima za tcpdump.
  13. port - Koristi se za označavanje porta. Ako se navedu izrazi src ili dst prije njega, može se specifikovati da li se filter odnosi na dolazni ili odlazni saobraćaj. Ako se ništa ne navede, izraz port će filtrirati sav saobraćaj po nekom portu. Primjer:
    tcpdump -n dst port 80 - Prikazuje sve odlazne HTTP pakete.
  14. portrange - Radi vrlo slično kao izraz port, međutim, odnosi se na rang portova. Takođe može da ima prefikse src i dst.
  15. -r - Koristi se za čitanje fajla sa capture-ovanim paketima.
  16. -s - Koristi se prilikom snimanja rezultata u fajl i označava koliko će se podataka snimiti iz svakog paketa. Ako se navede vrijednost 0, snimiće sve pakete u kompletu (neće odbacivati ostatak od prvih 68 bajtova).
  17. -x - Prikazivanje sadržaja TCP paketa u heksadecimalnom obliku. Podrazumijevano, prikazaće prvih 82 bajta paketa (ethernet header se ne prikazuje). Komandom -s je moguce kontrolisati broj bajtova koji se prikazuju, a korišćenjem komande -xx umjesto -x ce se prikazati i ethernet header - dodatnih 14 bajtova.
  18. -v - Verbose mode. Korištenje opcije -vv daje više detalja, a korišćenje -vvv još više detalja.
  19. -w - Snima izlaz tcpdumpa u fajl
Primjeri korišćenja:
  1. tcpdump -ni eth0 not port 22 - Filtrira saobraćaj tako da prikazuje sve pakete osim onih koji dolaze na port 22 (SSH). Ovo je posebno korisno ako se preko SSH pristupa sistemu - ignoriše sve pakete koji se razmjenjuju između SSH klijenta i servera. Takođe, u komandi je rečeno da ne razrješava DNS imena i da se "sluša" samo interfejs eth0.
  2. tcpdump -c 10 - Capturuje samo prvih 10 paketa.
  3. tcpdump -w file.cap -s 0 - U navedeni fajl snima rezultate izvršavanja komande i to čitave data pakete, bez odsijecanja.
  4. tcpdump -r file.cap - Čitanje paketa iz navedenog fajla
  5. tcpdump -e -n not port 22 - Prikazuje ethernet headere svakog paketa osim paketa koji dolaze na port 22.
  6. tcpdump -n src portrange 22-23 - Primjer filtriranja paketa za SSH i Telnet saobraćaj.
  7. tcpdump src host example.com - Ispisuje sve pakete koji dolaze sa domena example.com.
  8. tcpdump src net 81.93.11.100 mask 255.255.255.0
  9. tcpdump src net 81.93.11.100/24 - Obe varijante (klasična i CIDR notacija) rade isto, a to je filtriranje paketa koji dolaze sa mreže 81.93.77.100.
  10. tcpdump -XX greater 100 and \(src host google.com or src host microsoft.com\) - Prikazuje sve pakete (uključujući i Ethernet header) veće od 100kb, koji dolaze sa domena google.com ili microsoft.com. Karakter "\" znači escape sekvencu koja se navodi ispred znaka zagrade, da bi se zagrada u takvom obliku i poslala komandi tcpdump. Ona određuje prioritet izvršavanja komandi. U ovom slučaju, da nema zagrade, nikada ne bi došlo do capture-ovanja paketa sa microsoft.com.
    Ovaj primjer se mogao napisati i kao
    tcpdump -XX greater 100 and \(src host google.com or microsoft.com \).
    Izostavljen je prefiks src host za domen microsoft.com. Ovo se koristi zbog pojednostavljenja korišćenja komande i boljeg pregleda, tj. kada se kvalifikator koristi dva ili više puta u nizu, dovoljno ga je navesti samo za prvi host.
  11. tcpdump -w l_1024.pcap less 1024 - Capture-uje pakete koji su manji od 1024 bajta i snima ih u fajl l_1024.pcap.

Uvod

Ovaj blog bi trebao posluziti kao podsjetnik za neke stvari koje se pamte samo vremenom, kroz korištenje. Posebno će mi biti drago ako još nekom bude od pomoći u rješavanju problema.

Dobrodošli su svaki konstruktivan komentar i sugestija.