Articole Etichetate ‘Linux

09
Iul
08

Cum se configureaza un firewall

Se spune ca nu esti administrator de Unix pana nu configurezi singur un server de mail, un server de DNS si un firewall. Din toata munca la primul meu server mai tin minte doar ca era un Debian 2.0 cu kernel 2.0.34 , am facut masquerading cu ipfw, proxy cu squid si mail server cu smail.

Acum o sa descriu principiile pe care ma bazez cand configurez un firewall. Informatia prezentata nu este nici completa, nici general valabila si nici nu garantez ca este exacta; dupa cum am zis, doar indicatii generale.

Ca sa configuram un firewall, trebuie sa stim ce poate si ce vrem de la el. Un firewall este un program care proceseaza pachetele IP primite de la placile de retea si hotaraste ce face cu ele. Poate fi folosit pentru a proteja reteaua interna de intruziuni, pentru a da prioritate unor anumiti clienti sau unor anumite servicii, pentru a impiedica conexiunile din reteaua interna catre anumite servicii (de ex. torrent, dc++) sau pentru redirecta toate conexiunile catre un serviciu spre serverul dedicat.

Mai intai se defineste NAT (Network Address Translation): care este interfata interna, care este clasa de adrese a retelei interne, care este interfata externa, care este adresa interfetei externe, cum se translateaza adresele interne.

Trecem la filtrarea pachetelor IP. Actiunea implicita este ca se resping toate pachetele, pe toate interfetele.

Apoi se definesc adresele din reteaua interna care au voie sa initieze conexiuni catre reteaua externa. Se pot alege sursa (adrese individuale, subretele), destinatia (adrese, subretele), portul, intervalul de timp, sistemul de operare al computerului sursa.

In continuare se definesc adresele de Internet de la care acceptam conexiuni, de la ce adrese, catre ce porturi, intre ce ore etc.

Apoi stabilim care dintre pachetele acceptate vor fi transmise catre destinatie si care va fi destinatia. Pachetele sosite pe interfata interna catre reteaua externa (Internet sau orice altceva), vor fi lasate sa treaca, deoarece au fost deja filtrate. Pachetele sosite pe interfata externa vor fi trimise catre serverele dedicate, dupa portul (serviciul) pe care il acceseaza: 80 – serverul de web, 21 – FTP, 22 – SSH etc. Trimiterea conexiunilor externe catre un server in interior se numeste “port forwarding”.

In conditii ideale, serverele se vor afla pe o retea diferita, care se conecteaza la firewall pe alta interfata. Aceasta retea se numeste DMZ (DeMilitarized Zone), pentru ca este o retea interna, dar in care nu avem incredere. De ce? Daca un server este spart de hackeri, el poate deveni baza unui atac catre reteaua interna. Firewall-ul trebuie sa permita numai conexiuni din reteaua interna catre DMZ si nici o conexiune din DMZ spre reteaua interna. De asemenea, din Internet nu acceptam conexiuni catre adrese din DMZ, ci numai catre interfata externa a firewall-ului, pe care le redirectam noi catre serverul potrivit. De la serverele din DMZ e bine sa acceptam conexiuni spre Internet numai catre serviciile pe care se ofera serverele; adica un server de mail nu are de ce sa se conecteze la un alt server pe portul 22, mail se livreaza pe porturile 25 (SMTP) si 465 (secure SMTP). Punem aceasta limitare pentru a ingreuna (pe cat posibil) viata unui hacker care ia controlul asupra unui server din DMZ si incearca sa il foloseasca pentru alte activitati; in felul acesta ne asiguram ca serverul de mail nu va deveni – subit – server de FTP sau de torrent.

Acum putem sa ne ocupam de traffic shaping (adica prioritati). Definim cozi pentru computerele/serverele/serviciile importante si ne asiguram ca rezervam latime de banda pentru activitatile importante.

Acestia sunt, pe scurt, pasii necesari pentru a configura un firewall.

O foarte necesara precizare: faptul ca avem instalat un firewall nu ne protejeaza serverele de vulnerabilitatile pe care le contin software-ul lor. Ce vreau sa spun? Daca avem un server de web care ruleaza IIS (de exemplu) si nu am pus toate patch-urile, este posibil ca o cerere HTTP sa declanseze vulnerabilitatea si autorul sa preia controlul serverului. Deoarece cererea a fost o cerere HTTP obisnuita, sosita pe portul 80 si trimisa catre serverul de web, firewall-ul nu are cum sa o opreasca; el stie ca tot ce vine pt el pe portul 80, trebuie sa ajunga la serverul de web. Asa ca, verificati zilnic daca a aparut un patch nou si instalati-l imediat ce apare.

Urmatoarea intrebare este: ce firewall folosim? Pentru Windows exista cateva firewall-uri comerciale, printre care cele mai cunoscute sunt Check Point Firewall si Microsoft ISA server. Eu, ca de obicei, nu recomand Microsoft. De ce? Pentru ca nu am reusit sa stapanesc Microsoft ISA, dar am configurat rapid Check Point. Ca de obicei, pentru a putea folosi un produs Microsoft complex, trebuie sa platesti cateva (multe) sute de dolari pe cursuri.

Utilizatorii  de Linux sunt limitati la a folosi IP Tables – un mecanism de filtrare de pachete. Pentru port forwarding nu stiu ce se foloseste, iar pentru prioritati/cozi se compileaza in kernel QoS si se configureaza separat. Exista si scripturi care usureaza configurarea firewall-ului, dar nu m-au interesat prea mult. De ce?

Pentru ca eu am folosit OpenBSD pentru firewall. OpenBSD are un firewall numit pf (Packet Filter). PF face totul: filtrare de pachete, port forwarding, NAT, traffic shaping. Si toata configurarea se face editand fisierul /etc/pf.conf.

FreeBSD are 3 firewall-uri incorporate: IPFILTER (cunoscut si ca IPF), IPFIREWALL (sau IPFW) si PacketFilter de la OpenBSD (numit si PF). Pentru traffic shaping se pot folosi altq sau dummynet.

NetBSD foloseste ipfilter pentru firewall. Nu am configurat firewall pe alte sisteme de operare, asa ca nu pot sa dau alte exemple de software pentru firewall.

20
Iun
08

Vista? Nuuu…

Slashdot ne ofera un clip despre securitatea “legendara” a Windows Vista. Mai exact, arata cum poti capata acces la un computer cu Vista, folosind un Linux live cd, fara sa stii nici un nume de utilizator, fara parole, fara nimic. Nu intru in detalii, pentru ca videoclipul este foarte elocvent, dar va pot da un sfat: daca aveti un computer cu Windows si pe el aveti informatii doar pentru ochii vostri, pastrati-le in forma criptata si evitati sa lasati computerul la indemana persoanelor in care nu aveti incredere.

15
Iun
08

FreeBSD

FreeBSD este un sistem de operare bazat pe o versiune de Unix numita 4.4BSD. Spre deosebire de Linux, care este un kernel in jurul caruia se construieste o distributie, FreeBSD este un sistem de operare complet.

Comparativ cu Linux, utilizatorul nu are prea multe diferente de constatat: interfata grafica este X + un window manager (KDE, Gnome, XFCE sau altul), browserul implicit este Firefox (Konqueror pentru KDE), clientul de e-mail este Thunderbird (sau KMail pentru KDE), pentru office exista OpenOffice etc.

Pentru administratorul sistemului, diferentele sunt notabile. In primul rand procesul de boot: in locul directoarelor /etc/rc0.d pana la/etc/rcS.d care controleaza procesele lansate in fiecare runlevel, FreeBSD are doar doua fisiere care controleza programele pornite: /etc/rc.conf si /etc/rc.local, simplificand mult configurarea.

O alta diferenta majora consta in sistemul de software ports. Pe Linux, daca vrei sa instalezi un software nou, ori il gasesti la furnizorul distributiei deja compilat pentru distributia pe care o ai, ori iei sursa si o compilezi. Pe FreeBSD (si pe NetBSD si OpenBSD) exista un mecanism care iti permite sa alegi dintr-o gama foarte larga de programe si sistemul downloadeaza sursa, o compileaza si instaleaza programul ales. Mai mult decat atat, sistemul downloadeaza, compileaza si instaleaza toate programele si bibliotecile de care are nevoie programul ales.

FreeBSD are si un emulator de Linux, adica poate rula programe compilate pentru Linux fara nici o modificare. Acest lucru mi-a permis sa rulez Informix Dynamic Server (versiunea pentru Linux) pe FreeBSD.

Una din cele mai importante diferente intre sistemele BSD si Linux este licenta: Linux foloseste licenta GPL versiunea 2, iar *BSD folosesc licenta BSD. GPL v2 zice (pe scurt) “poti face ce vrei cu acest program, dar, daca scrii un alt program bazat pe el, trebuie sa ne dai ceea ce ai scris tu”. Licenta BSD, pe de alta parte, zice “poti face orice cu acest program, dar in sursa trebuie sa scrie ca am lucrat si eu la el’. Cu alte cuvinte, daca modific kernelul de Linux (il imbunatatesc), trebuie sa spun tuturor ce am facut si maine alta companie poate face bani din munca mea. Daca iau FreeBSD si il modific, pot sa il numesc MihaiBSD si sa il vand cu 5000$ licenta. Nu trebuie sa arat nimanui nici o sursa si nici nu trebuie sa platesc vreo licenta. De fapt, nici nu trebuie sa il modific, pot sa il vand asa cum e :D

Cat despre capabilitati, ultima versiune de FreeBSD a adaugat scalabilitate liniara pe sisteme cu pana la 8 core (de exemplu server dual procesor cu 4-core/CPU sau quad procesor cu 2-core pe  CPU). Benchmark-urile au aratat ca FreeBSD ofera o performanta dubla pentru MySQL si PostgreSQL decat Linux pe servere 8-core. A mai adaugat suport pentru sistemul de fisiere ZFS de la Sun si suport pentru retele de 10 Gbps – da, 10 Giga biti pe secunda.

In continure, cateva screenshots cu desktopuri FreeBSD.

FreeBSD + KDE:

KDE

FreeBSD + Gnome

Gnome

FreeBSD + Window Maker

Window Maker

Si, la final, preferata fanilor BSD – NUMAI pentru cei peste 18 ani.

07
Iun
08

Multitouch

Inspirat de comentariul lui Alex Popovici la postul meu “Old news“, am adunat cateva clipuri demonstrand tehnologia MPX (Multi Pointer X server) – echivalentul Multitouch – pe Linux.

Primul video ne arata un ecran senzitiv si Google Maps ruland pe un Ubuntu:

Urmatorul video ne arata un computer ruland Ubuntu si folosind doi mousi, fiecare mouse lucrand independent. Puteti incerca acelasi lucru in Windows XP sau Vista si veti vedea ca rezultatul este total diferit de ceea ce obtineti pe Linux.

In cele din urma, un clip in care se demonstreaza utilizarea Compiz Fusion pe un Ubuntu cu ecran senzitiv. Pe scurt, Compiz Fusion este o colectie de programe care ofera efectele care au facut faimoasa interfata Vista. Ah, si sa nu uitam ca Aero (minunata interfata Vista) nu functioneaza pe toate computerele :D

06
Iun
08

Despre Linux

De multe ori sunt intrebat “Ce Linux sa-mi instalez?”. Intrebarea are mai multe raspunsuri posibile si o sa incerc sa le abordez pe cele mai importante dintre acestea.

Mai intai niste definitii: Linux este un kernel (nucleu de sistem de operare) scris de un finlandez (parca) – Linus Torvalds. Diverse organizatii au folosit acest kernel pentru a construi un sistem de operare. Un sistem de operare care foloseste kernelul Linux este numit distributie. Acum intrebarea “Ce Linux sa-mi instalez?” devine “Ce distributie de Linux sa folosesc?”.

Cele mai importante si care stau la baza majoritatii celorlalte distributii sunt: Debian, Slackware si RedHat. Dintre cele mai potrivite pentru utilizarea acasa sunt Ubuntu, Mandriva, Zenwalk, OpenSUSE, Fedora.

Ubuntu este o distributie sponsorizata de firma Canonical, bazata pe Debian, care are cea mai mare raspandire in momentul de fata. Este distributia pe care o folosesc de 18 luni si sunt deplin multumit de ea. Are o interfata consistenta (eu folosesc varianta Kubuntu, cu interfata KDE), vine cu software gratuit care satisface aproape toate necesitatile utilizatorului obisnuit: browser de web, clienti de e-mail, ftp, torrent, IRC, instant messaging, news, blog, programe de tip office, medii de programare, playere multimedia, DVD player, software de scris CD si DVD, programe de editare audio, foto, video, modelare 3D, CAD, jocuri etc. Are un sistem automat de actualizari si un Control Centre foarte detaliat. Recomandarea mea este Kubuntu, adica Ubuntu + KDE.

Mandriva (cunoscuta si ca Mandrake) este o distributie creata de o firma franceza si foloseste elemente din RedHat. Este prima distributie pentru desktop care m-a atras si pe care am folosit-o. Vine cu o multitudine de pachete software, ca si Ubuntu, dar e ceva mai dificil sa adaugi software nou, care nu e furnizat de Mandriva. Poate era vina mea – eram familiarizat cu Debian si nu m-am straduit sa invat sa folosesc Mandriva. Am renuntat la Mandriva pentru Ubuntu numai pentru ca Ubuntu are un sistem mai usor si mai flexibil de instalare/dezinstalare de software.

Zenwalk este o distributie relativ noua, bazata pe Slackware. Mai exact este un Slackware cu minim de software preinstalat. De asemenea utilizeaza interfata Xfce, care este foarte configurabila si necesita mult mai putine resurse decat interfetele mai “mari” cum ar fi KDE sau Gnome. Ca sa ofer un termen de comparatie, diferenta de viteza intre un Linux + KDE si un Linux + Xfce este aproximativ care intre Windows XP si Windows 98. Il recomand pentru computere mai vechi – mie mi-a mers bine pe un Pentium 3 Celeron la 500MHz.

OpenSUSE este o distributie creata de firma SUSE (achizitionata de Novell). Sistemul de instalare de software este preluat de la RedHat (un motiv in plus sa nu o folosesc :D ). Am evaluat-o si mi-a placut, nu am gasit probleme si nu a fost nimic ce Ubuntu putea face si OpenSUSE nu. Ca sa il citez pe un prieten care a folosit-o o perioada mai indelungata: “rigoare germana” (Firma SUSE a fost o firma germana inainte sa fie achizitionata de Novell). O recomand pentru firme, adica pentru medii in care ai nevoie de un computer care sa functioneze si care nu necesita frecvente instalari/dezinstalari de software.

Fedora este varianta gratuita a RedHat. Niciodata nu am avut o parere buna despre RedHat, deoarece ei au fost mereu altfel. In ce sens? Simplu: ei sunt o companie care traieste din vanzarea de software, din suport tehnic si din cursuri de instruire. Daca RedHat Linux ar fi construit ca si celelalte distributii de Linux, atunci un administrator care a lucrat cu Debian sau cu Slackware sau cu SUSE ar fi capabil sa administreze si RedHat; da, ati inteles, atunci nu ar mai fi nevoiti sa cumpere cursuri de instruire sau suport tehnic. Faptul ca e diferit m-a facut mereu sa bajbai cand a trebuit sa configurez/repar un RedHat si a trebuit mereu sa invat cum se face un lucru in Linux si cum se face in RedHat. Concluzia? Am abandonat RedHat :D Am mai testat Fedora anul trecut si nu am avut decat o singura neplacere, dar majora: dupa un update important nu a mai vrut sa porneasca… Nu o recomand decat celor care cunosc personal un expert in Linux si il pot intreba toate cele.

Cred ca am spus prea multe si nu foarte coerent. Sper doar sa nu fi indepartat nici un potential utilizator de Linux….




Add to Technorati Favorites

RSS Pauza de cafea

Ganduri trecute

Ne-am mai plimbat pe