miten Verkkoliikennevirrat – aloittaminen
Gideon T. Rasmussen – CISSP, CFSO, CFSA, SCSA
ongelman vianmääritys edellyttää, että tiedät, miten verkkoliikenne kulkee normaalioloissa. Tässä artikkelissa kerrotaan, mitä tapahtuu, kun verkkoselainta käytetään WWW-sivuston käyttämiseen.
kun verkkosivun nimi on syötetty verkkoselaimeen, tapahtuu sarja viestintää eri protokollien kautta. Alla oleva taulukko kuvaa, miten verkkoliikenne kulkee:
rivi:
|
pöytäkirja:
|
lähde:
|
määräpaikka:
|
tiedot:
|
1
|
ARP
|
10.0.1.13
|
Broadcast
|
kenellä on 10.0.1.1? Kerro 10.0.1.13
|
2
|
ARP
|
10.0.1.1
|
10.0.1.13
|
10.0.1.1 is klo 00: 80: c8: 57:d3: aa
|
3
|
DNS
|
10.0.1.13
|
10.0.1.1
|
vakiokysely A www.cyberguard.com
|
4
|
DNS
|
10.0.1.1
|
10.0.1.13
|
vakio kyselyvastaus CNAME cyberguard.com A 64.94.50.88
|
5
|
TCP
|
10.0.1.13
|
64.94.50.88
|
1939 > http
|
6
|
TCP
|
64.94.50.88
|
10.0.1.13
|
http > 1939
|
7
|
TCP
|
10.0.1.13
|
64.94.50.88
|
1939 > http
|
8
|
HTTP
|
10.0.1.13
|
64.94.50.88
|
GET / HTTP/1.1
|
9
|
HTTP
|
64.94.50.88
|
10.0.1.13
|
HTTP/1.1 200 OK
|
10
|
HTTP
|
64.94.50.88
|
10.0.1.13
|
HTTP Continuation
|
11
|
TCP
|
10.0.1.13
|
64.94.50.88
|
2577 > http Seq=388864 Ack=37076821 Win=8241 Len=0
|
12
|
TCP
|
10.0.1.13
|
64.94.50.88
|
2577 > http Seq=388864 Ack=37077089 Win = 0 Len=0
|
ARP-protokolla
ennen kuin järjestelmät voivat kommunikoida, niiden on tiedettävä toistensa laiteosoitteet. Tähän tarkoitukseen käytetään Osoiteratkaisuprotokollaa (Arp). Määrityksestään työasema tietää DNS-palvelimen IP-osoitteen.
linja # 1
protokolla: | lähde: | kohde: | tieto: |
ARP | 10.0.1.13 | Broadcast | kenellä on 10.0.1.1? Kerro 10.0.1.13 |
työasema lähettää verkossaan oleville laitteille pyynnön, jossa kysytään” kenellä on ” IP-osoite, jonka kanssa se tarvitsee kommunikoida.
linja # 2
protokolla: | lähde: | kohde: | tieto: |
ARP | 10.0.1.1 | 10.0.1.13 | 10.0.1.1 is klo 00: 80: c8: 57:d3: aa |
Etäjärjestelmä vastaa antamalla laitteiston osoitteen. Nyt kun työasema tietää etäjärjestelmän laitteiston osoitteen, se voi kommunikoida sen kanssa.
DNS-protokollaa
Domain Name System (DNS) – protokollaa käytetään ratkaisemaan järjestelmän nimet IP-osoitteiksi. Kun WWW-sivuston nimi syötetään selaimeen, työaseman on tiedettävä vastaava IP-osoite, jotta se pääsee sivustoa isännöivälle www-palvelimelle.
linja # 3
protokolla: | lähde: | kohde: | tieto: |
DNS | 10.0.1.13 | 10.0.1.1 | Vakiokysely a www.cyberguard.com |
työasema pyytää DNS-palvelinta antamaan Web-palvelimen Hostingin IP-osoitteen www.cyberguard.com.
rivi # 4
protokolla: | lähde: | kohde: | tieto: |
DNS | 10.0.1.1 | 10.0.1.13 | vakio kyselyvastaus CNAME cyberguard.com A 64.94.50.88 |
DNS-palvelin vastaa IP-osoitteella, joka vastaa www.cyberguard.com.
TCP-protokolla
tiedonsiirtoon käytetään TCP-protokollaa (Transmission Control Protocol). Nämä kolme seuraavaa linjaa muodostavat TCP: n kolmijakoisen kädenpuristuksen:
linja # 5
protokolla: | lähde: | kohde: | tieto: |
TCP | 10.0.1.13 | 64.94.50.88 | 1939 > http |
työasema käynnistää yhteyden WWW-palvelimeen (SYN). SYN on lyhenne sanoista ” sync.”
Rivi # 6
Pöytäkirja: | lähde: | kohde: | tieto: |
TCP | 64.94.50.88 | 10.0.1.13 | http > 1939 |
WWW-palvelin vastaa takaisin osoittaen, että se on valmis lähetettäväksi (SYN ACK). SYN ACK on lyhenne sanoista ” synkronoi kuittaus.”
rivi # 7
protokolla: | lähde: | kohde: | tieto: |
DNS | 10.0.1.13 | 64.94.50.88 | 1939 > http |
työasema lähettää www-palvelimelle ilmoittaen, että se alkaa lähettää liikennettä (ACK). Tämä kuittaus osoittaa, että TCP-yhteys on muodostettu ja liikenne voi alkaa virrata.
HTTP-protokolla
Hyper Text Transfer Protocol (HTTP) palvelee verkkosivuja. Voit nähdä tästä todisteita selaimesi Internet-osoitteesta (eli http://www.cyberguard.com).
Linja # 8
Protokolla: | Lähde: | Kohde: | Tieto: |
HTTP | 10.0.1.13 | 64.94.50.88 | Hae / HTTP/1.1 |
selain avaa yhteyden WWW-palvelimeen.
linja # 9
protokolla: | lähde: | kohde: | tieto: |
HTTP | 64.94.50.88 | 10.0.1.13 | HTTP/1. 1 200 OK |
verkkopalvelin hyväksyy yhteyden.
Linja # 10
Protokolla: | Lähde: | Kohde: | Tieto: |
HTTP | 64.94.50.88 | 10.0.1.13 | HTTP jatkoa |
HTTP – jatkumorivit kuvaavat, missä html-sivun sisältö lähetetään. Se sisältää tekstiä, linkkejä jne.
Takaisin TCP-protokollaan
rivi # 11
protokolla: | lähde: | kohde: | tieto: |
TCP | 10.0.1.13 | 64.94.50.88 | 2577 > http Seq=388864 Ack=37076821 Win=8241 Len=0 |
tämä rivi toistetaan itse asiassa neljä kertaa. Työpiste kuittaa viimeisen paketin.
linja # 12 (RST)
protokolla: | lähde: | kohde: | tieto: |
TCP | 10.0.1.13 | 64.94.50.88 | 2577 > http Seq=388864 Ack=37077089 Win = 0 Len=0 |
työasema lähettää nollauksen repien tehokkaasti TCP-yhteyden.
Tcpdump ja eteerinen
on tärkeää huomata, että tcpdump antaa erilaisia yksityiskohtia riippuen siitä, missä se toimii verkossa. Tässä esimerkissä tcpdump ajettiin palomuurin sisäisellä käyttöliittymällä suoraan kytketyllä työasemalla. Jos tcpdumpia käytettäisiin saman liikennevirran seuraamiseen ulkoisella rajapinnalla, lähteen IP-osoite näyttäytyisi palomuurin ulkoisena rajapintana, mikäli dynaaminen verkko-osoitteen käännös (Dnat) Olisi käytössä. Välityspalvelimen kulun seuraamiseksi on järkevää ajaa tcpdump sekä sisäisillä että ulkoisilla rajapinnoilla, sillä valtakirja toimii välikätenä lähteen ja kohteen välillä.
taulukon lähteenä oli Etherealin kautta katsottu tcpdump-tiedosto. Käytetty tarkka syntaksi oli: ”tcpdump-vvpni dec1-s1514-w /archive2/dec1.DMP host 10.0.1.13”. Tcpdump-komennossa on laajat vaihtoehdot hyvin spesifisten liikennevirtojen (esim.lähde/kohde, portit ja Boolen lausekkeet) tallentamiseen. Jos haluat lisätietoja, kirjoita komentoriville ”man tcpdump”. Windows-versio on Windump (http://windump.polito.it).
Ethereal on hyvä työkalu tcpdump-tiedostojen katseluun. Se on vapaasti saatavilla http://www.ethereal.com.
jotkin tcpdumpin porteista saattavat olla sinulle tuntemattomia. Porttinumeroiden tuorein luettelo löytyy kohdasta http://www.iana.org/assignments/port-numbers (per RFC 3232).