|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
Solutia Linux de conectare la Internet | ||||||
|
||||||
g6u24uo CUPRINS PARTEA I (Conectarea unui LAN la Internet) Cazul clasic al conectarii la Internet Conceptul de Internet Cum functioneaza Internet-ul ? Conectarea la Internet printr-un cablu UTP Cablul UTP Viteza de transfer Informatii vitale pentru conectarea la Internet Adresa IP Netmask Adresa de broadcast Gateway DNS Testarea conexiunii Conectarea mai multor calculatoare la Internet Instalarea Linux-ului Cate ceva despre hard-disk-uri Configurari la Instalarea Linux-ului Comenzi low-level de configurare retea Ifconfig Route Studiu de caz Recompilarea kernel-ului Bootare fortata De unde se obtin adresele IP routabile Domenii DNS Serverul de email Proxy Securitate Firewall-ul in Linux PARTEA A DOUA (Reprezentare Firewall) Introducere Cum functioneaza un firewall Pachetul IP Abstractizare firewall Limitari cunoscute Posibile reprezentari Reprezentarea cu masca Reprezentare firewall printr-un automat Automat firewall minimal PARTEA A TREIA (Protocolul TCP/IP) Protocolul IP (Internet Protocol) Adrese IP Bibliografie PARTEA INTAI - Conectarea unui LAN la Internet Cazul clasic al conectarii la Internet Pentru ca un calculator sa fie conectat la Internet trebuie intai sa existe o legatura fizica intre acesta si un nod al acestei retele Internet. Legatura poate fi realizata prin fire de cupru (cablu BNC, UTP), fibra optica, unde radio, etc. De obicei administratorul nodului deja conectat la Internet (Internet Service Providerul de exemplu) furnizeaza un IP noului host conectat. Conceptul de Internet In momentul in care o firma/institutie a inceput sa acumuleze dispozitive de calcul, a aparut si problema transmiterii de date intre acestea si utilizarii unor informatii in comun. Transmiterea prin manipularea dispozitivelor de stocare (disckete, hard-disk-uri, benzi magnetice) s-a dovedit ineficienta pentru accesari de date in timp real sau pentru transmiteri frecvente de fisiere mici (cum ar fi transportul pe disketa a fisierelor pana la calculatorul la care este conectata imprimanta). Aceasta nevoie a fost rezolvata interconectand calculatoarele (si alte dispozitive de calcul care au putut fi adaptatate precum imprimante de retea, etc) prin legaturi fizice permanente, prin fire de cupru, fibre optice sau chiar prin infrarosii si unde radio. In scurt timp insa a aparut si problema comunicarii de date intre filiale ale aceleiasi firme din zone geografice diferite, asa ca aceste retele (net-uri) au fost inter-conectate (la inceput prin linii telefonice inchiriate). Astfel s-au format internet-urile (inter-retele). La un moment dat (prin anul 1960), Ministerul Apararii din SUA a dorit sa interconecteze bazele sale militare intr-o inter-retea care sa fie capabila sa continue sa functioneze chiar in cazul in care unele puncte ale marii retelei ar fi distruse. Asa a aparut o inter-retea numita ARPANET (ARPA = "Advanced Research Projects Agency" se numea institutia guvernamentala care a coordonat si finantat proiectul). Experimentele facute cu aceasta retea au dus la concluzia ca trebuie dezvoltat un protocol nou, special conceput pentru o astfel de arhitectura de retea. Astfel a aparut protocolul TCP/IP, special conceput pentru a lucra pe o retea de intindere foarte mare, pe o inter-retea. ARPA a semnat un contract de finantare cu "University of California din Berkeley" pentru a implementa acest protocol in sistemul de operare UNIX, ceea ce a dus la dezvoltarea unei interfete flexibile prin care programele pot comunica intre ele prin retea numita "socket" (soclu). In cursul dezvoltarii protocolului au fost interconectate retelele mai multor universitati, rezultand o retea cu aproximativ 200 de noduri. In anul 1980 portiunea militara a fost data in exploatare (si izolata de restul retelei), dar cele aproximativ 160 de noduri ramase au functionat in continuare, noi si noi retele fiind interesate sa se conecteze la acesta mare inter-retea. Cand aceasta inter-retea a devenit atat de mare incar lumea a constientizat-o ca Inter-reteaua (cu I mare), a aparut si conceptul de Internet (cu I mare). Internetul este o retea care interconecteaza calculatoare din intreaga lume, facand posibil schimbul de informatii de orice tip intre oricare doua calculatoare din aceasta retea. Protocolul de comunicare in aceasta retea este se numeste IP (Internet Protocol) si asigura transmiterea de datagrame (numite pachete IP) intre oricare doua puncte ale retelei. Aceste pachete au lungime limitata (uzual 1500 bytes), mesajele mai mari transmitandu-se in cadrul mai multor pachete. In fiecare pachet exista specificate sursa si destinatia mesajului. Fiecare calculator care participa la Internet are un identificator unic (un numar pe 32 de biti) prin care el poate fi referit de catre alt calculator din Internet. Acest numar se numeste "adresa IP", sau mai simplu "IP" si este reprezentat in general ca 4 grupe de catre 8 biti scrise in baza zece, mai exact ca 4 numere in intervalul 0-255 separate cu punct (".") , de exemplu: "193.226.51.54". Un calculator poate avea mai multe adrese IP dar un calculator fara IP nu poate comunica in Internet. Alaturi de calculatoare exista si alte echipamente care pot comunica in Internet (imprimante special concepute, routere dedicate, switch-uri, etc). Participant la Internet este orice agent care are asignata o adrese IP si poate schimba mesaje cu ceilalti paticipanti prin protocolul IP. Protocolul IP asigura transmiterea de mesaje scurte intre oricare doua puncte ale Internetului, dar responsabilitatea lui este doar sa controleze traseul pe care trebuie sa-l urmeze pachetul spre destinatie prin multiplele noduri ale retelei. In responsabilitatea sa nu intra controlul pachetelor pierdute si nu garanteaza ca pachetele ajung in ordinea in care au fost trimise. El nu face decat sa transporte pachete de informatii de la un host la altul, de la un IP la altul, pachetul continand doar IP-ul sursa, IP-ul destinatie si cateva informatii de control cum ar fi versiunea protocolului, daca pentru pachet este mai important sa ajunga rapid la destinatie sau este mai important sa ajunga, chiar daca cu intarziere, etc. Pe parcursul drumului de la sursa la destinatie, pachetul poate trece prin segmente de retea care au un maxim al lungimii pachetului mai mic decat cel al sursei, ceea ce face necesara fragmentarea pachetului si atasarea fiecarui fragment un ID si un numar de ordine, un pachet IP contine deci si aceste campuri. Pentru unele aplicatii (de exemplu transmiterea frame-uri video) acest sistem este destul de acceptabil, pierderea unui frame nu este o problema, retransmiterea ar fi chiar inutila. Pentru transferul de fisiere insa pierderea unui pachet sau primirea in alta ordine a pachetelor este chiar o problema. Astfel a aparut necesitatea diferentierii de clase de servicii, servicii nefiabile, orientate pe datagrame care nu asigura retransmiterea pachetelor pierdute si reordonarea lor si servicii fiabile, orientate pe conexiune, in care se face automat retransmiterea pachetelor piedute, ordonarea la destinatie si chiar controlul congestiei. Pentru acest scopuri au fost create protocoale de comunicare "peste" acest protocol, mai exact a fost rezervat in antetul pachetului IP un camp "tip de pachet" iar in functie de acest camp informatia din pachetul IP este interpretata in mod diferit si este tratata de protocoale diferite. Cele mai cunoscute tipuri de pachete IP sunt pachetele TCP, UDP si ICMP. Protocolul UDP (User Datagram Protocol) este un protocol simplu dar nesigur, aplicatiile care il folosesc trebuie sa-si implementeze singure metode de detectare a pachetelor pierdute si de retransmitere a lor. Protocolul TCP este un protocol complex, asigurand initierea de conexiuni fiabile, cu retransmitere de pachete, reordonare si controlul congestiei. Pachetele ICMP (Internet Control Mesage Protocol) se folosesc pentru depanarea retelei (ping) si pentru transmiterea de informatii despre evenimente speciale pe parcursul traseului unui pachet (de ex. pachetul a trecut prin mai multe routere decat maximul specificat in pachet). Recapituland: exista pachetele IP care au ca definitorii IP-ul sursa si IP-ul destinatie. Printre tipurile de pachete IP cele mai cunoscute sunt UDP, TCP, ICMP si ARP (ultimul mai putin cunoscut pentru ca nu este folosit de aplicatii ci de catre sistemele de operare). Pentru a identifica si diferentia hosturile exista adresele IP. Pentru a diferentia in cadrul aceluias host diversele aplicatii care comunica in retea exista numarul de port, care este un numar pe 16 biti, deci intre 0 si 65535. Un comunicatie in retea se face intre doua perechi IPsursa-PORTsursa si IPdestinatie-PORTdestinatie. Comunicatia poate fi nefiabila (la nivel de pachet prin UDP) sau fiabila (la nivel de conexiune prin TCP). Conectarea la Internet printr-un cablu UTP Situatia tipica de legatura permanenta la Internet este facuta printr-o conexiune ethernet, pana la un router legat la randul sau la Internet. Legatura ethernet se poate realiza prin mai multe tipuri de cabluri, cel mai folosit fiind insa cablul UTP. Cablul UTP contine 4 perechi de fire de cupru izolate si torsadate (rasucite), prinse intr-un invelis izolator. In fiecare pereche exista un fir colorat intr-una din culorile portocaliu, verde, albastru, maro, perechea lui avand aceeasi culoare, dar intrerupta de portiuni albe. De fapt pentru ethernet se folosesc doar doua perechi, una "dus" si un "intors". Cablurile UTP se termina cu mufe care au aspectul mufelor telefonice, dar sunt mai late, trebuind sa cuprinda 8 fire (fata de 4 la mufele telefonice). Cablul se prinde in mufe prin "sertizare" cu un cleste special care infige lamele metalice ale mufei prin invelisul izolator al fiecarui fir. Privind mufa cu lamela de prindere in spate si cu lamelele metalice in sus, firele folosite la ethernet sunt 1-2 si 3-6. Pe aceste pozitii trebuiesc sa fie sertizate fire perechi, uzual portocaliu si verde. Pentru a interconecta doua calculatoare cablul trebuie sertizat astfel incat perechea de fire care este pe pozitia 1-2 la un capat sa corespunda perechii 3-6 la celalalt capat (ce transmite o placa de retea sa ajunga la pozitia de receptie ai celeilalte). De obicei insa se foloseste un "concentrator" la care se aduna cablurile de la mai multe calculatoare si prin care comunica intre ele (de exemplu HUB sau SWITCH). Acesta are mufele asemenatoare celor de retea, dar au inversati conectorii 1<->3 si 2<->6, astfel ca pentru conectarea unui calculator catre acest "concentrator" se folosesc cabluri care au la ambele mufe aceeasi ordine a perechilor. Ordinea uzuala este: w-o,o,w-g,b,w-b,g,w-br,br cu conventia: o=orange (portocaliu), g=green(verde), b=blue(albastru), br=broun (maro) iar w- semnifica ca respectiva culoare este intrerupta. In cazul in care cablul este "inversat" (se mai numeste si twisted sau cross-over) ordinea la una din mufe este schimbata in w-g,g,w-o,b,w-b,o,w-br,br. Trebuie precizat ca o greseala frecventa este pozitionarea perechilor in mufa dupa o ordine oarecare. Daca este respectata in ambele parti, cablul poate functiona aparent, dar daca perechile 1-2 si 3-6 nu sunt torsadate (rasucite) pot apare functionari defectuase (pierderi, erori), mai insemnate la 100Mbps si/sau cabluri lungi. De obicei langa calculator exista o priza UTP care este legata la concentrator (HUB, SWITCH). Conectarea consta in legarea unui cablu UTP "direct" (neinversat) intre priza UTP si placa de retea ethernet din calculator. In general vom avea la dispozitie o mufa utp "mama" care ne va lega fizic de un router deja conectat la Internet (acesta poate fi in aceeasi cladire si legat la acelasi HUB/SWITCH sau poate fi la providerul INTERNET pana la care legatura se face prin Modem de cablu, Fibra optica sau Radio. Este de asteptat ca la provider sa exista o trecere similara de la echipamentul de conectare spre un cablu UTP, deci daca facem abstractie de viteza putem considera ca exista un cablu UTP de la calculatorul nostru pana in HUB-ul/SWITCH-ul providerului, la care este conectat routerul acestuia. Viteza de transfer. La inceput conexiunea ethernet asigura o viteza de 10Mbps (10 megabiti pe secunda). Legatura se putea realiza printr-un cablu BNC (coaxial) care trecea pe la toate calculatoarele sau prin cablu UTP si HUB/SWITCH pentru conectarea mai multor calculatoare. Pe cablul UTP a fost proiectat apoi un standard care permite atingerea vitezei de 100Mbps. Majoritatea placilor de retea de 100Mbps suporta si interconectari la viteza de 10Mbps pentru compatibilitate cu placile vechi. Un avantaj al conectarii cu UTP fata de BNC este pe langa faptul ca se pot realiza transmisii full-duplex, adica 100Mbps intr-un sens si 100Mbps in celalat sens simultan. Aceasta facilitate nu este suportata de toate placile si nu poate fi folosita daca se foloseste un HUB, necesitand un SWITCH. Aceasta viteza este asigurata intre oricare doua calculatoarele care sunt in acelasi HUB sau pe acelasi cablu BNC, dar in cazul in care se face trafic intre mai multe calculatoare suma vitezelor cu care se transmit datele nu poate depasi aceasta valoare. In cazul unui SWITCH insa, doua perechi de calculatoare pot comunica ambele cu 100Mbps, viteza nu mai este limitata la suma vitezelor ci pe fiecare cablu UTP in parte. Trebuie precizat faptul ca unitatea de masura pentru latimea de banda este bitul (nu byte-ul ca in cazul fisierelor), deci pe o conexiune de 100Mbps viteza de transfer al unui fisier va fi maxim 100:8Mbps, o aproximare destul de buna fiind 10MB/s (mai exista informatii de control al transferului). Viteza de transfer in Internet este data de minimul dintre latimile de banda disponibile pe diferitele tronsoane traversate de de pachete intre locatii. De obicei viteza in Internet este mult mai mica decat viteza in reteaua locala, aceasta fiind de ordinul KB/s (kilobytes pe secunda), deci un upgrade de la 10Mbps la 100Mbps in reteaua locala nu creste decat viteza de comunicatie in interiorul retelei, nu si viteza de acces Internet. Viteza de acces Internet este data de canalul de comunicatie pana la provider (care poate avea limitari fizice de viteza) si de banda pe care providerul o aloca clientului. Informatii vitale pentru conectarea la Internet. In momentul conectarii calculatorului trebuiesc aflate cateva date tehnice vitale pentru a putea folosi conexiunea. Aceste informatii sunt: Adresa IP, Netmask, Gateway, Name-server(e). Hostname-ul (numele de host) se poate pune oricum, dar daca exista o inregistrare DNS cu corespondenta intre un nume de host si IP-ul pus, este bine sa se seteze acel nume. In lipsa, se poate pune orice nume, urmat de domeniul organizatiei din care se face parte calculatorul sau chiar un domeniu fictiv. Adresa IP este identificatorul unic cu care calculatorul va fi recunoscut in Internet. Este un numar de 32 de biti cu fiecare grupa de 8 biti scrisa in zecimal si separate prin punct ("."). Ex: 193.226.51.54 Netmask-ul este tot un numar de 32 de biti, dar are proprietatea ca este format dintr-un sir de biti 1 urmat de un sir de biti 0. Cea mai uzuala valoare este 255.255.255.0 care este formata din 24 de biti 1 si 8 biti 0. Netmask-ul este folosit pentru a determina daca o destinatie se afla in aceeasi retea ethernet (de ex. in acelasi HUB sau pe acelasi cablu BNC) cu calculatorul care vrea sa trimita un pachet de date. Daca IP-ul destinatie corespunde cu IP-ul propriu pe toate pozitiile pe care Netmask-ul este 1, atunci calculatorul va "intreba in retea" printr-un broadcast cine are acel IP, placa care are acel IP va raspunde si se va trimite un pachet direct catre acea placa de retea. De exemplu un calculator cu IP-ul 193.226.51.54 cu netmask 255.255.255.0 se considera in aceeasi retea cu toate calculatoarele care au IP-uri 193.226.51.X cu X intre 0 si 255. Daca netmask-ul este 255.255.255.128 (inca un bit 1 in plus), calculatorul se va considera in aceeasi retea doar cu IP-urile care au pe ultima pozitie un numar X intre 0 si 127. Celelate IP-uri vor avea bit-ul 25 (primul bit din al 4-ulea octet) egal cu 1 si nu ar mai corespunde cu bit-ul 0 de pe pozitia 25 al lui 193.226.51.54. In acest caz, el va trimite pachetul unuia din calculatoarele care este in aceeasi retea cu el si care are o alta placa de retea care comunica cu Internet-ul. Adresa acestul calculator este adresa de gateway. Folosirea mastilor de retea (netmask-urilor) are o utilitate foarte mare in construirea algoritmilor de routare, prin folosirea operatiilor logice "bit cu bit", care iau foarte putin timp de procesare. La initializarea configuratiei de retea calculatorul calculeaza "adresa retelei" facand 'si logic bit cu bit' intre IP si netmask (practic se obtine adresa de IP in care s-au modificat in 0 bitii care sunt 0 in netmask). De exemplu pentru IP=193.226.51.130 netmask=255.255.255.0 adresa de retea este 193.226.51.0 iar pentru IP=193.226.51.130 netmask=255.255.255.192 (64 adrese), adresa de retea este 193.226.51.128. In momentul in care calculatorul trebuie sa determine daca un ip este in aceeasi retea cu IP-ul sau, el face ' si logic bit cu bit ' intre acel IP si netmask, calculand adresa de retea a acelui IP daca ar avea acea masca. Daca rezultatul coincide cu adresa de retea a IP-ului propriu, inseamna ca acel IP este in aceeasi retea cu el. Se observa ca punand in 2 IP-uri 0 pe bitii pe care netmask-ul ii are 0, rezultatele vor fi egale daca si numai daca IP-urile corespundeau la inceput pe pozitiile pe care netmask-ul este 1.Pentru subiectul uman exista exista metode mai mai simple pentru calculul mental al unei configuratii. Pentru calcul retelelor sub 256 de adrese (cel mai intalnit caz) calculele afecteaza doar ultimul din cele 4 numere prin care se reprezinta ip-ul. Netmask-ul va avea primele 3 numere 255, ultimul obtinandu-se scazand din 256 numarul de IP-uri din subnet. Invers, scazand ultimul numar al netmask-ului din 256 se obtine numarul de IP-uri din retea (numita si subnet cand este mai mica de 256 adrese). Deci un netmask 255.255.255.240 corespunde la un subnet de 16 IP-uri si invers. Adresa de retea corespunde pe primele 3 pozitii cu IP-ul, iar pe ultima pozitie are primul numar mai mic decat cel al IP-ului si divizibil cu numarul de IP-uri din subnet. Pentru exemplul de mai sus cu IP=193.226.51.130 netmask=255.255.255.192 (64 ip-uri), vom cauta cel mai mare numar care este mai mic decat 130 si divizibil cu 64. Acesta este 128, deci adresa de retea este 193.226.51.128. Adresa de broadcast este ceruta in unele sisteme si este folosita pentru a desemna toate calculatoarele dintr-un anumit subnet. Ea se obtine ca si adresa de retea din IP si netmask si se calculeaza facand 'sau bit cu bit' intre IP si 'negatul bit cu bit' al netmask-ului. Mai simplu, in IP se fac 1 bitii care in netmask sunt 0 asa cum pentru adresa de retea ei sunt pusi pe 0. Adresa de broacast este ultima adresa din retea, putandu-se calcula pentru subneturi pastrand pe primele 3 pozitii numerele din IP si pe a patra pozitie punand numarul corespunzator urmatorului subnet minus 1. Deci pt. IP=193.226.51.130 netmask=255.255.255.192 avem 64 IP-uri, adresa de retea este 193.226.51.128, adunam 64 la ultimul numar si scadem 1, deci obtinem 193.226.51.191. Cele mai multe sisteme calculeaza automat broadcast-ul, ca si adresa de retea. DNS-ul este prescurtarea de la Domain Name System si este o baza de date distribuita (ierarica) care contine corespondente intre nume de host (ex: www.yahoo.com) si IP-uri (ex. 216.32.74.52). Aceasta baza de date contine si informatii despre adresa IP a serverului de email pentru un domeniu, ca si corespondente intre IP si nume de host. Pentru a putea accesa aceaste baza de date trebuie sa existe setat cel putin o adresa de DNS, uzual doua, pentru cazul in care primul nu functioneaza. IP-ul respectiv este al unuia dintre calculatoarele care are instalat un server DNS si este bine sa existe o legatura cat mai buna pana la el (pentru retele mai mari se instaleaza un server DNS chiar in reteaua locala). Majoritatea serverelor DNS din lume raspund la interogari DNS, dar timpul de raspuns este direct proportional cu calitatea conexiunii pana la el, deci este bine sa fie cat mai aproape. Avand setat un server DNS valid, calculatorul poate sa afle IP-ul asociat oricarui nume de host din Internet. Serverul web apelant interogheaza recursiv mai multe servere, incepand cu unul din serverele "root" pe care le are predefinite. De ex. pentru domeniul www.yahoo.com intreaba un server "root" care ii spune ca stie nameserverele care se ocupa de domeniile terminate in ".com". Intreaba unul dintre aceste nameservere (virtual echivalente) si afla ca www.yahoo.com are un anumit IP (in cazul www.yahoo.com exista chiar o lista de IP-uri asociate, pentru impartirea cererilor intre mai multe servere). De obicei un nume de host se rezolva intr-un singur IP. Testarea conexiunii: in primul rand trebuie verificata conexiunea pana la gateway. In primul rand trebuie verificata conexiunea pana la gateway. Se va da un ping catre adresa de gateway. Indiferent daca platforma este Linux sau Windows, o functionare a conexiunii este ilustrata prin afisarea timpului in care pachetul de ping a facut drumul "dus-intors". In caz contrar se afiseaza "time out" pe Windows sau nu se afiseaza nimic in cazul Linux-ului. Daca acest test esueaza, in cvasitotalitatea cazurilor conexiunea este inutilizabila. Exista cazuri rare in care gateway-ul este configurat (printr-un firewall) sa nu raspunda la ping (nerecomandabil) si conexiunea sa fie functionala. Aceste cazuri sunt rare insa. O comanda mai putin standard care exista pe Linux si cu care se poate verifica indiferent de firewall este arping. Prin ea se poate verifica conexiunea doar intre host-ul local si alt host accesbil la nivel ethernet (cum este si gateway-ul). Se bazeaza pe trimiterea unei cereri de ARP in retea, intrebandu-se ce placa de retea are acel IP. Protocolul ARP este indispensabil comunicarii, daca un calculator cu acel IP este accesibil la nivel ethernet, atunci el va raspunde. O alta metoda de diagnosticare este verificarea tabelei de ARP dupa ping. Chiar daca exista un firewall, calculatorul spre care se da ping va raspunde la cererea ARP, deci tabela ARP va contine corespondenta intre acel IP si adresa fizica ("MAC-address-ul") placii de retea a calculatorului cu acel IP. Tabela ARP se poate vedea pe Linux prin comanda "arp -;na" iar in Windows cu comanda "arp -a". O modalitate mai puternica de depanare a retelei este uilitarul de Linux tcpdump. Rulat cu "tcpdump -;i eth0" de exemplu va afisa cateva informatii (sursa, destinatie, port) despre fiecare pachet care trece prin prima interfata de retea (eth0). Pentru filtrarea informatiilor se pot da argumente mai complexe, in care sa se specifice ce tipuri de pachete sa se afiseze. Ruland tcpdump de pe un calculator pe care nu se face trafic in retea, dar legat la o retea in care se face trafic, se vor observa broadcast-urile celorlate calculatoare care sunt legate in retea, de exemplu cereri ARP. Astfel se poate vedea daca conexiunea exista (cel putin intr-un sens, spre calcularul de pe care se fac teste). Astfel se poate si identifica dintre doua interfete care este eth0 si care este eth1 (se va pune cablul de retea in fiecare, pe rand, in timp ce se face "tcpdump -;i eth0". In cazul in care se incearca un ping, chiar daca legatura intre interfata si retea nu este functionala, se vor observa totusi cereri ARP ale calculatorului local, de genul "arp who has <gateway> tell <ip_local>" sau "arp who has <ip_retea locala> tell <ip_local>". Acestea nu trebuiesc confundate cu traficul pe care placa il observa din retea. In momentul in care legatura pana la gateway este functionala este foarte probabil ca legatura sa functioneze si in alta parte. Se poate incerca un ping la IP-urile serverelor DNS. Verificarea nu poate da informatii despre functionarea serverului DNS, dar poate verifica daca serverul este pornit si accesibil. Daca si nameserverele raspund, se poate incerca ping la un nume de host. Este bine sa se inceapa cu un ping la o adresa apropiata (ping www.ici.ro). Ping-ul ar trebui macar sa translateze numele de host in IP (iar acesta sa apara pe ecran), chiar daca hostul este inaccesibil. Daca comanda ping se blocheaza fara sa afiseze IP-ul desinatie sau spune "invalid host name" inseamna ca rezolvarea de nume nu functioneaza. Ori serverul (serverele) DNS sunt nefunctionale, ori este o problema cu configurarea DNS pe calculator. Se va verifica corectitudinea datelor introduse, in cazul Linux-ului in fisierul /etc/resolv.conf, in cazul Windows-ului in "Start/Settings/Control-Panel/Network/TCP-IP/Properties/DNS_configuration". Chiar daca rezolvarea numelor nu functioneaza pentru primul host, merita incercat si alt host care se stie ca functioneaza in "foc continuu" (ex: www.yahoo.com). Exista posibilitatea ca rezolvarea de nume sa nu functioneze si din cauza faptului ca accesul la serverele "root" nu sunt accesibile de catre nameservere (ex. conexiunea Internet nu este functionala). Se va incerca daca este posibil si cu un host din domeniul de care este responsabil acel nameserver (multe nameserver-e nu sunt numai apelanti ai bazei de date distribuite, ci contin chiar o portiune din acesta baza de date -; gazduiesc un domeniu internet, de exemplu "unibuc.ro", adica stie toate hosturile care se termina in "unibuc.ro"). Daca rezolvarea de nume nu functioneaza si se cunoaste un IP din exterior, se poate incerca ping la acel IP si daca nu functioneaza se poate da un "traceroute <IP>" pe Linux sau "tracert <IP>" pe Windows. Ultimul IP afisat este ultimul IP accesibil de pe calculatorul local. Este posibil ca legatura intre acel ultim host (router) atins si urmatorul sa fie nefunctionala, sau hostul urmator este nefunctional. In functie de numarul de routere prin care a reusit sa treaca pachetul se poate estima unde este problema. Daca o adresa raspunde la ping catre numele sau (ex. ping www.yahoo.com) dar nu poate fi accesata din browser (Netscape, Internet Explorer) cauza este foarte probabil sa fie o setare de proxy prin care browserul este instruit sa nu acceseze direct paginile, ci sa le ceara unui server proxy. In Netscape, setarea de proxy se afla in Edit/Preferences/Advanced/Proxyes, iar in Internet Explorer in View/Internet Options/Connection. Conectarea mai multor calculatoare la Internet Avand un IP si o conexiune valida la Internet, se pune problema legarii celorlalte calculatoare din apropierea sa la Internet. Probabil exista deja o retea pentru comunicarea acelor calculatoare intre ele, nu trebuie decat ca aceasta retea sa fie conectata la Internet. Pentru aceasta va fi nevoie de un router, cea mai simpla solutie fiind folosirea unui PC echipat cu doua placi de retea, una spre iesirea Internet si cealalta spre reteaua locala. O solutie foarte buna este instalarea pe router a sistemului de operare Linux, el oferind o multime de oportunitati precum gazduirea email-ului, a unui proxy, gazduirea unei pagini de web, al unui site ftp si protectia retelei interne fara absolut nici un cost in afara costurilor hardware. Cu putin mai multa memorie o masina cat de cat decenta se poate folosi in acelasi timp si ca statie de lucru, si chiar sa se lucreze remote pe ea de catre mai multi utilizatori. Instalarea Linux-ului Imediat dupa bootarea cu CD-ul de instalare se solicita cateva optiuni precum interfata de instalare de tip grafic sau text. De obicei instalarea in interfata grafica consuma mai multe resurse, deci instalarea in mod text este mai rapida. Alte optiuni precum tipul de mouse, tastatura, diferenta fata de timpul GMT, etc mai sunt cerute. In cazul in care se detecteaza o interfata de retea se cere si configuratia placii de retea (IP, netmask, gateway, nameserver-e, nume de host). Se mai cere setarea parolei de administrator (root), unele distributii cerand sa se creeze si un user obisnuit (ne-root). Cel mai important lucru (si oarecum mai delicat) este insa partitionarea si setarea punctelor de montare a partitiei. Programul de instalare va intreba daca se pastreaza partitiile existente sau se face repartitionare. La partitionare se vor sterge partitiile existente, apoi se vor creea una cate una partitiile, de obicei cea de swap prima si cea care se monteaza in "/" a doua. Se poate stabilii ca anumite directoare (ex: /home = directorul fisierelor personale ale utilizatorilor) sa fie "montate" intr-o partitie separata. Stergerea unei partitii cu informatii importante face extrem de dificila refacerea lor, deci este nevoie de multa atentie. Odata cu stabilirea partitiilor pe care le va folosi Linux-ul si a locului in care se vor monta ele se va cere permisunea de formatare a acestora. In cazul in care partitia a fost deja formatata, se poate trece peste formatare. Formatarea se poate face cu sau fara verificarea hard-disk-ului. Verificarea dureaza foarte mult (zeci de minute la hard-disk-uri mari) dar asigura impotriva defectiunilor fizice care pot compromite la un moment dat sistemul. In cazul in care hard-disk-ul a fost verificat de curand impotriva "bad-block-urilor (zone de memorare nefolosibile)", se poate trece peste verificare. In cazul in care nu se alege formatarea, instalarea va continua normal, nu se vor sterge eventuale fisiere existente, cel mult se vor suprascrie cele care coincid ca si nume/localizare cu cele ale sistemului care se instaleaza. Exista si optiunea de upgrade care modifica doar fisierele care s-au modificat de la versiunea anterioara, dar nu este recomandata procedura. In plus nu se poate face decat de la versiunea anterioara din aceeasi distributie. Un alt lucru mai dificil este configurarea sistemului de X-windows. Distributiile noi detecteaza un numar mare de placi video si monitoare, dar in cazul in care sistemul nu reuseste trebuie date informatii manual. Cel mai dificil ar fi specificarea frecventelor monitorului, de obicei neexistand cartea tehnica a acestuia. Se pot incerca toate posibilitatile la rand, incepand cu "High frecvency monitor 70Hz). Unele placi video care sunt suportate de serverul SVGA nu au suport decat pentru 256 culori, chiar daca placa video suporta mai multe culori. Oricum, pentru un router nu este nevoie de functionarea sistemului X-windows, modul text este suficient. Un lucru util este creearea unei disckete de boot pentru sistemul instalat, acest lucru fiind facut chiar de catre programul de instalare cu interogarea celui care instaleaza. O astfel de disketa foloseste in cazul in care sectorul de boot al hard-disk-ului este suprascris din greseala (de exemplu se instaleaza pe alta partitie Windows). In acest caz se ba boota cu disketa si se va rula /sbin/lilo, care va reface sectorul de boot. Sectorul de boot este primul sector al hard-disk-ului, in cazul in care bios-ul este setat sa boot-eze de pe acest disk el startand programul pe care il gaseste in acest sector. Acest program se foloseste pentru a starta mai multe sisteme de operare, sau acelasi sistem cu optiuni/kernele diferite. Cel mai folosit astfel de program pentru Linux este "lilo" (linux loader). El poate starta la alegere si alte sisteme de operare prezente in alte partiti (ex: Windows). Programul de instalare va intreba unde se doreste instalarea programului lilo, in MasterBoot (primul sector al hard-disk-ului) sau in primul sector al partitiei de Linux. Se va alege prima varianta, cea de-a doua folosind doar daca se foloseste un alt bootload-er global, care starteaza bootload-erul lilo. Alte optiuni cerute pot fi de exemplu tipul de encriptare a parolelor (MD5 este default si este o alegere buna), tipul de securitate ("medium" este o buna alegere). In general setarile default sunt alegeri potrivite. O portiune delicata este si alegerea pachetelor de instalare. Chiar si in cazul cunoasterii pachetelor importante, uitarea unui pachet poate cauza neplaceri ulterior, fiind mai dificila instalarea lui manuala. Cel mai simplu este sa se instaleze "full", bineinteles aceasta alegere necesita existenta spatiului necesar pe hard-disk. Unele distributii au pre-configurari pentru diferite utilizari ale viitorului sistem (ex.: server, statie de lucru, statie grafica, etc). Este recomandat macar sa se instaleze toate serverele de X-windows (default se instaleaza doar serverul care suporta placa video care a fost detectata), in cazul unei schimbari a placii video nefiind necesara instalarea driverului. Comenzi low-level de configurare retea ifconfig este comanda de configurare a interfetelor de retea. "ifconfig -a" afiseaza interfetele activate si configurarea lor. In cazul in care output-ul nu incape intr-o pagina de ecran, se poate folosi comanda "filtru" "more" care afiseaza output-ul pagina cu pagina (ifconfig -;a|more). Se poate folosi cu cale completa (/sbin/ifconfig) daca directorul /sbin nu este in lista de directoare in care se cauta executabilele -; variabila se enviroment PATH). Informatiile afisate contin ip-ul asignat, netmask-ul, adresa broadcast, counteri de pachete primite/trimise, erori de mai multe tipuri, utile in depanare. O interfata care a fost recunoscuta de kernel se poate activa cu "ifconfig eth0 inet <ip> netmask <netmask> broadcast <broadcast> (sau se inlocuieste eth0 cu eth1, eth2, etc). O interfata virtuala (alias) se poate face pe o interfata inlocuind eth0 cu eth0:1, eth0:2, etc). Interfetele virtuale nu folosesc decat in cazuri speciale cand se simuleaza printr-o placa de retea fizica mai multe placi de retea. Interfata lo este bine sa existe in toate sistemele (chiar daca nu sunt legate la retea). Ea este o interfata virtuala, care doar returneaza pachetele trimise spre ea. Este folosita pentru a simula prin ea conectarea de tip retea catre propriul calculator (de exemplu se poate incarca o pagina de web de pe aceeasi masina dand https://localhost sau https://127.0.0.1). route este comanda de configurare a routelor (routele controland directia in care se trimite un pachet spre o oarecare grupa de destinatii). "route -n" afiseaza routele curente, eventual se poate folosi "/sbin/route -n|more" cu paginarea output-ului.Routele contin pe linie adresa retelei, gateway-ul pentru a ajunge la acea retea, netmask-ul retelei, interfata prin care se ajunge la subnet si alte informatii mai putin utile depanarii. Ideea ar fi ca pentru fiecare pachet se parcurge fiecare linie de sus in jos, pana cand destinatia facuta 'si bit cu bit' cu masca de retea da adresa retelei din stanga. In acel moment se expediaza pachetul pe interfata scrisa in dreapta, catre placa de retea care raspunde la cererea de ARP pentru IP-ul de gateway. Ultima linie contine la netmask si adresa de retea "0.0.0.0", deci orice IP va face "match" cu aceasta regula, pachetul cu destinatie spre care nu exista routa explicita va pleca spre "default gateway". O routa care are trecut la gateway 0.0.0.0 este o routa "directly connected" adica IP-urile din acel subnet sunt accesibile direct (la nivel ethernet prin acea interfata). O routa spre un subnet se adauga cu comanda "route add -;net <subnet> netmask <netmask> gw <gateway>". O routa catre un host se adauga cu comanda "route add -host <host> gw <gateway> dev <ethx>" sau "direct pe interfata" cu "route add -host dev <ethx>". In kernelurile noi routa catre IP-urile din acelasi subnet cu IP-ul/IP-urile proprii se pune automat la ridicarea interfetei, prin acea interfata. In general nu trebuie pusa decat routa default prin "route add default gw <gateway>". Spre <gateway> trebuie sa existe o routa "direcly connected", daca gateway-ul este standard, un IP din acelasi subnet cu IP-ul calculatorului, aceasta routa exista. In caz contrar se poate pune o routa catre acel host pe acea interfata dar o asemenea necesitate este generata in general de proiectari defectuase ale retelei sau stari de tranzitie. Studiu de caz Presupunem ca exista un cablu UTP pana la un laborator dotat cu 20 calculatoare care au instalat sistemul de operare Windows, legate prin cablu BNC (coaxial) care trece pe la fiecare calculator. Este asignat un IP (193.226.51.54) cu netmask 255.255.255.192, gateway 193.226.51.1. Unul din calculatoare va fi instalat cu Linux, punandu-i-se inca o placa de retea cu priza UTP (majoritatea placilor BNC au si priza UTP). Placa dinspre cablul UTP (spre Internet) va avea IP-ul 193.226.51.54. Placa dinspre BNC (reteaua locala) va avea un IP "neroutabil", dintre cele special rezervate pentru uz intern (nu sunt folosibile in Internet). De exemplu va avea adresa 192.168.101.1 (IP=urile care incep cu 192.168. si cele care incep cu 10. sunt "neroutabile"). Netmask-ul va fi pentru reteau locala 255.255.255.0 (256 calculatoare maxim). Se putea pune si 255.255.0.0 (65536 calculatoare maxim) dar nu este nevoie. Comenzile de configurare ar trebui sa fie: ifconfig eth0 inet 193.226.51.54 netmask 255.255.255.192 broadcast 193.226.51.63 route add default gw 193.226.51.1 ifconfig eth1 inet 192.168.101.1 netmask 255.255.255.0 broadcast 192.168.101.1 Pentru configurarea DNS trebuie editat fisierul /etc/resolv.conf. Editorul standar UNIX este vi (vi /etc/resolv.conf). Se va muta cursorul pe linia dorita, se vor sterge caractere cu tasta "x". Se va trece in modul "insert" apasand tasta "i", se vor face adaugarile si se va salva si iesi din editor trecand in mod "comanda" cu tasta "Esc" si apasand ulterior ":wq". Un alt editor (mai intuitiv, semanand cu vechiul WordStar) este joe (joe /etc/resolv.conf). Se va edita fisierul si se va iesi cu "Ctrl+K,X" -; se apasa simultan Ctrl si K, apoi se elibereaza si se apasa X. Un help mai amanuntit se obtine cu "Ctrl+K,H". Daca exista instalat utilitarul "mc" (o interfata text semanand cu norton commander) atunci se poate folosi editorul sau "mcedit". Pe statiile Windows se va configura adresa de IP 192.168.101.x (x intre 2 si 254), netmask 255.255.255.0, gateway 192.168.101.1, DNS server 193.226.51.4. Hostul se poate pune dupa dorinta de ex: statie-2, statie-3, etc, domeniul poate fi cel al institutiei (de exemplu math.unibuc.ro), poate fi fictiv sau poate lipsi. Pentru a functiona cele 20 de calculatoare in retea, mai este necesar sa se activeze routaerea si masquarading-ul. Pentru activarea routarii se va scrie "1" in fisierul virtual /proc/sys/net/ipv4/ip_forward cu comanda: echo "1" > /proc/sys/net/ipv4/ip_forward Pentru a face masquarade este suficient sa se scrie o singura comanda, in cazul kernelelor 2.2.x sau celor 2.4.x cu modulul de ipchains activat comanda este: ipchains -;I forward -;s 192.168.101.0/255.255.255.0 -;j MASQ sau ipchains -;I forward -;s 192.168.101.0/24 -;j MASQ (/24 reprezinta o notare prescurtata a mastii de retea, prin numarul de biti "1" pe care ii contine la inceput). Deja calculatoarele Windows ar trebui sa poate accesa Internet-ul. Pentru asigurarea unei securitati sporite si pentru unele servicii suplimentare mai trebuiesc insa facute cateva configurari. Comanda simpla prezentata mai sus activeaza de fapt un mecanism complicat numit "masquarading", un caz particular de NAT (Network Address Translation). Pentru configurare se foloseste acelasi utilitare prin care se configureaza firewall-ul ("ipchains" sau "iptables" in kernel 2.4.x). Prin acest mecanism, pachetelor venite de la calculatoarele cu adrese neroutabile (192.168.101.x) li se modifica adresa sursa cu adresa dinspre Internet a Linuxului si portul cu un port liber al Linuxului. Pachetul de raspuns ajunge la adresa sursa, adica la Linux, care tine intr-o lista cu translatarile facute, si modifica destinatia pachetului cu sursa si destinatia oficiala. Astfel, un server accesat de un calculator din "spatele" Linuxului are impresia ca a fost accesat de catre Linux, iar masina care face accesul are impresia ca ea a discutat direct cu serverul din Internet. Acest mecanism se preteaza cel mai bine la conexiuni TCP/IP dar functioneaza fara probleme si cu pachete UDP si ICMP. Singurele probleme care apar sunt in cazul in care o aplicatie din spatele Linux-ului negociaza prin legatura stabilita un alt port de comunicare decat cel de pe care a plecat conexiunea initiala. Linux-ul nu poate afla despre acest port decat daca cunoaste protocolul folosit in negocierea portului (ex. FTP). In acest caz serverul din Internet considera ca trebuie sa se conecteze cu cel cu care a discutat (din punctul lui de vedere a discutat cu Linuxul). Linuxul nu poate forwarda cererea de deschidere a conexiunii venita din Internet spre masina din spatele Linuxului ci o considera o conexiune venita spre sine, si o respige. Pentru protocoalele foarte folosite (FTP de exemplu) exista module speciale care urmaresc negocierea intre aplicatii si forwardeaza conexiunea de feed-back la calculatorul "masquaradat". Este evident ca pe un calculator care iese in Internet prin masquarade nu se poate pune un server accesibil din Internet. Pe de alta parte insa, aceasta reprezinta si o protectie fata de posibilitatea unor atacuri din exterior spre reteaua locala. De obicei in reteaua locala nu exista decat statii de lucru, doar initiatori de conexiuni, nu servere accesate din exterior. Pentru astfel de cazuri serverul se instaleaza pe Linux, sau daca nu este posibil se folosesc adrese routabile. Recompilarea kernel-ului In cazul in care distributia care se instaleaza nu contine support pentru un anumit device (de exemplu o anumita placa de retea), este destul de probabil ca problema sa se rezolve prin compilarea unui kernel cu support pentru acel device. Sursele kernel-ului sunt continute in distributie sau se pot download-a ca arhiva tar.gz si tar.bz de la un mirror apropiat de kernel (ex. ftp://ftp.linux.ro/pub/kernel). Arhivele se numesc linux-2.x.y.tar.gz (sau similar cu tgz=tar.gz sau tar.bz). tar este extensia prin care se desemneaza o arhiva continand intr-un singur fisier mai multe fisiere si directoare. Extensia .gz este data in momentul comprimarii acestei arhive cu gzip, bz fiind extensia in cazul arhivarii cu bzip2. Arhiva se "desface" prin decomprimare (gunzip linux-2.x.y.tar.gz) si dezarhivare (tar -;xvf linux-2.x.y.tar). Decomprimarea pentru fisiere .bz se face cu bunzip fisier.bz. Pentru arhive .tar.gz se poate folosi tar -;xvzf linux-2.x.y.tar.gz care face in acelasi timp si decomprimarea. Optiunea -v este folosita pentru a activa modul "verbose" in care se afiseaza fiecare fisier extras din arhiva, -z semnificand faptul ca se face intai decomprimarea iar -x faptul ca se face extragere din arhiva. Dupa -f s epune numele arhivei. Arhiva a fost facuta printr-o comanda de genul "tar -;cvzf linux-2.x.y.tar.gz linux". In momentul in care se dezarhiveaza, se creeaza in directorul in care se face dezarhivarea un director numit "linux". Pentru compilare se intra in acest director ("cd linux") si se fac urmatorii pasi: - make menuconfig -; se configureaza ceea ce sa contina viitorul kernel.Exista o configuratie default de la care se pleaca si care se modifica in functie de nevoi. Important este ca procesorul ales la configurare sa nu fie mai puternic decat cel de pe masina pe care se instaleaza. In plus, daca exista device-ul speciale (scsi, placi ethernet) trebuiesc incluse in configuratie. Exista cateva facilitati care se pot include in kernel in plus fata de configuratia default (de ex. support pentru partitia de Dos/Windows), dar ele nu sunt in general neaparat necesare pentru functionarea sistemului. Pe de alta parte majoritatea optiunilor incluse nu fac sistemul nefunctional, cel mult maresc kernelul nejustificat. Trebuie avut grija sa nu se includa optiunea "Kernel autoreconfiguration" pentru ca in acel moment viitorul kernel va incerca sa booteze din retea. O privire prin help-ul fiecarei optiuni este binevenita. Exista si o versiune grafica a programului de configurare (make xconfig) - make dep -; se refac dependintele intre module - make bzImage -; se compileaza kernelul. Acesta va fi depus in arch/i386/boot/bzImage . Kernelul este comprimat cu autoextract pentru micsorarea dimensiunii, trebuind sa poata fi reprezentat pe disk intr-un bloc contiguu. Dupa compilare el se muta in alt director (uzual /boot) si se introduce in /etc/lilo.conf o intrare catre el dupa modelul celor deja existente. "label" este numele prin care se poate alege acel kernel din lilo, root reprezinta partitia pe care o va monta ca "/", image reprezinta kernelul. read-only se specifica pentru ca sistemul trebuie sa monteze partitia root read only, sa starteze programul /sbin/init, care verifica integritatea partitiei si abia apoi face "remontarea" read-write". Mai multe optiuni se pot trimite kernelului la bootare cu optiunea append. Daca inainte de montarea partitiei este necesara inserarea unor module care sa recunoasca partitia, se foloseste "initrd", montandu-se un fisier ca partitie "/", din care se insereaza modulul si se monteaza apoi partitia de pe disk. - make modules -; se compileaza modulele in cazul in care unele optiuni au fost incluse ca module. Suportul pentru toate placile de retea se poate compila astfel fara sa mareasca dimensiunea kernelului, urmand sa fie incarcat cel de care este nevoie. - make modules_install -; se instaleaza modulele intr-un director si se realizeaza si o harta a dependintelor intre ele - make install -; face alte setari pentru noul kernel - lilo -; reinstaleaza lilo cuprinzand si noul kernel Bootare fortata Lilo este aplicatia care se starteaza de catre bios la pornirea calculatoruluil. Este un program simplu in care se poate alege una din mai multe optiuni. Fiecare optiune reprezinta un kernel si anumite optiuni (in afara cazurilor in care se starteaza sistemul de pe o partitie non-Linux). Lilo incarca kernelul si ii transmite cateva optiuni printre care partitia pe care sa o monteze ca root ("/") si programul pe care sa il lanseze din acea partitie. Pentru un kernel cu label "lin" se poate da in lilo "lin root=/dev/hda2 init=/bin/bash ro". In acest caz linuxul va porni de pe partitie programul de shell (/bin/bash) si va exista o consola de administrator. La bootarea normala se starteaza programul /sbin/init, care lanseaza toate celelalte programe precum programul de login, daemonii (serverele), etc. Partitia astfel montata este read-only, de pe ea se poate rula un program care sa verifice si sa repare o partitie ajunsa inconsistenta din cauza unei caderi de curent de exemplul prin "/sbin/e2fsck -;y /dev/hda2". Se poate trece in read-write prin "mount -n -;o remount, rw /" pentru a face anumite modificari (schimba parola de root daca cea veche a fost uitata) . Inainte de restartare este bine sa se treaca partitia in read-only prin "mount -n -;o remount, ro /". Este indicat sa se ruleze si comanda sync pentru salvarea din memorie a bufferelor pe disk. Adresele routabile le asigneaza administratorul de retea al institutiei, din spatiul de adrese pe care il are la dispozitie deja sau pe care il obtine de la RIPE sau de la un "redistribuitor" de adrese local, numit LIR, de exemplu RNC (https://www.rnc.ro). RIPE este autoritatea europeana care aloca IP-uri participantilor la Internet, astfel incat sa nu existe un IP asignat la doi utilizatori diferiti. RIPE aloca unor "Local Internet Registry" (LIR) spatii de adrese pe care acestia le asigneaza catre utilizatori. Spatiul de adrese IPV4 (versiunea actuala de protocol IP, cu adrese IP pe 4 octeti) este asignat in proportie mare, astfel ca RIPE cere o argumentatie solida asupra lor, in cazul in care este posibila o solutie tip masquarade nu se aloca IP-uri routabile. Fiecare provider mare de Internet are un numar de clase C (de 256 IP-uri) pe care "le anunta" in Internet printr-un protocol numit BGP. Aceste sunt clasele pe care el si clientii sai le au alocate de catre RIPE (in cazul Europei). Protocolul BGP (Border Gateway Protocol) realizeaza transmiterea de catre un router catre vecinii sai a routelor pe care le cunoaste. In acest fel, dupa un scurt timp fiecare router afla fiecare routa din Internet. Routerele de la "periferia" Interetului (care separa cateva retele de restul Internetului) agrega routele din Internet intr-o singura routa (routa default sau 0.0.0.0/0), ignorand spatiile libere (clasele de adrese nefolosite inca). El are uzual o singura conexiune la Internet, iar routerul cu care este conectat ii este "default gateway". Orice pachet care nu este in lista celor cateva retele pe care le separa de Internet este trimis catre default gateway. Astfel se face ca un pachet spre o destinatie inexistenta in Internet se duce prin cateva routere, pana la un "core" router care cunoaste exact ce clase de adrese sunt accesibile in Internet si abia in acel punct pachetul este dropat si uzual se semnaleaza printr-un pachet ICMP special faptul ca nu exista routa catre acea destinatie. Domenii DNS Pentru a putea fi accesat din Internet printr-un anumit nume de host (nu numai prin IP) trebuie sa existe o "intrare DNS" continand acel nume si pointand catre IP-ul tau. Aceasta inregistrare se realizeaza pe un nameserver responsabil cu un anumit domeniu, in care se doreste acel nume de host. De exemplu daca se doreste numele www.unibuc.ro trebuie realizata inregistrarea pe nameserverele care sunt responsabile pentru acest domeniu (standardul cere ca pentru fiecare domeniu sa existe cel putin doua nameservere, pentru backup in cazul in care unul din ele devine nefunctional). In cazul in care domeniul nu existe (de exemplu se doreste numele www.ecuatii.ro) domeniul trebuie creeat pe nameserverul care se ocupa de domeniile '.ro". Autoritatea care creeaza domenii ".ro" este tot RNC (cea care poate asigna si IP-uri). Pentru un pret modic, care ii asigura autofinantarea, RNC poate delega catre doua nameservere un anumit domeniu. In acel moment orice modificare din acel domeniu se face pe cele doua nameservere, eventual se pot face subdomenii. Daca unul din nameservere poate fi usor Linux-ul folosit si ca router instaland un program din distributia standard numit named, celalalt nameserver nu este intotdeauna disponibil. Se poate folosi un nameserver al providerului sau chiar ambele nameservere ale providerului (orice provider care se respecta are macar 2 nameservere). Se pot configura nameserverele providerului sa incarce informatiile despre domeniu din nameserverul proprietarului domeniului. Informatiile despre un domeniu mai sunt numite si "zone" iar nameserverul configurat sa incarce "zona" de la alt nameserver este numit "slave" fata de cel de pe care se incarca zona care este numit "master" pe respectiva zona. Aceste denumiri sunt relative, un server "master" poate fi "slave" la ransul sau altui nameserver. Rezolvarea unui domeniu se poate verifica cu comanda host. De exemplu: "host www.yahoo.com" rezolva adresa de host in IP, "host -;t mx yahoo.com" afiseaza serverele de email care deservesc domaniul yahoo.com, "host -;t ns yahoo.com" afiseaza nameserverele care sunt responsabile cu domeniul "yahoo.com". Aceste raspunsuri sunt cerute de la nameserverul setat default (in /etc/resolv.conf), in cazul in care se doresc informatii de la un alt nameserver se adauga nume sau la sfarsitul comenzii, de exemplu "host -;t ns unibuc.ro ns.rnc.ro" verifica la RNC pe ce nameservere sunt definite informatiile despre domeniul unibuc.ro. Acest lucru este util deoarece un nameserver in care este configurat un domeniu si este declarat master pe acesta raspunde din fisierul propriu de configuratie pentru acest domeniu, chiar daca el nu este inregistrat in Internet ca responsabil pentru domeniu. Restul Internetului (cei care nu il folosesc ca nameserver direct) nu il vor intreba despre domeniu si vor avea o alta viziune asupra domeniului (data de realele nameservere responsabile). Serverul de email In momentul in care exista un domeniu, se pot creea si casute postale de tip user@domeniu. Pentru a putea folosi aceste adrese de email trebuie sa exista in zona care se refera la acest domeniu o inregistrare de tip "IN MX" (inregistrarile despre IP-ul unui host sunt de tip "IN A"). Ip-ul care este trecut in acesta inregistrare va fi accesat pe portul 25 pentru a i se livra emailul pentru acest domeniu. Se pot definii mai multe intrari MX, pentru cazul in care unul din servere nu este disponibil. Exista prioritati, numarul mic inseamna prioritate mai mare. Serverul de email este si el in distributiile standard de Linux, exista chiar mai multe (sendmail, qmail, postfix). Scopul serverului de email este sa primeasca si sa trimita mesaje email. Mesajele pot fi catre domeniul pentru care are definite casutele postale sau pot fi mesaje trimise de utilizatori (detinatorii casutelor postale) catre alte servere de email din Internet. Actiunea prin care un server de email primeste un mesaj care nu ii este adresat pentru a-l forwarda mai departe se numeste "relay". Serverul de email trebuie sa faca "relay" doar pentru utilizatorii care au casute postale acolo, altfel cineva poate trimite email nesolicitat ("spam") prin acel server email, pentru a-si ascunde identitatea fata de destinatar. Primirea emailului si trimiterea lor sunt lucruri distincte, pe care le poate face un singur server de email sau doua separate. Emailul primit se poate citi local de pe server cu un client de email ("mail", "pine") sau se poate citi remote cu un client special de email prin POP3 sau IMAP din Netscape Communicator, Outlook Express, etc. Trimiterea se face din acesti clienti, specificand-use un server. De remarcat faptul ca daca in cazul citirii emailului se cere un username si o parola, in cazul trimiterii nu se cere uzual vreo parola, si chiar se pot trimite emailuri cu orice sursa, singura cerinta fiind ca domeniul adresei sursa sa se poata "rezolva" -; sa existe pentru el o intrare "MX". Proxy De multe ori, mai multi utilizatori acceseaza aceleasi pagini, facand acelasi transfer de mai multe ori inutil. Pentru a se folosi mai eficient conexiunea la Internet s-a proiectat un server "proxy" care are rolul de a prelua cererile de la browser si de a intoarce pagina ceruta, fie accesand Internet-ul, fie accesand "cache"-ul pe care il face pe hard-disk cu paginile accesate anterior. Se fac verificari ale datei de modificare pentru paginile care au termen de expirare. Proxy-ul poate fi si o varianta la masquarade, dar are dezavantajul ca poate fi folosit doar pentru anumite protocoale pentru care este proiectat (http, ftp, etc). Browser-ele au de obicei implementat protocolul de interogare a proxy-urilor, nu trebuie decat configurat IP-ul masinii proxy si portul pe care "asculta" serverul de proxy. Unele proxy-uri pot fi setate sa ceara si o autentificare username/password. Exista si o varianta mai speciala de proxy numita "transparent proxy" prin care pachetele care au plecat spre Internet sunt redirectate de catre routerul Linux spre portul pe care "asculta" proxy-ul, iar acesta raspunde la cererea pe care browserul crede ca o face serverului web din Internet. Avantajul ar fi ca nu mai trebuie instruiti utilizatorii sa seteze/deseteze proxy-ul din browser. Redirectarea catre portul de proxy se face tot cu utilitarul care configureaza firewall-ul ("ipchains" sau "iptables"), o linie de redirect ar arata cam asa: ipchains -;I input -;s 192.168.101.0/24 -;d 0.0.0.0/0 80 -;p tcp -;j REDIRECT 3128 unde 3128 este portul pe care asculta proxy-ul, 0.0.0.0/0 reprezinta reteaua continand orice IP, 80 reprezinta portul de http, tcp reprezinta tipul de protocol IP. Securitate In momentul conectarii la Internet problema securitatii devine mult mai complexa, posibilitatea conectarii in orice punct al Internet-ului aduce cu sine si posibilitatea unui atac din Internet. In momentul in care exista doar o retea locala izolata, numarul celor posibil interesati de a eluda securitatea sistemului este limitat, atat prin numarul mic de persoane care au acces la aceasta retea cat si prin faptul ca eventuale incercari de atac pot fi descoperite si se pot lua masuri impotriva atacatorului. In cazul atacurilor din Internet, atacatorul poate fi greu descoperit, si chiar descoperit se poate dovedii greu fapta acestuia. In plus, atacatorul (numit si hacker) din Internet nu are nici un interes in comun cu institutia al carui calculator a fost atacat, deci nu vor manifesta prea multe scrupule. Hacker-ii pot distruge date importante fara sa aiba un interes direct in aceasta, pot insa si accesa date confidentiale si pot aduce prejudicii financiare prin "furt electronic". In cazul unei institutii non-profit nu exista prea multe date secrete, in afara de parolele de acces in sisteme. Hacker-ii pot folosi aceste sisteme ca punct de plecare pentru atacul altor sisteme, pentru a fi mult mai greu localizati. Ei pot distruge si date importante pentru a isi demonstra puterea sau din neglijenta. Protectia sistemelor conectate la Internet se face in special la demarcatia intre reteaua locala si Internet. In momentul in care atacurile din Internet sunt controlate, securitatea revine la simplitatea administrarii unui retele locale. Pentru a realiza o astfel de securitate reteaua se proiecteaza astfel incat iesirea in Intrenet (sau fiecare iesire daca exista mai multe) sa treaca printr-un firewall (de obicei un router) care sa contina niste reguli stricte in privinta pachetelor care intra din Internet in retea locala (uneori si pentru pachetele care pleaca in Internet). Acest firewall poate fi facut foarte usor pe routerul Linux, care are deci inca un rol in retea. Trebuie spus ca nu se poate aprecia securitatea dupa existenta sau nu a firewall-ului. Exista firewall-uri mai bune (mai restrictive) si mai putin bune (mai permisive). Firewall-urile mai restrictive pot adauga anumite dificultati pentru utilizatori (de exemplu accesul la FTP), de aceea chiar avand firewall sistemul poate fi totusi vulnerabil la anumite atacuri. Exista doua extreme, firewall-ul care permite orice (echivalent cu lipsa lui) si firewall-ul care nu permite accesul niciunui pachet (echivalent cu intreruperea cablului intre reteaua locala si Internet. Acest ultim caz este complet sigur din punct de vedere al securitatii dar nu permite nici accesul in Internet dinspre reteaua locala. De aici se poate pleca insa, permitand pe rand numai pachetele care sunt neaparat necesare. Cele mai utilizate atacuri sunt de tip Deny of Service (DoS) si de tip "remote shell". Primul tip de atac urmareste aducerea in stare de nefunctionare a sistemului, supraincarcand-ul de obicei, cel de-al doilea urmareste accesul la resursele sistemului, fiind mai destructiv. Atacul DoS se poate face de exemplu trimitand cereri foarte multe unui server. De exemplu se se poate face un flood (inundare) cu pachete de deschidere a conexiunii (SYN). Sistemul aloca resurse pentru fiecare conexiune, dar conexiunile sunt abandonate deschise. In scurt timp tabela de conexiuni creste foarte mult, la fiecare pachet trebuind facute un numar de operatii proportional cu numarul de conexiuni. Daca algoritmul de cautare nu este optimizat sistemul de operare poate sucomba in scurt timp. In plus, daca aplicatia-server atacata deschide o instanta a sa pentru fiecare conexiune, va umple foarte repede memoria disponibila. In cazul in care numarul de conectari este limitat se poate proteja incarcarea sistemului, dar il face sa respinga si conexiuni valide. Daca atacul vine de pe o IP-sursa fix se poate pune o regula in firewall care sa respinga aceste pachete, dar daca atacul vine de pe mai multe surse (false) nu se poate face decat restrictionarea accesului de la un numar de IP-uri prestabilite. In cazul unui server web acest lucru echivaleaza cu nefunctionarea sa. De obicei protectiile pentru atacuri DoS sunt dificil de facut, aceste atacuri umplu de obicei banda catre Internet a celui atacat, facand-o impracticabila, singura sansa este identificarea atacatorului si reclamarea sa la providerul sau. De obicei atacul se face de pe un server care nu ii apartine, pe care a obtinut acces prin mijloace nelegale, deci proprietarul serverului poate fi atentionat sa ii ingradeasca accesul. Totusi, atacurile DoS nu sunt extrem de multe, avand in |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite |
|