LINUX: Porotokoły Internetowe

On 2006/12/26, in Backtrack.pl, brak, by Tommy

Informacje tu zawarte są MOCNO nieaktualne!

Pomyślałem że to może się komuś przydać, co prawda minęło już prawie 2 lata od kiedy to napisałem ale protokoły te są dalej aktualne. Jednak mimo strasznego wyglądu nie jest to jakaś dokumentacja dla profesjonalistów,a wręcz przeciwnie, są to informacje dla osób które dopiero zaczynają swoją przygodę z internetem i chcą wiedzieć jak funkcjonują podstawowe usługi i protokoły sieciowe. Wszystko jest napisane łopatologicznie

Jestem otwarty na wszelkie sugestie, poprawki a także pomysły rozwijania tego tematu.

WERSJE: Oryginalna, OpenOffice2/7ZIP, Microsoft Word/7ZIP, PDF/7ZIP, Wszystkie inne

1. IP – Internet protocol
1.1 – TCP/IP
1.2 – Pakiety
1.3 – ARP, RARP
1.4 – RTP
1.5 – UDP vs. TCP
1.6 – ICMP

2. Firewall
2.1 – iptables
2.2 – NAT, Maskarada

3. DNS – Domain Name System
3.1 – adres IP, domena, alias
3.2 – www. ftp.

4. Poczta e-mail
4.1 – Droga poczty
4.2 – zawartość listów e-mail
4.3 – SMTP (Simple Mail Transfer Protocol)
4.3.1 – Autoryzacja (plain/login/cramd5/secure)
4.4 – POP3 (Post Office Protocol version 3)

5. HTTP – Hyper Text Transfare Protocol
5.1 – Proxy (Squid)
5.2 – Jezyki przez HTTP

6. FTP – File Transfare Protocol
6.1 – port / passive transfer
6.2 – SecureFTP

1. IP Internet Protocol

IP to protokół komunikacyjny należący do warstwy sieciowej modelu OSI, używany powszechnie w Internecie i sieciach lokalnych.

1.1 TCP (Transmission Control Protocol)

TCP/IP to wspólna nazwa dwóch podstawowych protokołów sieci Internet. Powstała przez połączenie nazw TCP i IP.

Protokół TCP/IP (Transmission Control Protocol/Internet Protocol) jest „programowym protokołem komunikacji sieciowej” (software-based communications protocol used in networking).

TCP/IP udostępnia metody transmisji informacji pomiędzy poszczególnymi komputerami w sieci, obsługując pojawiające się błędy oraz tworząc wymagane do transmisji informacje dodatkowe.

1.2 Pakiety

Pakiet jest nośnikiem informacji w sieci składa się z nagłówków oraz obszaru danych.

Nagłówki pakietu zawieraja adres nadawcy (source adress) oraz adres odbiorcy (destination adress) adres taki składa się zazwyczaj z numeru IP oraz portu. W przypadku protokołu TCP/IP każdy pakiet ma też swój unikalny id który tworzy ciąg z innymi pakietami. Ma też sumę-kontrolna która mówi nam czy pakiet nie został uszkodzony lub celowo zmodyfikowany.

1.3 ARP, RARP (Address Resolution Protocol)

Aby pakiety mogły trafić do celu potrzebujemy jeszcze dwóch osobnych protokołów ARP i RARP.

Protokół ARP przekształcenie adres IP w 48bitowy adres fizyczny (MAC) dzięki czemu każdy pakiet wie gdzie się ma „udać”.
IP 192.168.1.34 -> MAC 00:07:95:03:1A:7E

Po adresach MAC komputery mogą się komunikować tylko w obrębie jednej sieci aby wysłać pakiet poza nią MAC musi zostać zpowrotem przekonwertowany na IP do czego używa się RARP (Reverse Address Resolution Protocol) który odwraca operacje MAC -> IP

1.4 RTP (Real Time Protocol)

RTP protokół czasu rzeczywistego. Pakiet protokołu RTP zawiera informację o typie przesyłanych danych, numerze seryjnym pakietu oraz zawiera znacznik czasu. RTP nie gwarantuje jakości usługi (QoS).

1.5 UDP vs. TCP

Aby móc wysłać pakiet za pomocą TCP musi najpierw zostać nawiązane połączenie, w przypadku UDP pakiety mogą być wysłane bez połączenia. Pakiety UDP nie mają też mechanizmów kontroli przepływu i retransmisji. Pakiet UDP może zostać „zgubiony”. Korzyścią płynącą z takiego uproszczenia budowy jest większa szybkość transmisji danych i brak dodatkowych zadań, którymi musi zajmować się host posługujący się tym protokołem. Z tych względów UDP jest często używane w grach oraz wideo konwersacjach.

Czasem pakiety UDP wykorzystuje się do ataków typu DoS (Denial Of Service) głównie dlatego że nie trzeba nawiązywać połączenia żeby je wysłać.

Atak typu DoS to nic innego jak zapychanie łącza bezsensownymi pakietami. (realia sieciowe)

1.6 ICMP (Internet Control Message Protocol)

ICMP wykorzystywany jest przy diagnostyce oraz routingu. Najpopularniejszymi programami użytkowymi wykorzystującym protokół ICMP jest ping oraz traceroute.

Lista typów wiadomości (lista niekompletna):
0 – Echo Reply (zwrot echa – „odpowiedź na ping”)
1 – Zarezerwowane
2 – Zarezerwowane
3 – Destination Unreachable (nieosiągalność miejsca przeznaczenia)
4 – Source Quench (wygaszenie źródła)
5 – Redirect Message
6 – Alternate Host Address (alternatywny adres hosta)
7 – Zarezerwowane
8 – Echo Request (żądanie echa)
9 – Router Advertisement
10 – Router Solicitation
11 – Time Exceeded (przekroczenie limitu czasu)
12 – Parameter Problem (Problem z parametrem)
13 – Timestamp (żądanie sygnatury czasowej)
14 – Timestamp Reply (zwrot sygnatury czasowej)
15 – Information Request (żądanie informacji)
16 – Information Reply (zwrot informacji)
17 – Address Mask Request (żądanie adresu maski)
18 – Address Mask Reply (zwrot adresu maski)
19 – Zarezerwowane dla bezpieczeństwa
20-29 – Zarezerwowane
30 – Traceroute
31 – Datagram Conversion Error (błąd konwersji datagramu)
32 – Mobile Host Redirect
33 – IPv6 Where-Are-You
34 – IPv6 Here-I-Am
35 – Mobile Registration Request
36 – Mobile Registration Reply
37 – Domain Name Request (żądanie nazwy domeny)
38 – Domain Name Reply (zwrot nazwy domeny)
39 – SKIP Algorithm Discovery Protocol
40 – Photuris, Security failures
41-255 – Zarezerwowane

2. Firewall (Zapora ogniowa / Ściana ognia)

Firewall – to zazwyczaj program który ma za zadanie sterowanie przepływem pakietów między komputerami.

* Restrykcje portów

Każdy adres IP ma 65535 portów, porty to „wirtualne wtyczki” przez które do naszego komputera wpływają informacje. Głównym zadaniem FW jest blokowanie portów przez które nie chcemy nic odbierać lub wysyłać.

* Czemu należy używać firewall-a ?

Każdy system operacyjny ma jakieś usługi na różnych portach, niektóre są używane inne nie. Te które zostawiamy wolno stanowią potencjalną drogę wejścia do naszego komputera dla hakera. Dzięki FW możemy zablokować lub ograniczyć dostęp do nieużywanych portów.

* Metody blokowania

Istnieją dwa sposoby blokowania portów
1. DROP – przy próbie nawiązania połączenia nasz komputer nie będzie nic odpowiadał.
2. REJECT – przy próbie nawiązania połączenia nasz komputer odpowie, że port jest zamknięty lub zablokowany.

* Polityka Firewall-a

1. ACCEPT – polityka domyślnego dopuszczania do wszelkich połączeń i tylko selektywnego blokowania portów/adresów.
2.DROP – domyślnie odrzuca wszystkie połączenia i tylko wybiórczo dopuszcza połączenia na określone porty, adresy.

2.1 IPTables

System linux jest wyposażony w zintegrowany z jądrem firewall, który nie tylko potrafi blokować połączenia ale też ma wiele funkcji kontroli przepływu pakietów, takie jak:
REDIRECT (przekierowanie) – daje możliwość przekierowania portu lub całego adresu na inny.
FORWARD (przekazywanie) – przekazuje pakiet dalej mimo, że jego adres zgadza się z tym, który go odebrał.
SNAT – zmiana adresu źródła
DNAT – zmiana adresu adresata
itd…

Schemat przepływu pakietów przez IPTABLES

2.2 NAT, Maskarada

Wielu ludzi jest połączonych w sieci i w obrębie tej sieci udostępnia sobie połączenie z internetem. Udostępnianie internetu może odbywać się na 3 sposoby:

* Routing adresów IP – każdy komputer w sieci ma przydzielony publiczny adres IP.

Publiczny adres IP to taki do którego możemy się połączyć przez sieć internet.

* NAT (Network Address Translation)

Tylko serwer ma adres publiczny inne komputery maja tylko adresy lokalne.

* Maskarada (masquerade)

Maskarada działa tak samo jak NAT z ta różnicą, że adres naszego serwera jest dynamiczny i jest stale uaktualniany przy każdym połączeniu.

3. DNS (Domain Name System/Server)

DNS to system serwerów oraz protokół komunikacyjny zapewniający zamianę adresów znanych użytkownikom Internetu na adresy zrozumiałe dla sieci komputerowej. Dzięki wykorzystaniu DNS nazwa mnemoniczna, np. www.skyline.ltd.pl może zostać zamieniona na odpowiadający jej adres IP, czyli 62.129.200.253.

* Rekordy

Najważniejsze typy rekordów DNS, oraz ich znaczenie:

rekord A (address record) mapuje nazwę domeny DNS na jej 32bitowy adres IPv4 ( example.skyline.ltd.pl -> 127.127.127.127 )

AAAA (IPv6 address record) DNS na 128 bitwy adres IPv6 ( ipv6.pl -> 123:5678:abcd:ef::1234:5678 )

CNAME alias dla innego rekordu domeny

MX rekord wymiany poczty który mówi nam na jaki adres powinna się udać poczta na adres skyline.ltd.pl

PTR wskaźnik RevDNS informuje nas jaką domenę ma dany adrs IP ( 194.204.159.1 -> dns.tpsa.pl )

NS rekord informujący przez jaki serwer DNS dana domena jest sterowana

SOA ustala serwer DNS dostarczający autorytatywne informacje o domenie internetowej.

*
Najważniejsze cechy

* System DNS posiada następujące cechy:
* Nie ma jednej centralnej bazy danych adresów IP i nazw. Najważniejsze jest te 13 serwerów, które są rozrzucone na różnych kontynentach.
* Serwery DNS przechowują dane tylko wybranych domen.
* Każda domena ma co najmniej 2 serwery DNS obsługujące ją, jeśli więc nawet któryś z nich będzie nieczynny, to drugi może przejąć jego zadanie.
* Serwery DNS przechowują przez pewien czas odpowiedzi z innych serwerów (ang. caching), a więc proces zamiany nazw na adresy IP jest często krótszy niż w podanym przykładzie.
* Każdy komputer może mieć wiele różnych nazw. Na przykład komputer o adresie IP 207.142.131.245 ma nazwę pl.wikipedia.org oraz de.wikipedia.org
* Czasami pod jedną nazwą może kryć się więcej niż 1 komputer po to, aby jeśli jeden z nich zawiedzie, inny mógł spełnić jego rolę.
* Jeśli chcemy przenieść serwer WWW na inny szybszy komputer, z lepszym łączem ale z innym adresem IP, to nie musimy zmieniać adresu WWW strony, a jedynie w serwerze DNS obsługującym domenę poprawiamy odpowiedni wpis.
* Protokół DNS posługuje się do komunikacji głównie protokołem UDP.
* Serwery DNS działają na porcie numer 53.

* Jak to działa?

3.1 IP, domena, alias

Adres IP (v4) jest w postaci cyfr np. 212.212.121.111
domena to np. skyline.ltd.pl
aliasem od niej był by np. wojtek.skyline.ltd.pl

Adres IP zazwyczaj otrzymujemy wraz z łączem, w przypadku dużych łącz możemy otrzymać ich więcej lub nawet cały zakres 128 adresów.
Domenę musimy kupić i opłacać ją co rok aby była aktywna.
Alias możemy na wielu serwisach otrzymać za darmo. (np. one.pl)

* Alias www

Alias www możemy otrzymać na wielu serwisach za darmo (np. prv.pl) ale czym się on różni od zwykłego aliasa?
Alias www daje nam możliwości wskazania danego adresu IP, ma on tylko na celu przekierowania nas pod odpowiedni adres strony.
Często darmowe aliasy www podczas przekierowania dodają różne reklamy.

3.2 www. ftp.
Często w adresach domen występują przedrostki www. ftp. itd… czemu?

Powiedzmy że mamy domenę: kaczka.pl
którą kierujemy pod adres naszego komputera na którym mamy server dla gry internetowej (np. Medal Of Honor)
Gracze zamiast IP mogą wpisać sobie łatwą domenę a nie pamiętać IP

Pewnego dnia robimy klan i chcemy aby pod adresem kaczka.pl była strona naszego klanu niestety nie możemy tego zrobić na naszym komputerze bo cały czas włączony komputer denerwuje nas podczas snu, a jednej domeny nie da się kierować na kilka adresów.

W tym celu tworzymy alias od naszej domeny www.kaczka.pl który kierujemy na wykupiony serwer www

Mija kilka dni i robimy mod-a do naszej gry chcemy żeby inni gracze tez mogli go ściągać ale niestety serwis na którym mamy stronę nie daje możliwości udostępnienia przez ftp plików.

W tym celu robimy kolejny alias ftp.kaczka.pl i kierujemy pod adres komputera na którym wykupujemy ftp
teraz nasi wojacy mogą ściągać nasz mod i w razie potrzeby ładować swoje modyfikacje do niego lub inne rzeczy.

4. Poczta e-mail

Poczta elektroniczna (e-mail) to jedna z usług internetowych, służąca do przesyłania wiadomości tekstowych (listów elektronicznych). Obecnie do przesyłania e-maili używany jest protokół SMTP.

E-mail jako taki został wymyślony w roku 1965, autorami pomysłu byli Louis Pouzin, Glenda Schroeder i Pat Crisman – wówczas jednak usługa ta służyła jedynie do przesyłania wiadomości od jednego użytkownika danego komputera do innego użytkownika tej samej maszyny, a adres e-mailowy w zasadzie jeszcze nie istniał. Usługę polegającą na wysyłaniu wiadomości od użytkownika jednego komputera do użytkownika innego wymyślił w roku 1971 Ray Tomlinson, on również wybrał znak „@” (at) do rozdzielania nazwy użytkownika od nazwy maszyny (a później nazwy domeny internetowej ). Na początku do wysyłania e-maili służył protokół CPYNET, później wykorzystywano FTP, UUCP i wiele innych protokołów, a na początku lat 80-tych Jonathan B. Postel napisał specjalnie do tego celu protokół SMTP.

Istnieje rozszerzenie poczty elektronicznej – MIME, umożliwiające dołączanie do e-maili danych innego typu w formie tzw. załączników.

4.1 Droga poczty

4.2 zawartość listów e-mail

Każdy email składa się z 2 części: nagłówków i obszaru danych (treści)
Kolor czarny to prawdziwa zawartość listu, kolorem zielonym zaznaczam komentarze które dodałem

Return-Path: <- adres zwrotny
Delivered-To: przemek@skyline.ltd.pl” class=”postlink”>przemek@skyline.ltd.pl <- adres do którego pierwotnie list miał być dostarczony
// początek drogi listu etap między wysyłającym a serwerem
Received: (qmail 21018 invoked by uid 1003); 2 Dec 2005 00:44:10 -0000
Received: from 180.149.143.119 by nasa (envelope-from , uid 92) with qmail-scanner-1.25
(bitdefender: v7.0/2492/236739. spamassassin: 3.1.0.
Clear:RC:0(180.149.143.119):SA:0(-98.3/5.0):.
Processed in 13.37851 secs); 02 Dec 2005 00:44:10 -0000
// koniec
// nagłówki dodane po odebraniu przez skaner antywirusowy i spamowy
X-Qmail-Scanner-Mail-From: ares@dudi.com.pl via nasa
X-Qmail-Scanner: 1.25 (Clear:RC:0(180.149.143.119):SA:0(-98.3/5.0):. Processed in 13.37851 secs)
X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on xxxx.one.pl
X-Spam-Level:
X-Spam-Status: No, score=-98.3 required=5.0 tests=AWL,BAYES_50,
DNS_FROM_RFC_ABUSE,FORGED_RCVD_HELO,NO_REAL_NAME,USER_IN_WHITELIST
autolearn=no version=3.1.0
X-Envelope-From: ares@dudi.com.pl
// koniec
// koniec drogi poczty etap odbierania
Received: from smtp.dudastudio.pl (HELO dudastudio.ltd.pl) (180.149.143.119)
by mx1.ltd.pl with SMTP; 2 Dec 2005 00:43:56 -0000
Received: (qmail 15963 invoked by uid 1002); 2 Dec 2005 00:43:38 -0000
// koniec
Message-ID: <20051202004338.26786.qmail@dudi.ltd.pl> <- identyfikator wiadomości
From:ares@dudi.com.pl <- nagłówek mówi od kogo jest list
Date: Fri, 02 Dec 2005 01:43:38 +0100 <- data wysłania
To: przemek@skyline.ltd.pl” class=”postlink”>przemek@skyline.ltd.pl <- adres docelowy
Subject: Temat listu <- temat wiadomości
User-Agent: nail 11.24 7/14/05 <- program za pomocą którego został wysłany list (nail to tekstowy program pocztowy pod UNIX)
MIME-Version: 1.0 <- wersja standardu Multipurpose Internet Mail Extensions która pozwala na dołączenie do listu innych rzeczy niż tekst pisany w ASCII
Content-Type: multipart/mixed; <- nagłówek informuje że list jest wielo częściowy/plikowy
boundary=”=_438f98ba.dVz4nvs516mMIu5oSpD/KsSo45rxRSWgEibVl6HiSe5Lkzxp”

This is a multi-part message in MIME format.
// początek pierwszego załącznika (zgodnie z RFC główna treść listu)
–=_438f98ba.dVz4nvs516mMIu5oSpD/KsSo45rxRSWgEibVl6HiSe5Lkzxp
Content-Type: text/plain; charset=us-ascii <- kodowanie znaków w załączniku (dla polskich znaków ISO-8859-2)
Content-Transfer-Encoding: 7bit <- ilość bitów
Content-Disposition: inline <- dyspozycja zawartość

tresc listu <- treść listu

————=_1133477959-15194-1 <- kolejny załącznik
Content-Type: text/plain; charset=”iso-8859-2″ <- polskie kodowanie znaków
Content-Disposition: inline
Content-Transfer-Encoding: 8bit <- 8bitów konieczne aby móc zastosować polskie znaki

tresc w ktorej moga wystapic polskie znaki <- treść

————=_1133477959-15194-1– <- koniec zał.

————=_1133477959-15194-0 <- załączony obrazek
Content-Type: image/pjpeg; name=”3d_65.jpg” <- opis typu
Content-Disposition: attachment; filename=”3d_65.jpg” <- nazwa pliku
Content-Transfer-Encoding: base64 <- kodowanie transferu

// zawartość pliku
/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAPAAA/+4ADkFk
b2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoKDBAM
DAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAY
GhURFRofHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f
Hx8fHx8fHx8f/8AAEQgDAAQAAwERAAIRAQMRAf/EAJ4AAAMBAQEBAQEBAAAA
AAAAAAABAgMEBQYHCAkBAQEBAQEBAQAAAAAAAAAAAAABAgMEBQYQAAEEAQIF
AgQEBAQFAwMDBQEAEQIDBCESMUFREwVhInGBFAaRMkIHoVIjFbHB0WLw4fEz
FnIkCIJDF6KywlOSczQlEQEBAQEBAAICAwEAAgMAAwAAARECEiEDMRNBUQRh
…[wycięty]
//koniec

————=_1133477959-15194-0– <-koniec ostatniego załącznika i zarazem koniec listu

4.3 SMTP (Simple Mail Transfer Protocol)

Podczas przesyłania poczty korzystamy z SMTP, zarówno gdy nasz pogram przesyła pocztę na nasz serwer pocztowy jak i podczas gdy nasz serwer przesyła na inny serwer, cała zawartość wędruje właśnie przez SMTP. SMTP jako serwer działa zawsze na 25 porcie, i musi na nim działać bo inaczej poczta nie zostałaby przyjęta.

* Jak wygląda proces przesyłania ?

Komendy które śle klient pocztowy są zielone, odpowiedzi serwera pomarańczowe, komentarze czarne.
220 laska.com.pl ESMTP <- serwer się identyfikuje

EHLO xxxx.one.pl <- przywitanie serwera SMTP swoim hostem

// serwer informuje o dozwolonych typach autoryzacji które opiszę w punkcie 4.3.1
250-laska.com.pl
250-AUTH LOGIN CRAM-MD5 PLAIN
250-AUTH=LOGIN CRAM-MD5 PLAIN
250-PIPELINING
250 8BITMIME

MAIL FROM:

<- podaje adres nadawcy

250 ok <- serwer pomyślnie przyjmuje adres (może go odrzucić jeżeli adres jest nie prawidłowy lub został zidentyfikowany jako spamowy nadawca)

RCPT TO: <- adres adresata

250 ok <- akceptacja (odrzuca jeżeli taki nie istnieje)

DATA <- informujemy serwer że będziemy przesyłać teść listu

354 go ahead <- server informuje nas że oczekuje na treść
// zawartość maila
Received: (qmail 18401 invoked by uid 1003); 28 Nov 2005 22:59:57 -0000
Received: from 217.96.212.151 by nasa (envelope-from

, uid 92) with qmail-scanner-1.25
(bitdefender: v7.0/2492/235650. spamassassin: 3.1.0.
Clear:RC:1(217.96.212.151):.
Processed in 0.066605 secs); 28 Nov 2005 22:59:57 -0000
X-Qmail-Scanner-Mail-From: przemek@skyline.ltd.pl” class=”postlink”>przemek@skyline.ltd.pl via nasa
X-Qmail-Scanner: 1.25 (Clear:RC:1(217.96.212.151):. Processed in 0.066605 secs)
Received: from skyline.ltd.pl (HELO xxxx.one.pl) (ares@10.1.1.12)
by skyline.ltd.pl with ESMTPA; 28 Nov 2005 22:59:57 -0000
Date: Mon, 28 Nov 2005 23:59:56 +0100
From: Przemek

To: tommy@laska.com.pl
Subject: Temat maila
Message-ID: <20051128235956.3e3a3462@xxxx.one.pl>
Organization: CLC
X-Mailer: Sylpheed-Claws 1.9.100 (GTK+ 2.6.10; x86_64-pc-linux-gnu)
Disposition-Notification-To: Przemek

Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII

Content-Transfer-Encoding: 7bit

Tresc mojego listu


Podpis
. <- ten znak kończy list

250 ok 1133218800 qp 22522 <- serwer przyjmuje list

QUIT <- zakończenie połączenia

4.3.1 – Autoryzacja (plain/login/cramd5/secure)
Kilka lat temu wszystkie konta pocztowe działy według zasady Open Raley czyli każdy mógł wysłać z naszego konta jakąś przesyłkę. Dziś w czasach gdy 80% danych przepływających przez internet to SPAM takie rozwiązania przestały spełniać swoje zadanie, potrzebna jest autoryzacja SMTP.

Wyróżniamy 2 typy zwykłej autoryzacji, 2 za pomocą MD-5 i tzw. autoryzację bezpieczną (kodowaną)

* plain auth

250-PIPELINING
250-8BITMIME
250-SIZE 51000000
250 AUTH LOGIN PLAIN CRAM-MD5
AUTH PLAIN tu_powinno_byc_haslo <- Autoryzacja kluczem łatwym do przechwycenia
235 ok, go ahead (#2.0.0)
MAIL FROM: SIZE=480
250 ok
RCPT TO:

250 ok
DATA
354 go ahead

* login auth

250-PIPELINING
250-8BITMIME
250-SIZE 51000000
250 AUTH LOGIN PLAIN CRAM-MD5
AUTH LOGIN
334 VXNlcm6Hbwu6
dG9tbXk= <- 2 stopniowy proces autoryzacji, login
334 UGfZc9dvCmL1
ZHfkBwfyYQ== <- hasło
235 ok, go ahead (#2.0.0)

* cram-md5 auth

250-PIPELINING
250-8BITMIME
250-SIZE 51000000
250 AUTH LOGIN PLAIN CRAM-MD5
AUTH CRAM-MD5
334 PDi0MjkuMTEzMzU2OTQ5NUbwYjExOS4QyXdvcnpuby7ZzGkudHBuEplucGw+
Dk3tbXkgNmFlMzvHNmI2M2RhZDNkmtgWODk3OwQyNTU3YzcwOTg= <- klucz kodowany algorytmem MD5 według klucza podanego przez serwer
235 ok, go ahead (#2.0.0)

* DIGEST-MD5 auth

Kolejny typ autoryzacji algorytmem MD5 nowszy i bezpieczniejszy niż CRAM ale dalej jest on przesyłany przez nie kodowane połączenie. Czyli treść listu może zostać podsłuchana.

* Secure

Inne typy autoryzacji wymagają już połączeń kodowanych w tym celu nie da się używać SMTP tylko jego kodowanej wersji SecureSMTP

4.4 – POP3 (Post Office Protocol version 3)

Post Office Protocol version 3 (POP3) to protokół internetowy z warstwy aplikacji pozwalający na odbiór poczty elektronicznej ze zdalnego serwera do lokalnego komputera poprzez połączenie TCP/IP. Ogromna większość współczesnych internatów korzysta z POP3 do odbioru poczty.

* Przebieg połączenia POP3

Kolor zielony to klient, pomarańczowy to serwer, czarne komentarze
+OK <13208.1133571552@dudastudio.ltd.pl>
USER ares <- klient podaje login z którego chce odebrać pocztę
+OK
PASS tu_powinno_byc_haslo <- podaje hasło do loginu
+OK
STAT <- pyta o nowe listy
+OK 2 11581
UIDL <- klient pyta UIDL (identyfikatory listów)
+OK
1 1133534832.12370.dudastudio
2 1133569885.27267.dudastudio
.
LIST <- klient prosi o listę maili do odebrania
+OK
1 2037
2 9544
.
RETR 1 <- prosi o przesłanie mu pierwszego listu
+OK
cała zawartość pierwszego listu oraz jego nagłówki

.
DELE 1 <- klient nakazuje skasowanie listu na serwerze
+OK
RETR 2 <- prosi o przesłanie drugiego
+OK

cała zawartość drogiego listu oraz jego nagłówki
.
DELE 2 <- kasuje drugi
+OK
QUIT <- wychodzi
+OK

5. HTTP – Hyper Text Transfare Protocol

HTTP (Hypertext Transfer Protocol) to protokół sieci WWW (World Wide Web). Obecną definicję HTTP stanowi RFC 2616. Właśnie za pomocą protokołu HTTP przesyła się żądania udostępnienia dokumentów WWW i informacje o kliknięciu odnośnika oraz informacje z formularzy. Zadaniem stron WWW jest publikowanie informacji – natomiast protokół HTTP właśnie to umożliwia.

Protokół HTTP jest tak użyteczny, ponieważ udostępnia znormalizowany sposób komunikowania się komputerów ze sobą. Określa on formę żądań klienta dotyczących danych oraz formę odpowiedzi serwera na te żądania. Jest zaliczany do protokołów stateless (bezstanowy), z racji tego, że nie zachowuje żadnych informacji o poprzednich transakcjach z klientem, po zakończeniu transakcji wszystko „przepada” – z tego powodu tak bardzo spopularyzowały się cookies.

*
Typowe zapytanie HTTP

1. GET / HTTP/1.1 (prośba o zwrócenie dokumentu o URI / zgodnie z protokołem HTTP 1.1)
2. Host: host.com (wymagany w HTTP 1.1 nagłówek Host służacy do rozpoznania hosta, jeśli serwer na jednym IP obsługuje kilka VirtualHostów)
3. User-Agent: Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.6) Gecko/20040122 (nazwa aplikacji klienckiej)
4. Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8 (akceptowane (bądź nieakceptowane dla q=0) przez klienta typy plików)
5. Accept-Language: pl,en-us;q=0.7,en;q=0.3 (preferowany język strony – nagłówek przydatny przy Language negotiation)
6. Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7 (preferowane kodowanie znaków, patrz strona kodowa)
7. Keep-Alive: 300 (czas, jaki klient chce zarezerwować do następnego zapytania w przypadku połączenia Keep-Alive)
8. Connection: keep-alive (chęć nawiązania połączenia stałego Keep-Alive z serwerem HTTP/1.0)
9. znak powrotu karetki i wysunięcia strony (CRLF)

HTTP/1.1 dopuszcza wysłanie kilku żądań naraz (pipelining). HTTP/1.0 zakłada jedno żądanie i jedną odpowiedź.

*
Odpowiedź serwera WWW

1. HTTP/1.1 200 OK (kod odpowiedzi HTTP, w tym wypadku zakceptowanie i zwrócenie zawartości)
2. Date: Sun, 11 Jul 2004 12:04:30 GMT (czas serwera)
3. Server: Apache/2.0.50 (Unix) DAV/2 (opis aplikacji serwera)
4. Set-Cookie: PSID=d6dd02e9957fb162d2385ca6f2829a73; path=/ (nakazanie klientowi zapisania Cookie)
5. Expires: Thu, 19 Nov 1981 08:52:00 GMT (czas wygaśnięcia zawartości zwróconego dokumentu. Data w przeszłości zabrania umieszczenie dokumentu w cache. Jest to stara metoda zastąpiona przez Cache-Control)
6. Cache-Control: no-store, no-cache, must-revalidate (no-store zabrania przechowywania dokumentu na dysku, nawet gdy nie jest to cache. must-revalidate nakazuje bezwzględnie stosować się do wytycznych i sprawdzić świeżość dokumentu za każdym razem)
7. Pragma: no-cache (informacje dotyczące Cache’owania zawartości. Stara, niestandardowa metoda.)
8. Keep-Alive: timeout=15, max=100
9. Connection: Keep-Alive (akceptacja połączenia Keep-Alive dla klientów HTTP/1.0)
10. Transfer-Encoding: chunked (typ kodowania zawartości stosowanej przez serwer)
11. Content-Type: text/html; charset=iso-8859-2 (typ MIME i strona kodowa zwróconego dokumetu)
12. znak powrotu karetki i wysunięcia strony (CRLF)
13. tutaj zawartość dokumentu

HTTP do obsługi połączeń Keep-Alive wymaga aby odpowiedź od serwera miała znaną długość (przez podanie Content-Length lub użycie Transfer-Encoding: chunked). W przeciwnym wypadku koniec odpowiedzi sygnalizuje zerwanie połączenia i Keep-Alive nie może działać.

Nagłówek Keep-Alive jest rozszerzeniem HTTP/1.0. W HTTP/1.1 ten nagłówek nie jest potrzebny, gdyż połączenia Keep-Alive są domyślne (zachowanie zmienia Connection: close).

5.1 – Proxy (Squid)

Pośrednik HTTP (HTTP proxy) – to program, który pośredniczy między przeglądarką WWW a serwerami, na których znajduje się dany materiał (zazwyczaj strona internetowa).

Zwykle stosuje się go w ramach sieciowej usługi buforowania, która działa analogicznie do pamięci podręcznej przeglądarki internetowej (cache – stąd inna nazwa tej usługi: W3cache). Polega to na przechowywaniu na bliższym serwerze (serwerze pośredniczącym) kopii strony internetowej i udostępnianiu (jeżeli jest aktualna) tej kopii zamiast informacji pobieranych z odległego serwera.

Ma to na celu skrócenie czasu oczekiwania na załadowanie się strony (jeżeli połączenie z serwerem pośredniczącym jest słabsze niż z komputerem, na którym jest umieszczona strona, dzieje się na odwrót). Jeśli kilku użytkowników w sieci lokalnej korzysta z WWW poprzez takiego pośrednika i odwiedzają tę samą stronę, to wystarczy, że będzie ona pobrana jeden raz. HTTP jest dobrze przystosowane do tego typu programów, pozwalając serwerom informować taki program o dostępności nowszych wersji strony.

Pośredników HTTP stosuje się też do blokowania pewnego rodzaju informacji – np. bannerów reklamowych, czy też do cenzurowania sieci. Często używa się ich również do maskowania adresu komputera, z którego następuje rzeczywiste połączenie.

* Squid

Squid jest popularnym serwerem pośredniczącym (proxy) z udostępnionym kodem źródłowym (Open source).

Program ten może spełniać następujące funkcje:

* pośrednik dla protokołów HTTP, FTP i SSL
* buforowanie protokołów HTTP, FTP i Gopher
* odciążenie lokalnych serwerów HTTP i DNS
* buforowanie DNS

Dzięki zastosowaniu tego programu uzyskujemy:

* zmniejszenie czasu dostępu do danych z Internetu
* zmniejszenie obciążenia łącz internetowych
* większe bezpieczeństwo i anonimowość użytkowników
* możliwość kontroli i wprowadzenia pewnych ograniczeń

5.2 Jezyki przez HTTP
Podstawowym językiem dla HTTP jest HTML (HyperText Markup Language), język tz. tagów dzięki którym piszemy strony.
Niestety język nie daje możliwości pisania dynamicznych stron (z zmienną treścią).
W tym celu powstało kilka języków takich np. jak PHP, Perl, Java, Flash oraz aplikacje CGI
Języki możemy podzielić na te które wymagają wsparcia na serwerze (PHP, Perl, CGI) oraz te które wymagają wsparcia u klienta. (Java, Flash)

* Cechy języków wymagających wsparcia serwera

obciążają już zazwyczaj dociążone maszyny serwerów
dają możliwość wpływania na zawartość witryny osobą odwiedzającym
są potencjalnymi lukami zabezpieczeń serwera
dają dużo możliwości pisania aktywnych stron
umożliwiają przesyłanie plików do i z serwera

* Cechy języków wymagających wsparcia u klienta

obciążają maszynę klienta a nie obciążają serwera
nie dają bezpośredniego wpływania na zawartość witryny
nie stanowią luk serwera ale mogą być drogą ataku na maszynę klienta
dają możliwości pisania aplikacji, gier oraz BARDZO aktywnych stron (Multimedialnych)
aby z nich korzystać trzeba je zainstalować na swoim komputerze

6. FTP File Transfare Protocol

FTP (File Transfer Protocol, protokół transmisji plików) jest protokołem typu klient-serwer, który umożliwia przesyłanie plików z i na serwer poprzez sieć TCP/IP. Protokół ten jest zdefiniowany przez IETF w RFC 959.

FTP jest protokołem 8-bitowym, dlatego nie jest potrzebne dalsze przetwarzanie informacji, tak jak ma to miejsce w standardach MIME i uuencode. Do komunikacji wykorzystywane są dwa połączenia TCP. Jedno z nich jest połączeniem kontrolnym za pomocą którego przesyłane są np. polecenia do serwera, drugie natomiast służy do transmisji danych m.in. plików. FTP działa w dwóch trybach: aktywnym i pasywnym, w zależności od tego, w jakim jest trybie, używa innych portów do komunikacji.

6.1 port / passive transfer

Jeżeli FTP pracuje w trybie aktywnym, korzysta z portów 21 dla poleceń (połączenie to jest zestawiane przez klienta) oraz 20 do przesyłu danych. Połączenie nawiązywane jest wówczas przez serwer. Jeżeli FTP pracuje w trybie pasywnym wykorzystuje port 21 do poleceń i port o numerze > 1024 do transmisji danych, gdzie obydwa połączenia zestawiane są przez klienta. W sieciach ukrytych za firewallem komunikacja z aktywnymi serwerami FTP nie jest możliwa.

6.2 SecureFTP

SFTP – w zasadzie nie różni się od ftp poza tym że do transferu plików używa SSH, dzięki czemu całe połączenie jest kodowane. SFTP to tz. subsystem SSH. SFTP działa na 115 porcie ( FTP na 21)

KONIEC

Materiały:

Wikipedia – http://www.wikipedia.org/

RFC – http://www.rfc.net/ (791, 792, 768, 793, 2616, 2821, 2822)

Apache2 manual – http://httpd.apache.org/docs/2.0/en/

Squid UG – http://squid-docs.sourcef…html/book1.html

QMail NS – http://www.qmail.org/top.html#book

ProFTPd RFC – http://www.proftpd.org/docs/rfc.html

ProFTPd manual – http://www.proftpd.org/docs/

BIND manual – http://www.isc.org/index.pl?/sw/bind/

IP Tables HowTo – http://www.netfilter.org/…epts-HOWTO.html

Programy:

NVU – http://www.nvu.com/ (html)

Dia – http://www.gnome.org/projects/dia/ (schematy) http://dia-installer.sourceforge.net/

Ethereal – http://www.ethereal.com/ (zawartość połączeń)

Tagged with:
 


Portal Bezpieczna Sieć - Forum komputerowe, Informatyka śledcza, bezpieczeństwo, backtrack, kali - Kali Linux Polska Edycja - Polska Edycja Backtrack - Poradnik dla gracza - Praca oparta na wiedzy i edukacji - Seriws Laptopów Katowice - Sklep Komputerowy Katowice - Odzyskiwanie Danych Katowice - Parking BETA przy lotnisku Pyrzowice - miejsce Run w sieci - Prawda od promocjach ,Informatyka, promocje, ceny, ekonomia, ekologia, filozofia - Prawda na tematy informatyki, ekonomii, ekologii - Wróżka, Poezja - eMono-cykl, SegWay, AirWheel, SoloWheel

stat4u