Tutorial - Primi pasi in lumea FreeBSD-ului

    Share

    Admin
    Administrator
    Administrator

    Number of posts : 91
    Location : Europa
    Warnings: :
    0 / 1000 / 100

    Points : 13
    Registration date : 2008-01-01

    Tutorial - Primi pasi in lumea FreeBSD-ului

    Post by Admin on Sun Feb 03, 2008 2:43 pm

    Acest articol este menit sa va faca o idee despre sistemul de operare
    FreeBSD. El se adreseaza atat utilizatorilor de Linux, cat si celor
    care nu au incercat inca un sistem de operare bazat pe UNIX.

    FreeBSD
    este un sistem de operare bazat pe 4.4BSD Lite pentru calculatoare
    Intel (x86 si Itanium), AMD64, Alpha, Sun UltraSPARC. Portarea spre
    alte arhitecturi este inca in lucru. Nasterea freeBSD-ului a avut loc
    la inceputul anului 1993. Scopul principal a fost producerea unui
    sistem de operare care sa inlature deficientele sistemului 386BSD

    Dezvoltarea
    FreeBSD este un proces deschis si flexibil, bazandu-se pe contributia
    miilor de oameni din toata lumea ce colaboreaza prin intermediul
    Internetului.

    Initialele BSD provin de la "Berkeley Software
    Distribution". Partile principale ale sistemul de operare sunt:
    kernelul, librariile C, utilitare ca shell-uri, utilitare pentru lucrul
    cu fisiere, compilatoare, link-editoare, etc., sistemul X Window cu
    rolul de display.

    Sistemul de operare FreeBSD este mai putin
    cunoscut, din mai multe motive, printre care: dezvoltatorii sistemului
    sunt interesati mai mult de optimizarea codului decat de marketing-ul
    sistemului de operare, interesul dezvoltatorilor este de a face un
    sistem stabil, nu unul usor de folosit, din acest motiv incepatorii nu
    se simt prea "confortabil".

    Majoritatea utilizatorilor de
    computere folosesc sistemul de operare Windows, putin folosesc o
    distributie de Linux si foarte putini folosesc freeBSD. Sa facem o mica
    comparatie intre Linux si FreeBSD. Ambele sunt sisteme de operare
    derivate din UNIX, ambele sunt dezvoltate de proiecte necomerciale
    (exceptie facand distributiile de Linux comerciale, care au aparut in
    ultimul timp).

    Kernelul FreeBSD este dezvoltat si updatat urmand
    modelul Open Source. Astfel se mentine sub Concurrent Versions System
    (CVS) un "source tree" public, care contine toate fisierele, incluzand
    documentatia, de unde utilizatorii pot sa isi copie versiunea dorita a
    sistemului de operare.

    Persoanele din lumea intraga care isi
    aduc contributia la dezvoltarea sistemului de operare se impart in trei
    categorii. Cei din prima categorie scriu cod sau documentatie, dar ei
    nu au voie sa adauge direct cod sursa in sistemul de operare, pentru
    acest lucru este necesar ca cei din a doua categorie sa verifice codul
    sursa. A treia categorie se ocupa de menagement-ul proiectului, fiind
    numita "core team". Se observa deja diferente fata de Linux: nici o
    persoana nu controleaza intreg continutul sistemului de operare, pe
    cand in proiectele Linux multor persoane li se permite sa faca
    modificari. Apoi mai exista un loc central, public, numit "central
    repository", unde se poat gasi toate sursele sistemului de operare,
    chiar in in cazul versiunilor mai vechi.

    Lansarile de freeBSD se
    fac in mai multe variante. Asemanator Linux-ului, se asigneaza un
    numar, de exemplu, 4.8, 5.3. Dar, in plus, mai apare un sufix, indicand
    scopul. Astfel, versiunea pentru dezvoltatori se numeste CURENT, apoi,
    la intervale regulate de timp, se lanseaza versiunea RELEASE, care este
    disponibila pe CD sau se poate downloada prin ftp de pe
    site-uri.Bug-urile gasite in aceasta versiune sunt remediate, rezultand
    versiunea STABLE.

    Spre deosebire de acest sistem, la Linux
    exista versiunea stabila si versiunea pentru dezvoltatori. Versiunea
    stabila are un versiunea minora un numar par (2.0,2.2,2.4, etc), pe
    cand cele pentru dezvoltatori au un numar impar (2.1,2.3,2.5,etc). In
    fiecare caz, mai exista un alt numar, specificand exact versiunea.
    Aditional, fiecare producator incorporeaza anumite utilitati pentru
    utilizator, de accea numele distributiei este important.

    In
    contrast cu varietatea mare de distributii Linux existente, exista doar
    trei sisteme open source bazate pe BSD, unul din ele fiind FreeBSD,
    alaturi de NetBSD si OpenBSD.

    FreeBSD-ul este distribuit sub
    licenta BSD, fiind mai atractiva pentru aplicatiile embedded, fata de
    Linux, care se distribuie sub licenta GPL (GNU General Public License).

    Deoarece
    pentru FreeBSD sunt create mai putine aplicatii decat pentru Linux,
    dezvoltatorii FreeBSD-ului au creat un pachet ce permite aplicatiilor
    realizate pentru Linux sa fie rulate pe FreeBSD. Pachetul include
    modificarile necesare asupra kernelului pentru a prelucra corect
    apelurile de sistem din Linux, dar si alte fisiere necesare, cum ar fi
    librariile C. (Librariile C din freeBSD sunt scrise avand la baza cod
    sursa Berkeley, nu din GNU). Nu exista diferente notabile de viteza la
    rularea unei aplicatii Linux pe o masina ce are instalat Linux si
    rularea aceleasi aplicatii pe o masina ce are instalat FreeBSD
    (presupunem caracteristicile masinilor ca fiind aceleasi).

    Sistemele
    BSD, in general, si FreeBSD, in particular, au o performanta mult mai
    ridicata decat sistemele Linux in majoritatea situatiilor, dar este
    posibil ca in unele situatii este sa nu existe o diferenta de
    performanta notabila. O remarca importanta este ca FreeBSD-ul poate
    executa cod Linux, pe cand invers nu este posibil. De remarcat este
    codul sursa mult mai matur al FreeBSD-ului, ce il fac mai stabil,
    castigand si prestigiu pe baza acestui fapt.

    Va voi prezenta in
    continuare modalitatea de instalare a sistemului de operare FreeBSD pe
    o masina PC compatibila i386. Fisierele necesare instalarii pot fi pe
    un CD/DVD, o partitie DOS pe acelasi calculator, floppy-disk, o locatie
    FTP ( chiar daca sunteti in spatele unui gateway sau a unui proxy
    HTTP), un server NFS. Aici voi prezenta metoda de instalare de pe un CD.

    Primul pas este sa obtineti ISO-urile necesare de pe un ftp public (recomand ftp://ftp1.ro.freebsd.org/pub/FreeBSD/r ... MAGES/5.3/
    pentru versiunea 5.3-RELEASE), si sa le ardeti pe CD. Este de preferat
    sa verificati checksum-ul fisierului downloadat, sa vedeti daca
    corespunde cu cel publicat pe ftp.

    Instalarea se face prin
    bootare de pe CD-ul respectiv, neexistand un executabil care sa fie
    apelat din alt sistem de operare. Pentru a putea face acest lucru este
    necesari sa modificati in BIOS ca primul dispozitiv de bootare sa fie
    CD-ROM-ul. Programul de instalare se numeste sysinstall , fiind de fapt
    o interfata text.

    FreeBSD-ul trebuie instalat pe o partitie
    primara, unde isi va tine toate fisierele, inclusiv pe cele create de
    voi. O instalare foarte minima necesita doar 100MB liberi pe hard-disk,
    dar in acest caz nu va mai ramane loc pentru fisierele pe care doriti
    sa le creati voi. Un mimin realistic este de 250MB fara interfata
    grafica si aproximativ 350MB cu interfata grafica. Cu toate acestea
    aveti nevoie de mai mult spatiu daca doriti sa instalatii si alte
    aplicatii in afara de sistemul de operare.

    Utilitarul principal
    de insalare se numeste sysinstall (il puteti apela mai tarziu, dupa
    instalare cu /stand/sysinstall). Acesta se prezinta ca un meniu cu mai
    multe optiuni. Navigarea facandu-se cu ajutorul tastelor sagesti, a
    tastei Space si a tastei Enter. In cele ce urmeaza voi prezenta modul
    de instalare standard. Se selecteaza deci a doua optiune (Standard).
    Pasul urmator este sa facem slice-ul unde va fi instalat FreeBSD-ul
    prin apasarea tastei C (Create Slice), specificam apoi spatiul pe care
    dorim sa il ocupe (sau lasam valoarea implicita data de sistem pentru
    ocuparea intregului spatiu de pe hard -disc. Tipul slice-ului il lasam
    default la 165. In cadrul slice-ului astefel creat se vor realize
    partitiile necesare . Pentru a trece la pasul urmator se apasa tasta Q
    ( Finish). Dupa ce se alege si boot-managerul, este momentul sa definim
    partitiile si mount-point-urile acestora. Se poate folosi tasta A (Auto
    Defaults).

    Recomand o instalare minima a sistemului de operare.
    Alegem mediul unde avem fisierele respective si anume CD/DVD. Dupa
    terminarea instalarii vom fi intrebati despre cateva setari de baza pe
    care le dorim sa le realizam la acest moment (setari de retea, timp,
    mouse,etc), indicatiile fiind destul de sugestive.

    Este indicat sa instalati si colectia de porturi. Va fi foarte utila mai tarziu.

    Din
    motive de securitate, nu trebuie sa va logati tot timpul ca si root si
    de accea adaugati un nou user, de preferabil ca acesta sa fie in grupul
    wheel pentru a putea executa comanda su root.

    Dupa ce terminam
    de facut toate setarile, iesim din sysinstall, scoatem cd-ul din
    unitate si ar trebui ca dupa restart sa se incarce sistemul de operare
    proaspat instalat.

    Instalarea aplicatiilor se poate face in doua
    moduri: folosind pachetele sau porturile. Exista situatii cand un port
    sau un pachet depinde de altul, in acest caz, se instaleaza automat si
    pachetul/portul necesar. Recomand copierea pe hard-disk a colectiei de
    porturi cu mentiunea ca spatial ocupat de acestea nu este mare. In
    cazul porturilor, la instalarea lor, se downloadeaza de pe internet
    fisierele cu codul sursa si se compileaza pe sistemul vostru. Acest
    lucru implica un spatiu suplimentare pe hard-disk deoarece se genereaza
    fisierele obiect. Pentru economisirea spatiului, puteti sterge apoi
    fisierele sursa care s-au folosit la copiere.

    Copierea colectiei
    de porturi se poate face imediat dupa instalare alegand din meniul de
    instalare optiunea Configure, apoi Distribution, selectam ports si
    apasand OK se trece la copierea lor pe hard-disk.

    Inainte de a
    pregati serverul sa ruleze serviciile de care avem nevoie ar fi bine sa
    ne asiguram ca acesta ruleaza ultima versiune STABLE disponibila.

    La
    momentul scrierii acestui articol ultima versiune disponibila pentru
    download era 5.3-RELEASE. Va voi prezenta modalitatea de trece la
    versiunea 5.3-STABLE. Pentru aceasta este nevoie sa facem cvsup la
    porturi si la surse, operatie pentru care avem nevoie de o conexiune la
    internet. Pentru instalarea utilitarului cvsup executam urmatoarele
    comenzi:

    cd /usr/ports/net/cvsup-without-gui
    make
    make install clean

    Deoarece
    ne-am propus ca functia masinii sa fie de server care sa asigure
    diverse servicii de retea, nu avem nevoie de interfata grafica si din
    acest motiv vom folosi cvsup-without-gui. Dupa ce dam comanda make se
    downloadeaza de pe net pachetul corespunzator si dependintele sale in
    /usr/ports/distfiles.

    Dupa terminarea instalarii, editam folosind editorul ee un fisier de configurare pentru porturi. De exemplu:

    ee /usr/local/etc/cvsup-ports

    In care vom scrie:

    *default host=cvsup2.ro.FreeBSD.org
    *default base=/var/db
    *default prefix=/usr
    *default release=cvs tag=.
    *default delete use-rel-suffix
    *default compress
    ports-all

    Iesim din editor cu ajutorul tastei ESC si salvam. La default host putem trece un alt server de pe care sa facem cvsup.

    Executam:

    /usr/local/bin/cvsup –g –L 2 /usr/local/etc/cvsup-ports

    Urmeaza sa facem apoi update si la surse. Editam un fisier de cofigurare:

    ee /usr/local/etc/cvsup-src

    In care scriem:

    *default host=cvsup1.ro.FreeBSD.org
    *default base=/var/db
    *default prefix=/usr
    *default release=cvs tag=RELENG_5
    *default delete use-rel-suffix
    *default compress
    src-all

    Facem update cu comanda:

    /usr/local/bin/cvsup –g –L 2 /usr/local/etc/cvsup-src

    Dupa terminarea executie avem pe hard-disc ultimele surse si porturi.

    Admin
    Administrator
    Administrator

    Number of posts : 91
    Location : Europa
    Warnings: :
    0 / 1000 / 100

    Points : 13
    Registration date : 2008-01-01

    Re: Tutorial - Primi pasi in lumea FreeBSD-ului

    Post by Admin on Sun Feb 03, 2008 2:43 pm

    Urmatorul pas este sa editam fisierul de configurare pentru kernel.
    Implicit el este /usr/src/sys/i386/conf/GENERIC. Il copiem pe acesta,
    dandu-i ce nume dorim. De exemplu:

    cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/CUSTOM

    apoi:

    ee /usr/src/sys/i386/conf/CUSTOM

    Observam
    ca este comentariu in drept la fiecare linie cu explicatia respectivei
    linii. Pastram ce avem nevoie din acest fisier (in functie de
    hardware-ul pe care il avem pe sistemul respectiv), restul stergem sau
    comentam punand un # (diez) la inceputul liniei.Pentru mai multe
    detalii cititi si fisierul /usr/src/sys/i386/conf/NOTES sau handbook-ul.

    La sfarsitul fisierului adaugam si urmatoarele linii:

    options VESA
    options QUOTA
    # IP Firewall
    options IPFIREWALL
    options IPFIREWALL_VERBOSE
    options IPFIREWALL_VERBOSE_LIMIT=10000
    options IPFIREWALL_DEFAULT_TO_ACCEPT
    options DUMMYNET
    # PF+ALTQ Support
    device pf
    options ALTQ # ALTQ queueing
    options ALTQ_CBQ # ALTQ Class Based Queueing
    options ALTQ_RED # ALTQ Random Early Detection
    options ALTQ_RIO # ALTQ RED In/Out
    # Device Polling
    options DEVICE_POLLING
    options HZ=1000 # Fine-grained kernel timer

    Adaugam in fisierul /etc/make.conf urmatoarele linii:

    CPUTYPE?= athlon-xp
    NOPROFILE= true
    COMPAT4X= true
    DOC_LANG= en_US.ISO8859-1

    Pentru a alege corect valoarea pentru CPUTYPE?= aruncati o privire in /usr/share/examples/etc/make.conf.

    Dam apoi urmatoarele comenzi:

    make buildworld
    make buildkernel KERNCONF=CUSTOM
    make installkernel KERNCONF=CUSTOM

    unde, in loc de CUSTOM puneti numele fisierului de configurare pentru kernelul vostru.

    Urmeaza sa rebooti in single user mode. Puteti face asta tastand:

    init 1

    Daca
    insa folositi shurdown –r now si apoi alegi „Boot in single user mode”
    este necesar sa mai dati si comanda mount –a inainte de a urma pasii de
    mai jos, pentru a remonta partitiile.

    Dupa ce am boot in single user mode, dam urmatoarele comenzi:

    /etc/rc.d/preseedrandom
    mergemaster -p
    make installworld
    mergemaster

    Rebootam sistemul si il lasam sa porneasca normal. Dupa ce ne logam, executand uname –a ar trebuie sa afiseze ceva de genul:

    FreeBSD host.domeniu.tld 5.3-STABLE FreeBSD 5.3-STABLE #0: Tue Jan 11 09:57:46 EET 2005 root@host.domeniu.tld:/usr/obj/usr/src/sys/CUSTOM i386
    Putem spune ca am recompilat cu succes kernelul si avem acum functionala versiune 5.3-STABLE.
    Inainte de a trece mai departe, va voi prezenta cateva comenzi uzuale.

    cd schimba directorul curent cu
    ls arata continutul directorului
    cp copie un fisier dintr-ul director in altul
    date afiseaza sau seteaza data
    df afiseaza spatiul liber pe disk (recomandabil df –h)
    kill termina preocesul ce ruleaza cu pid-ul respectiv
    locate cauta fisierul pe disc
    mkdir creaza directorul
    mv muta un fisier dintr-un director in altul
    passwd seteaza sau modifica parola unui user
    ps afiseaza procesele care ruleaza
    pwd afiseaza calea absoluta a directorului in care ne aflam

    Pentru
    a afla mai multe detalii despre aceste comenzi sau altele, precum si
    parametrii pe care acestea le primesc, folositi comanda man urmata de
    numele comenzii care afiseaza manualul pentru comanda respectiva.

    Pentru a se permite logarea prin SSH trebuie sa existe in fisierul /etc/rc.conf linia:

    sshd_enable="YES"

    O
    observatie importanta este ca implicit FreeBSD nu accepta logari prin
    shh ca si root, ci trebuie mai intai sa va logati ca un user normal si
    apoi, daca userul respectiv se afla im grupul wheel puteti da comanda
    su –l .

    Pentru sporirea securitatii, editati fisierul /etc/hosts.allow si puneti ca prima linie:

    ALL : ALL : deny

    In
    acest moment, nimeni nu se poate conecta la masina voastra, nici macar
    voi.Toate liniile care sunt scrise dupa aceasta nu sunt luate in
    considerare, deci nu au nici un efect. Regulile din acest fisier se
    aplica in ordinea aparitiei lor de sus in jos.

    Pentru a permite
    accesul SSH de pe un anumit ip, adaugati, deasupra acestei linii,
    urmatoarea (bineinteles specificand ip-ul dorit de voi):

    sshd : 192.168.0.2 : allow

    Plecand
    de la premiza ca majoritatea utilizatorilor de Linux folosesc acest
    sistem de operare pentru a asigura accesul unei retele (LAN) la
    internet, voi explica cum se configureaza FreeBSD-ul pentru a permite
    acest lucru.

    Avem nevoie de minim doua placi de retea instalate
    pe acest calculator. Spre deosebire de linux, unde placile sunt notate
    eth0, eth1, in FreeBSD acestea primesc nume in functie de producator
    (rl0, dc0, ep0,etc). Pentru a vedea starea placilor instalate (ce ip
    au, daca au sau nu link, MAC-ul acestora, etc) se foloseste comanda
    ifconfig care arata toate interfetele sau ifconfig urmat de numele
    interfetei pentru a afisa informatii numai despre o anumita interfata.
    Pentru asignarea unei adrese ip unei interfete se foloseste:

    ifconfig inet netmask

    De exemplu:

    ifconfig rl0 inet 192.168.0.1 netmask 255.255.255.0

    Pentru ca aceste setari sa se pastreze si dupa rebootarea sistemului, se scrie in /etc/rc.conf:

    ifconfig_rl0=”inet 192.168.0.1 netmask 255.255.255.0”

    Translatarea
    de adrese (NAT-Network Adress Translation) se poate realiza in doua
    moduri: fie folosind ipfilter (ipf) sau mai noul pachet-filter (pf).
    Pentru utilizatorii care sunt la inceput ipf este mai usor de
    configurat. Astfel, vom adauga in fisierul /etc/rc.conf:

    gateway_enable="YES"
    inetd_enable="YES"
    ipnat_enable=”YES”
    ipnat_rules="/etc/ipnat.rules"

    Exemplul fictiv ce urmeaza sper sa ajuta la intelegerea setarilor necesare:

    -presupunem
    ca avem un singur ip dat de catre ISP-ul la care suntem conectat si
    anume 194.100.2.4, netmask 255.255.255.248 si o retea LAN cu mai multe
    calculatoare ce au ip-uri din clasa 192.168.0.0/24 (adica de la
    192.168.0.1 pana la 192.168.0.254). Legatura cu providerul se face pe
    rl0 iar reteaua se conecteaza prin intermediul unui switch pe interfata
    rl1.

    -in fisierul /etc/rc.conf vom avea:
    ifconfig_rl0=”inet 194.100.2.4 netmask 255.255.255.248”
    ifconfig_rl1=”inet 192.168.0.1 netmask 255.255.255.0”
    gateway_enable="YES"
    inetd_enable="YES"
    ipnat_enable=”YES”
    ipnat_rules="/etc/ipnat.rules"
    defaultrouter=” 194.100.2.1” #gateway-ul providerului

    - pentru ca toate calculatoarele din retea sa aiba acces la internet vom scrie in /etc/ipnat.rules:

    map rl0 192.168.0.0/24 -> 0.0.0.0/32

    -statiile
    din retea le vom configura cu ip-uri din clasa 192.168.0.0/32,
    specificand gateway-ul ca fiind 192.168.0.1 (adresa ip a interfetei rl1
    de pe router) si DNS-ul dat de provider.

    -restart la router si acum toate statiile pot sa acceseze internetul.

    -in
    cazul in care avem mai multe ip-uri date de provider, atunci putem face
    ca anumite statii din reteaua locala sa iasa pe un unimit ip:

    map rl0 192.168.0.10/32 -> 194.100.2.3/32

    -daca
    pe statia respectiva ruleaza un serviciu ce trebuie sa fie accesibil
    din exteriorul retelei (un server http, ftp, etc), atunci putem face
    bimap in loc de map, sintaxa fiind aceasi, shimbandu-se doar cuvantul
    cheie folosit. Atentie: se poate face un singur bimap pentru un ip dat
    de provider.

    Reincarcarea regulilor se face cu:

    ipnat –C –F –f /etc/ipnat.rules

    Este recomandata citirea Handbook-ului disponibil la adresa: http://www.freebsd.org/doc/en_US.ISO885 ... /handbook/

      Current date/time is Wed Dec 07, 2016 2:27 pm