Fast Install FreeBSD
Un sistem FreeBSD , ca si alte sisteme de operare nu este perfect si uneori se depisteaza probleme de securitate in sistemul de baza sau softul aditional .
Mentinerea la curent a sistemului in ce priveste securitatea, include:
1. Mentinerea sistemului de baza si a kernel-ului.
2. Mentinerea la curent a colectiei de porturi.
3. Mentinerea la curent a softului instalat din porturi/pachete .
4. Mentinerea la curent a softului aditional, instalat din alte surse.
1. Updatarea sistemului de baza si a kernel-ului.
a) updatarea din binare precompilate , folosind “freebsd-update� ( disponibil in colectia de porturi )
[root@host]$ cd /usr/ports/security/freebsd-update
[root@host]$ make install cleandir
sau
[root@host]$ pkg_add -r freebsd-update
Folosim fisierul de configurare implicit:
[root@host]$ cp /usr/local/etc/freebsd-update.conf.sample /usr/local/etc/freebsd-update.conf
Descarcam update-urile existente:
[root@host]$ freebsd-update -v fetch
Putem adauga un cronjob care va rula zilnic si va executa /usr/local/sbin/freebsd-update cron
Daca sunt disponibile updateuri, contul root va primi un email cu detalii.
pentru a instala update-urile descarcate, rulam
[root@host]$ freebsd-update -v install
restartam sistemul.
Dupa aceasta procedura trebuie recompilate programele linkate cu bibliotecile afectate de update (daca upgrade-ul a fost unul major, de exemplu de la FreeBSD 4.4 la FreeBSD 4.11)
Aceasta metoda e un avantaj cand ai de mentinut ferme de servere , si update-urile din surse ar fi o problema.
Mai multe amanunte despre sistemul de updateuri binare - la http://www.daemonology.net/freebsd-update/binup.html
b) metoda clasica, compilarea sistemului/kernel-ului folosind sursele .
- Instalarea utilitarului cvsup , din porturi/pachete:
[root@host]$ cd /usr/ports/net/cvsup-without-gui; make install clean
sau
[root@host]$ pkg_add -r cvsup-without-gui
- Updatarea surselor sistemului:
[root@host]$ cp /usr/share/examples/cvsup/stable-supfile /usr/local/etc/
- Editarea /usr/local/etc/stable-supfile
E de ajuns sa schimbam 1-2 parametri in fisierul implicit:
*default host=CHANGE_THIS.FreeBSD.org
*default release=cvs tag=RELENG_5
in
*default host=cvsup.ro.FreeBSD.org
*default release=cvs tag=RELENG_5_4
Folosesc RELENG_5_4 si nu RELENG_5 deoarece am nevoie de un sistem stabil si securizat.
mai multe detalii despre taguri si lista de cvs servere disponibile la
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvs-tags.html
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html
- updarea surselor propriu-zisa:
[root@host]$ /usr/local/bin/cvsup /usr/local/etc/stable-supfile
- urmeaza neaparat consultarea fisierului /usr/src/UPDATING
- editarea fisierului de configurare a kernelului
Pe un sistem i386 acest fisier se afla in /usr/src/sys/i386/conf/
Il copiem intr-un fisier oarecare, pe care il modificam ulterior
[root@host]$ cp /usr/src/sys/i386/conf/GENERIC /usr/src/sys/i386/conf/MYKERNEL-SMP
Urmeaza personalizarea sa prin scoaterea tuturor optiunilor si driverelor de care avem nevoie ( device-uri ISA, firewire, pcmcia, wireless ), precum si adaugarea unor parametri aditionali, precum
options SMP # daca este cazul
options QUOTA #enable disk quotas
etc
- editarea fisierului /etc/make.conf si setarea variabilelor dupa exemplul din /etc/defaults/make.conf
CPUTYPE=p4
WITHOUT_X11=YES
etc
- construirea sistemului nou din surse:
[root@host]$ cd /usr/obj ; chflags -R noschg * ; rm -rf *
[root@host]$ make cleandir
[root@host]$ cd /usr/src
[root@host]$ make buildworld
[root@host]$ make buildkernel KERNCONF=MYKERNEL-SMP
[root@host]$ make installkernel KERNCONF=MYKERNEL-SMP
- optional, daca exista posibilitatea - in continuare rebootati si incarcati sistemul in single mode pentru a preveni
eventualele probleme de compatibilitate binare/kernel , sau continuati direct cu make installworld.
- mountati partitiile necesare
[root@host]$ mount -u -o w /
[root@host]$ mount -a -t ufs
[root@host]$ adjkerntz -i
[root@host]$ cd /usr/src
[root@host]$ make installworld
- rulati mergemaster - un script care are rolul de a updata fisierele de configurare a sistemului/adauga userii necesari.
Eventual puteti face un backup al /etc si /usr/local/etc inainte.
In majoritatea cazurilor megememaster -ai va fi suficient
[root@host]$ mergemaster -ai
restartati sistemul
2. Updatarea sistemului de porturi .
a) updatarea colectiei de porturi folosind cvsup
[root@host]$ cp /usr/share/examples/cvsup/ports-supfile /usr/local/etc/
- Editarea /usr/local/etc/ports-supfile
E de ajuns sa schimbam 1 parametru in fisierul implicit:
*default host=CHANGE_THIS.FreeBSD.org
in
*default host=cvsup.ro.FreeBSD.org
Rulam
[root@host]$ /usr/local/bin/cvsup /usr/local/etc/ports-supfile
putem sa adaugam un cronjob care va rula acest program
b) updatarea colectiei de porturi folosind portsnap
este recomandata utilizarea portsnap in locul cvsup, deoarece -
* CVSup nu este atat de securizat :
Protocolul nu cripteaza datele si nu folosete semnaturi digitale, astfel oricine care poate intercepta conexiunea poate insera date arbitrare in fisierele pe care le updatati .
* CVSup nu este end-to-end:
Oricine a compromis un mirror CVSup poate insera date arbitrare in surse, care ulterior vor fi folosite de persoanele ce folosesc acest mirror.
* CVSup nu a fost proiectat pentru updateuri mici si frecvente.
Atata timp cat este bun pentru distributia unui numar mare de fisiere, care s-au shimbat semnificativ, nu este eficient in cazul in care putine fisiere au fost modificate.
* CVSup foloseste propriul protocol.
Aceasta ar putea cauza probleme persoanelor protejate de firewall-uri complexe, conexiunile catre portul 5999 trebuie sa fie permise, plus mai are nevoie de un server - cvsupd.
daca avem deja colectia de porturi, continuam cu pasii urmatori
altfel o descarcam de pe ftp.freebsd.org
[root@host]$ cd /usr
[root@host]$ fetch ftp://ftp.freebsd.org/pub/FreeBSD/ports/ports-current/ports.tar.gz
[root@host]$ tar -xzf ports.tar.gz
[root@host]$ rm -rf ports.tar.gz
[root@host]$ cd /usr/ports/sysutils/portsnap
[root@host]$ make install clean
Fisierul implicit de configurare e de ajuns.
[root@host]$ cp /usr/local/etc/portsnap.conf.sample /usr/local/etc/portsnap.conf
[root@host]$ portsnap fetch
[root@host]$ portsnap extract
[root@host]$ portsnap update
cream un cronjob care va rula /usr/local/sbin/portsnap cron; /usr/local/sbin/portsnap update
3. Updatarea softului instalat din porturi/pachete .
Exista cateva metode, vom folosi portsupgrade .
[root@host]$ cd /usr/ports/sysutils/portupgrade; make install clean
sau
[root@host]$ pkg_add -r portupgrade
Editam fisierul de configurare /usr/local/etc/pkgtools.conf , la nevoie modificam parametri, precum
MAKE_ARGS = {
'editors/vim' => 'WITHOUT_X11=yes WITH_PERL=yes WITH_PYTHON=yes',
'databases/mysql40-server' => 'WITHOUT_INNODB=yes WITH_LINUXTHREADS=yes BUILD_STATIC=yes BUILD_OPTIMIZED=yes'
}
[root@host]$ cd /usr/ports/sysutils/portupgrade;make install clean
sau
[root@host]$ pkg_add -r portupgrade
Rulam:
[root@host]$ portsdb -Uu # creaza o baza de date necesara utilitarelor folosite in continuare, procesul ia ceva timp
[root@host]$ portupgrade -arR # insusi procesul de update
detalii in man (1) portupgrade
4. Updatarea softului aditional, instalat din surse .
Ramane la dispozitia fiecaruia.
handbook FreeBSD - http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/
freebsd-update - http://www.daemonology.net/freebsd-update/
portsnap - http://www.daemonology.net/portsnap/
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment