Dynamic Host Configuration Protocol
Dynamic Host Configuration Protocol (DHCP) është një protokol i cili mundëson konfigurimin automatik pajisjeve të lidhura në rrjetat IP. DHCP është i bazuar në Bootstamp protokolin (BOOTP), me dallimin se DHCP mundëson caktimin automatik të IP adresave si dhe me disa veti tjera të perkufizuara në RFC 1533[1]. DHCP lehtëson punën për administratorët e rrjetës me qenë se përjashton nevojën që secila pajisije e rrjetës të konfigurohet në veçanti. Kohëve të fundit DHCP implementohet edhe në router-ët e thjeshtë që përdoren në shtëpi, gjë që e bën të lehtë shtimin e pajisjeve të reja në rrjetin e shtëpisë për përsonat që nuk kanë njohuri mbi rrjetat kompjuterike.
Historia
RedaktoDHCP fillimisht është definuar në RFC 1531[2] në vitin 1993 si zgjerim i BOOTP protokolit. Arsyeja e zgjerimit ishte nevoja për konfigurim automatik të klientëve të cilën nuk e kishte BOOTP. Më vonë një përmirësim tjetër i DHCP-së është definuar në RFC 2131[3]. Në RFC 2131 është shtuar një mesazh i ri, DHCPINFORM si dhe janë shtuar disa veti tjera për mesazhet.
Detajet teknike
RedaktoDHCP serveri dëgjon në portin 67 ndërsa klienti në 68. Komunikimi bëhet përmes protokolit UDP. Kur një pajisje ka nevojë për parametrat e rrjetës, bën broadcast një DHCPDISCOVER paketë në portin 67. Nëse në rrjetë ekziston një DHCP server, ai do t’i përgjigjet klientit me një DHCPOFFER, e cila në vehte përmban konfigurimin të cilin serveri e sygjeron për klientin. Nëse klienti pajtohet me parametrat e ofruar dërgon tek serveri një DHCPREQUEST, me anë të së cilës kërkon nga serveri konfigurimin e dhënë. Nëse parametrat e kërkuara nuk kanë ndryshuar gjatë kësaj kohe, serveri dërgon një DHCPACK, lajmërim që klienti mund t’i përdor parametrat e dhënë. Nëse për ndonjë arsye serveri nuk mund ta lëshojë këtë adresë, ai dërgon një DHCPNAK, një përgjigjje negative, me anë të së cilës detyron klientin të bëj një kërkesë sërish. Të gjitha DHCP paketat kanë të njejtën strukturë. Vetia DHCP Message type, atributi 53, bën dallimin mes llojeve të mesazheve.
DHCPDISCOVER
RedaktoMe anë të kësaj pakete, klienti zbulon serverët në rrjetë. Klienti dërgon një UDP paketë sipas struktures së DHCPDISCOVER paketës në 255.255.255.255. Klienti gjithashtu mund të kërkojë IP adresën që ka përdorur herën e fundit që, nëse është e mundur, ta përdor përsëri.
UDP Burimi=0.0.0.0 PortiBurimor=68 Destinacioni=255.255.255.255 DestPorti=67 | ||||
OP | HTYPE | HLEN | HOPS | |
---|---|---|---|---|
0x01 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | FLAGS | |||
0x0000 | 0x0000 | |||
CIADDR | ||||
0x00000000 | ||||
YIADDR | ||||
0xC0A80164 | ||||
SIADDR | ||||
0xC0A80101 | ||||
GIADDR | ||||
0x00000000 | ||||
CHADDR | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000000 | ||||
0x00000000 | ||||
192 zero oktete | ||||
Magic Cookie | ||||
0x63825363 | ||||
DHCP vetitë | ||||
DHCP vetia 53: DHCP Discover |
DHCPOFFER
RedaktoKy mesazh dërgohet nga serveri kur mer një DHCPDISCOVER nga ndonjë klient. Në këtë rast serveri i sygjeron klientit disa parametra. Nëse klienti kërkon prërsëri adresën që ka përdorur herën e kaluar, nëse është e mundur serveri i ofron atë përsëri. Me qenë se klienti nuk ka IP adresë, serveri e bën broadcast DHCPOFFER paketën. Për ta identifikuar klientin, protokoli përdor një vlerë të rastësishme 32 bitëshe të cilën e gjeneron klienti.
UDP Burimi=192.168.1.1 PortiBurimor=67 Destinacioni=255.255.255.255 DestPorti=68 | ||||
OP | HTYPE | HLEN | HOPS | |
---|---|---|---|---|
0x02 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | FLAGS | |||
0x0000 | 0x0000 | |||
CIADDR | ||||
0x00000000 | ||||
YIADDR | ||||
0xC0A80164 | ||||
SIADDR | ||||
0xC0A80101 | ||||
GIADDR | ||||
0x00000000 | ||||
CHADDR | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000000 | ||||
0x00000000 | ||||
192 zero oktete | ||||
Magic Cookie | ||||
0x63825363 | ||||
DHCP vetitë | ||||
DHCP vetia 53: DHCP Offer | ||||
DHCP vetia 1: 255.255.255.0 subnet mask | ||||
DHCP vetia 3: 192.168.1.1 router | ||||
DHCP vetia 51: 86400s (1 ditë) koha për të cilën është lëshuar IP | ||||
DHCP vetia 54: 192.168.1.1 DHCP serveri | ||||
DHCP vetia 6: DNS serverët 9.7.10.15, 9.7.10.16, 9.7.10.18 |
DHCPREQUEST
RedaktoDHCPREQUEST dërgohet nga klienti pasi ka pranuar një DHCPOFFER nga serveri. Klienti mund të dërgojë një DHCPREQUEST edhe kur kërkon IP adresën e përdorur më parë pa dërguar një DHCPDISCOVER më parë.
UDP Burimi=0.0.0.0 PortiBurimor=68 Destinacioni=255.255.255.255 DestPorti=67 | ||||
OP | HTYPE | HLEN | HOPS | |
---|---|---|---|---|
0x01 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | FLAGS | |||
0x0000 | 0x0000 | |||
CIADDR | ||||
0x00000000 | ||||
YIADDR | ||||
0x00000000 | ||||
SIADDR | ||||
0xC0A80101 | ||||
GIADDR | ||||
0x00000000 | ||||
CHADDR | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000000 | ||||
0x00000000 | ||||
192 zero oktete | ||||
Magic Cookie | ||||
0x63825363 | ||||
DHCP vetitë | ||||
DHCP vetia 53: DHCP Request | ||||
DHCP vetia 50: 192.168.1.100 është kërkuar | ||||
DHCP vetia 54: 192.168.1.1 DHCP serveri. |
DHCPACK
RedaktoKy mesazh dërgohet kur serveri konfirmon një kërkesë të klientit. Zakonisht përdoret kur një klient dërgon një DHCPREQUEST.
UDP Burimi=192.168.1.1 PortiBurimor=67 Destinacioni=255.255.255.255 DestPorti=68 | ||||
OP | HTYPE | HLEN | HOPS | |
---|---|---|---|---|
0x02 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | FLAGS | |||
0x0000 | 0x0000 | |||
CIADDR | ||||
0x00000000 | ||||
YIADDR | ||||
0xC0A80164 | ||||
SIADDR | ||||
0xC0A80101 | ||||
GIADDR | ||||
0x00000000 | ||||
CHADDR | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000000 | ||||
0x00000000 | ||||
192 zero oktete | ||||
Magic Cookie | ||||
0x63825363 | ||||
DHCP vetitë | ||||
DHCP vetita 53: DHCP ACK | ||||
DHCP vetita 1: 255.255.255.0 subnet mask | ||||
DHCP vetita 3: 192.168.1.1 router | ||||
DHCP vetita 51: 86400s (1 ditë) koha për të cilën është lëshuar IP | ||||
DHCP option 54: 192.168.1.1 DHCP server | ||||
DHCP option 6: DNS servers 9.7.10.15, 9.7.10.16, 9.7.10.18 |
DHCPNAK
RedaktoDHCPNAK përdoret kur serveri mohon kërkesën e një klienti që ti shfrytëzojë parametrat e kërkuar. Kjo mund të ndodh kur klienti kërkon parametrat që ka përdorur herën e kaluar por që tani u janë ndarë një pajisje tjetër apo, serveri i ka dhënë parametrat një pajisje tjetër gjatë kohës kur klienti ka qenë duke përpunuar ofertën e serverit.
UDP Burimi=192.168.1.1 PortiBurimor=67 Destinacioni=255.255.255.255 DestPorti=68 | ||||
OP | HTYPE | HLEN | HOPS | |
---|---|---|---|---|
0x02 | 0x01 | 0x06 | 0x00 | |
XID | ||||
0x3903F326 | ||||
SECS | FLAGS | |||
0x0000 | 0x0000 | |||
CIADDR | ||||
0x00000000 | ||||
YIADDR | ||||
0xC0A80164 | ||||
SIADDR | ||||
0xC0A80101 | ||||
GIADDR | ||||
0x00000000 | ||||
CHADDR | ||||
0x00053C04 | ||||
0x8D590000 | ||||
0x00000000 | ||||
0x00000000 | ||||
192 zero oktete | ||||
Magic Cookie | ||||
0x63825363 | ||||
DHCP vetitë | ||||
DHCP vetita 53: DHCP NAK |
DHCP vetitë
RedaktoDHCP vetitë janë definuar në RFC 1533. Para fillimit të opcioneve në mesazh gjendet DHCP Magic Cookie, një vlerë katër bajtëshe (0x63, 0x82, 0x53, 0x63). Një nga vetitë themelore është ajo me kodin 53, DHCP Message type, e cila përcakton llojin e mesazhit. Veti tjera të rëndësishme janë Router (kodi 3), Subnet Mask (kodi 1), IP Address Lease Time (kodi 51), Domain Name server (kodi 6) etj. Fusha e vetive përfundon me vlerën 0xFF.
Siguria
RedaktoDHCP ka disa probleme me sigurinë. Në një rrjetë mund të shtohet një DHCP server i paautorizuar i cili mund t’i konfigurojë klientët me parametra të gabueshme. Gjithashtu, nuk ekziston ndonjë mekanizëm për identifikimin e klientëve të paautorizuar në rrjetë. Problem tjetër paraqesin klientët e paautorizuar të cilët bëjnë kërkesa të shumta nga DHCP serveri, gjë e cila shkakton uljen e resurseve (numrit të adresave për klientët e ri). Në rastin e serverëve të paautorizuar, serveri në fjalë mund të jap adresa të gabueshme dhe klienti të mos jetë në dijeni. Këto adresa mund të përfshijnë një DNS server të sulmuesit me të dhëna të rreme, i cili mund t'i drejtojë klientët drejt Phishing-ut.