469
CUPRINS Cuvânt înainte .............................................................................................. 9 Prefaţă .......................................................................................................... 11 Ce este Linux? ......................................... 13 Partea I INSTALAREA SISTEMULUI LINUX 1. Instalarea sistemului ............................... 17 1.1. Pregătirea pentru instalare........................................................................ 17 l. 2. începerea instalării..................................................................................... 20 2.......................................................Up gradarea sistemului ....................................30 3.......................................................Ge stionarea pachetelor software .......................... 31 3.2. Dezinstalarea pachetelor............................................................................ 32 3. 3. Upgradarea pachetelor.............................................................................. 32 3.4. Extragerea informaţiilor despre pachete.................................................. 33 3.5...................................................Ver ificarea pachetelor.............................................................................................. 33 3.6. Interfeţe grafice pentru sistemul RPM..................................................... 34 Partea a Il-a CONFIGURĂRI DE BAZĂ ALE SISTEMULUI 1. Administrarea sistemelor de fişiere .................39 1.1. Structura sistemului de fişiere Linux........................................................ 39 l. 2. Gestiunea atributelor fişierelor................................................................. 41 1.3. Montarea şi demontarea sistemelor de fişiere......................................... 43 1.4. Controlul utilizării sistemelor de fişiere.................................................... 46 7.3...................................................Ve rificarea şi repararea sistemelor de fişiere....................................................... 47 l. 6. Gestionarea partiţiilor................................................................................ 48 2.......................................................Se tarea timpului .........................................52 3.......................................................Po rnirea şi oprirea sistemului ...........................54 3.1. Utilizarea modului single............................................................................ 55 3.2. Fişierele de iniţializare System V..........................56 3.3. Schimbarea nivelului de execuţie ............................................................. 59 3.4. Oprirea sistemului ...................................................................................... 59 4.

Administrarea Sistemelor Linux

Embed Size (px)

DESCRIPTION

Administrarea Sistemelor Linux

Citation preview

Page 1: Administrarea Sistemelor Linux

CUPRINS

Cuvânt înainte ..............................................................................................................9

Prefaţă ..........................................................................................................................11

Ce este Linux? ........................................................................................................... 13

Partea I INSTALAREA SISTEMULUI LINUX

1. Instalarea sistemului ............................................................................................ 171.1. Pregătirea pentru instalare............................................................................. 17l. 2. începerea instalării.........................................................................................20

2. Upgradarea sistemului ..........................................................................................30

3. Gestionarea pachetelor software .......................................................................... 313.2. Dezinstalarea pachetelor.................................................................................323. 3. Upgradarea pachetelor...................................................................................323.4. Extragerea informaţiilor despre pachete..........................................................333.5. Verificarea pachetelor.....................................................................................333.6. Interfeţe grafice pentru sistemul RPM...........................................................34

Partea a Il-a CONFIGURĂRI DE BAZĂ ALE SISTEMULUI

1. Administrarea sistemelor de fişiere ....................................................................391.1. Structura sistemului de fişiere Linux..............................................................39l. 2. Gestiunea atributelor fişierelor....................................................................... 411.3. Montarea şi demontarea sistemelor de fişiere.................................................431.4. Controlul utilizării sistemelor de fişiere..........................................................467.3. Verificarea şi repararea sistemelor de fişiere...................................................47l. 6. Gestionarea partiţiilor....................................................................................48

2. Setarea timpului .....................................................................................................52

3. Pornirea şi oprirea sistemului ...............................................................................543.1. Utilizarea modului single.................................................................................553.2. Fişierele de iniţializare System V...................................................................563.3. Schimbarea nivelului de execuţie ...................................................................593.4. Oprirea sistemului ..........................................................................................59

4. Intrarea şi ieşirea din sistem ................................................................................ 614.1. Interpretorul de comenzi................................................................................. 614.2. Accesul privilegiat al utilizatorilor în sistem..................................................65

Page 2: Administrarea Sistemelor Linux

Partea a III-a SETĂRI AVANSATE ALE SISTEMULUI

1. Tipărirea la imprimantă: LPRng şi CUPS....................................................... 1391.1. Sistemul LPRng............................................................................................ 1441.2. Sistemul CUPS.............................................................................................. 146

2. Sisteme de baze de date: PostgreSQL şi MySQL ........................................... 1522.1. Sistemul PostgreSQL .................................................................................... 1522.2. Sistemul MySQL .......................................................................................... 158

3. Accesarea de la distanţă a sistemului: telnet şi SSH ...................................... 163Serviciul telnet...................................................................................................... 163Serviciul SSH........................................................................................................ 163

4. Sisteme de fişiere în reţea: NFS ....................................................................... 167

5. Interacţiunea cu sistemele Windows: Samba ................................................... 170Substituirea variabilelor....................................................................................... 172Secţiunea [global] ................................................................................ 172Secţiunea [homes ] ....................................................................................... 176Secţiunea [printers] ................................................................................. 177Secţiunile pentru definirea resurselor partajate................................................... 177Gestionarea utilizatorilor Samba.......................................................................... 179Client SMB........................................................................................................... 180

6. Sistemul numelor de domenii: DNS ..................................................................181Declaraţia logging ............................................................................................... 182Declaraţia options................................................................................................ 184Declaraţia zone.................................................................................................... 185Declaraţia aci....................................................................................................... 186Declaraţia key ..................................................................................................... 186Declaraţia trusted-keys......................................................................................... 186Declaraţia server.................................................................................................. 187Declaraţia controls............................................................................................... 187

7. Serverul HTTP ................................................................................................... 193Identificarea serverului........................................................................................ 194Locaţiile fişierelor................................................................................................ 194Crearea proceselor............................................................................................... 195Configurarea reţelei.............................................................................................. 195Configurarea jurnalelor....................................................................................... 195Directiva <Directory> ............................................................................. 197Directiva <DirectoryMatch> .................................................................... 197Directiva <Files> ......................................................................................... 198Directiva <FilesMatch> ........................................................................... 198Directiva <Location> ................................................................................. 198Directiva <LocationMatch> ....................................................................... 198Controlul accesului .............................................................................................. 198Găzduire virtuală.................................................................................................. 199

Page 3: Administrarea Sistemelor Linux

5. Configurarea serviciilor sistemului ......................................................................685.1. Folosirea 'utilitarului chkconfig.....................................................................695.2. Pornirea, repornirea şi oprirea serviciilor....................................................695. J. Daemonul xinetd..........................................................................................70

6. Administrarea utilizatorilor sistemului.................................................................726.1. Fişierul /etc/passwd .............................................................................736.2. Fişierul /etc/group ................................................................................746.3. Unelte tradiţionale pentru administrarea utilizatorilor....................................756.4. Sistemul shadow............................................................................................75

7. Gestiunea resurselor sistemului ...........................................................................787.1. Gestiunea memoriei virtuale.........................................................................787.2. Gestiunea proceselor....................................................................................79

8. Configurarea sistemului X Windows ................................................................... 818.1. Fişierele de configurare ale serverului XFree86............................................ 818.2. Gestiunea fonturilor.....................................................................................858.3. Managerul de ferestre..................................................................................868.4. Pornirea sistemului X Window......................................................................86

9. Nucleul Linux .........................................................................................................889. l. Compilarea nucleului Linux..........................................................................889.2. Configurarea încărcătorului de boot.............................................................999.3. Gestiunea modulelor................................................................................... 101

10. Setarea legăturii de reţea: TCP/IP ..................................................................10310. l. Configurarea atributelor maşinii................................................................10510.2. Configurarea echipamentelor de reţea........................................................10510.3. Opţiuni de rulare.......................................................................................10710.4. Verificarea funcţionării reţelei...................................................................10870.2. Rezolvarea numelor de maşină.................................................................. 11010.2. Scripturi pentru configurarea reţelei............................................................11110.3. Configurarea conexiunilor PPP.................................................................. 112

11. Realizarea de copii de siguranţă.........................................................................11977.7. Salvări de siguranţă CM tar....................................................................... 12077.2. Salvări de siguranţă cu dump....................................................................121

12. Configurarea dispozitivelor hardware ........................................................... 12472.7. Configurarea dispozitivelor IDE............................................................... 12472.2. Configurarea dispozitivelor SCSI.............................................................. 12672.3. Configurarea imprimantelor.................................................................... 12872.4. Configurarea porturilor seriale................................................................ 12972.5. Configurarea plăcilor de reţea................................................................. 13072.6. Configurarea plăcilor de sunet.................................................................. 13172.7. Configurarea dispozitivelor USB............................................................... 13212.2. Configurarea scannerelor......................................................................... 13472.2. Configurarea dispozitivelor multimedia.................................................... 13472.10. Configurarea dispozitivelor de intrare..................................................... 136

Page 4: Administrarea Sistemelor Linux

Cuvânt înainte

Această lucrare este dedicată administrării sistemelor Linux şi se adresează în primul

rând celor care abia pătrund în universul acestui sistem de operare (similar -sistemului

consacrat Unix), ajutându-i în strunirea complexităţii şi utilizarea în mod eficient a

flexibilităţii sistemului. Cartea este recomandată în special începătorilor, celor care doresc

să-şi instaleze pentru prima dată Linux pe calculatorul cu care lucrează. Este o carte utilă,

care poate călăuzi paşii multor tineri în utilizarea sistemului de operare Linux.

Există astăzi mai multe sisteme de operare care furnizează componentele necesare unui

programator sau utilizator de soft. Ceea ce face Linux interesant şi atractiv este faptul că

programele-sursă ale sistemului de operare şi ale multor aplicaţii sunt disponibile gratuit.

Aceste programe furnizează cunoaştere şi inspiraţie pentru orice aspirant în informatică.

Soft-ul disponibil gratuit este din multe puncte de vedere mai bun. El permite utilizatorului

să-1 înţeleagă, să-1 adapteze şi să-1 îmbunătăţească, ceea ce nu este posibil cu soft-ul

comercial, care depinde (la mai bine sau mai rău) de firma producătoare. Acest lucru a făcut

ca Linux să devină ceea ce este astăzi: un sistem de operare cu mare audienţă printre

cunoscătorii informaticii. Tot mai multe firme serioase din domeniul tehnologiei, dar şi

bancar, comercial sau din sănătate utilizează acum sistemul de operare Linux, în special

pentru serverele conectate la Internet. Date fiind natura şi complexitatea sistemului, atât la

nivelul funcţionalităţii, cât şi al performanţei, acest lucru pare normal. Există motive

temeinice să credem că tendinţa aceasta va continua şi în câţiva ani Linux va deveni

dominant la nivelul aplicaţiilor Internet (clienţi, servere, platforme de rutare).

Nu doar sursele programelor sunt accesibile gratuit în Linux, ci şi documentaţia. Există

documentaţie de tip „How To", precum şi manuale complete în limba engleză. Acum există

şi o colecţie Linux în limba română (cea în care apare acest volum) care intenţionează să

furnizeze informaţii cât mai utile celor interesaţi. Volumele acestei colecţii sunt dedicate

tuturor programatorilor şi utilizatorilor de Linux fără de care multitudinea de programe

disponibile nu ar exista, în acelaşi spirit promovat de Linux, cunoscătorii sistemului pot

împărtăşi din ştiinţa lor prin intermediul colecţiei. Nu ezitaţi să scrieţi şi să trimiteţi posibile

viitoare volume la una dintre adresele menţionate în această carte (inclusiv

gab r i e l@in f o i a s i . r o ) .

Page 5: Administrarea Sistemelor Linux

8. Serverul FTP ....................................................................................................... 202Opţiuni generale................................................................................................... 203Controlul accesului .............................................................................................. 203Mesaje informaţionale.......................................................................................... 206Jurnalizarea ..........................................................................................................207

9. Expedierea şi recepţionarea de mesaje: sendmail .......................................... 209Configurări generale............................................................................................ 209Controlul accesului ...............................................................................................210Definirea pseudonimelor........................................................................................210Configurarea reţelei............................................................................................... 211Configurarea /etc/sendmail .mc ............................................................ 211Locaţiile fişierelor.................................................................................................212

10. Configurarea jurnalelor sistemului: syslog.....................................................215Selectorii................................................................................................................215Acţiunile.................................................................................................................215Semnale..................................................................................................................216

11. Execuţia de proceduri automate : serviciul cron ............................................218

12. Sistemul de autentificare PAM ......................................................................... 220

13. Ajustarea parametrilor nucleului: sistemul de fişiere/proc ................... 22613.1. Informaţii furnizate prin directorul /proc................................................... 22613.2. Ajustarea parametrilor nucleului................................................................ 22813.3. Utilizarea sysctl........................................................................................... 232

Partea a IV-a SECURIZAREA SISTEMULUI LINUX

1. Securizarea sistemului ........................................................................................ 2371.1. Atacuri.......................................................................................................... 2371.2. Sfaturi privind securizarea sistemului........................................................... 239

2. Configurarea unui firewall: iptables ................................................................. 245

3. Monitorizarea sistemului .................................................................................... 250

Bibliografie ................................................................................................................251

ANEXE

1. Licenţa publică GNU ......................................................................................... 2552. Fişiere importante ............................................................................................... 2633. Nume de dispozitive uzuale ............................................................................... 2694. Resurse internet.....................................................................................................270

Page 6: Administrarea Sistemelor Linux

Prefaţă

Lucrarea reprezintă o sinteză a principalelor cunoştinţe necesare pentru administrarea unui calculator având instalat sistemul de operare Linux. Prin administrarea sistemului ne referim în general la activităţile care trebuie efectuate pentru a menţine un calculator şi a serviciilor pe care acesta le oferă în stare de funcţionare corectă.

Prima parte cuprinde noţiuni despre instalarea sistemului Linux, precum şi instalarea/dezinstalarea ulterioară de programe. A doua parte tratează configurările esenţiale ale sistemului, cum ar fi setarea timpului sau crearea/ştergerea de utilizatori. A treia parte analizează majoritatea serviciilor oferite de sistemul Linux, cum ar fi sistemele de baze de date sau serverul Web. A patra parte se ocupă de modul în care un calculator legat în permanenţă la Internet poate fi protejat împotriva cracker-ilor.

Cartea se adresează în principal către două categorii de persoane: prima, deloc sau puţin cunoscătoare a sistemului Linux, care pot învăţa astfel modul de instalare şi punere în funcţiune a sistemului; şi a doua, de actuali sau viitori administratori de sistem sau reţea, care astfel nu vor mai fi nevoiţi să caute în nenumăratele manuale de utilizare informaţiile dorite. Nu în ultimul rând, cartea poate fi utilă şi studenţilor care urmează cursuri despre sisteme de operare.

De asemenea, lucrarea este folositoare atât utilizatorilor care folosesc calculatorul acasă sau independent, cât şi celor care îl folosesc legat în reţea sau în instituţii.

Distribuţiile Linux la care această lucrare face referire sunt Red Hat Linux 7.2 (Enigma), produsă de firma Red Hat Software Inc., şi Mandrake 8 . 2 (BlueBird), produsă de MandrakeSoft S.A. Versiunea nucleului Linux utilizată a fost 2 .4 .18.

Aşteptăm reacţiile, remarcele şi eventualele observaţii sau corecţii pe adresa [email protected]. De asemenea, invităm cititorul să viziteze pagina dedicată acestui volum, http: //www. biosf arm. ro/~dragos/admin.

Doresc să îmi exprim gratitudinea pentru ajutorul acordat în corectarea şi definitivarea acestei cărţi recenzorilor ştiinţifici dr. Gabriel Ciobanu (Academia Română, UT), Răzvan Rughinis şi Octavian Purdilă (Facultatea de Automatică şi Calculatoare, Universitatea Politehnică Bucureşti), precum şi prietenilor Sabin Buraga, Adrian Crefu şi Radu Filip. Mulţumesc soţiei pentru înţelegerea manifestată în timpul realizării acestei lucrări. De asemenea, mulţumesc părinţilor pentru ajutorul acordat de-a lungul anilor.

Autorul

Page 7: Administrarea Sistemelor Linux

10 Administrarea şi configurarea sistemelor Linux

La realizarea lucrării Administrarea şi configurarea sistemelor Linux au contribuit şi

recenzorii ei, care au ajutat la îmbunătăţirea calităţii. Recenziile colecţiei sunt gândite ca un

ajutor pentru autori; ele reduc numărul de erori posibile şi creează premisele unor apariţii

cu bătaie mai lungă în timp. Acţionând astfel, speranţa noastră este să se formeze o

comunitate care să gândească cât mai constructiv şi să participe mai mult la formarea unei

culturi informatice de bună calitate.

dr. Gabriel Ciobanu'

coordonator al colecţiei Linux

Gabriel Ciobanu este cercetător principal şi conducător de doctorat la Institutul de Informatică Teoretică al Academiei Române; acum predă temporar la National University of Singapore. A efectuat un stagiu de cercetare la Universitatea Edinburgh, unde a lucrat sub îndrumarea prof. Robin Milner, laureat al premiului Turing (echivalentul premiului Nobel în informatică). A fost invitat şi a primit numeroase burse de cercetare la universităţi din Marea Britanic, Franţa, Germania, Olanda, Spania, Canada, Japonia, în decembrie 2000 a primit primul premiu „Grigore Moisil" acordat de Academia Română pentru contribuţii în informatică teoretică.

Page 8: Administrarea Sistemelor Linux

Ce este Linux?

Linux este un sistem de operare gratuit (open source), compatibil UNIX. UNIX este un sistem multitasking şi multiuser, în care utilizatorii au acces la resursele calculatorului de la diferite terminale plasate local sau la distanţă, putând executa în mod concurent un număr nedeterminat de programe. Linux respectă standardul POSIX, suportă toată gama de aplicaţii GNU şi posedă o interfaţă grafică bazată pe X Windows System.

Linux a apărut iniţial ca un proiect al lui Linus Torvalds, student la Universitatea din Helsinki. Prima versiune utilizabilă a fost lansată pe 5 octombrie 1991. Din acel moment, numărul celor care lucrează la Linux, precum şi numărul de utilizatori a crescut în mod impresionant, în momentul de faţă se estimează că există circa 18 milioane de utilizatori Linux (pentru detalii, a se vedea situl http://counter. li.org).

Spre deosebire de alte sisteme de operare, nici o firmă nu este proprietara sistemului Linux. Mai mult decât atât, el este protejat de Licenţa Publică GNU (GNU este o fundaţie care apără interesele autorilor de programe gratuite - pentru informaţii suplimentare, a se vizita situl http://www.gnu.org), care stipulează faptul că se poate copia şi utiliza gratuit codul programelor, cu condiţia de a permite şi altora să facă acelaşi lucru. Textul complet al acestei licenţe se găseşte în Anexa l.

Sistemul Linux este alcătuit propriu-zis dintr-un nucleu (kernel) şi un număr uriaş de programe şi utilitare. Este un sistem de operare complet, care conţine practic orice tip de aplicaţie, putând astfel juca o varietate de roluri, printre care:

• Server. Sistemul Linux conţine un suport excepţional pentru reţea, putândoferi atât serviciile clasice specifice Internet-ului, cum ar fi Web, FTP, poştăelectronică etc., precum şi alte servicii de reţea, cum ar fi server deimprimante, server de fişiere (NFS) ş.a.m.d. De asemenea, sistemul Linuxpoate substitui un server Windows NT sau Netware. Stabilitatea, fiabilitateaşi securitatea sa îi conferă posibilitatea de a fi utilizat pe servere high-end şiîn medii critice.

• Sistem personal. Linux poate fi utilizat la redactarea de texte, tipărirea laimprimantă, conectarea şi navigarea pe Internet, citirea corespondenţei, înplus, este o platformă multimedia perfectă pentru jocuri, pentru vizionareade filme sau audiţia de piese muzicale.

• Sistem utilizat la serviciu. Sistemul Linux conţine o suită completă deprograme pentru birou, cum ar fi programe de calcul tabelar, redactare detexte, realizarea de prezentări etc. Instrumentele pentru acces la Internetreprezintă şi ele un punct forte al acestui sistem.

Page 9: Administrarea Sistemelor Linux

Administrarea şi configurarea sistemelor Linux

• Sistem educaţional. Atuul principal este costul practic nul al sistemului. Instalarea de sisteme proprietare pe multe calculatoare poate fi extrem de costisitoare. Linux include aplicaţii, compilatoare şi medii integrate de dezvoltare a căror calitate este în general superioară celei a programelor comerciale.

Un sistem Linux, alcătuit dintr-un program de instalare, nucleu şi aplicaţii gata compilate se numeşte distribuţie Linux. Numeroase companii şi organizaţii au realizat asemenea distribuţii. Acestea sunt disponibile gratuit pe Internet, dar pot fi achiziţionate şi contra cost ca pachete formate din CD-ROM-uri şi manuale de utilizare. Distribuţiile Linux cele mai răspândite sunt Red Hat, Mandrake, SuSE, Caldera şi Slackware. Distribuţia Red Hat poate fi descărcată de la adresa http://www.redhat.com sau mirrors (oglindiri ale unui sit Internet), iar Mandrake, de la adresa http: / /www. mandrake. com.

Contrar opiniei generale, suportul tehnic pentru programele open source are de multe ori o calitate superioară comparativ cu cel oferit pentru aplicaţiile comerciale. Prin formularea unei întrebări sau unei cereri de ajutor pe o listă de discuţie se poate obţine un răspuns la orice problemă, în câteva ore. De asemenea, există numeroase companii, îndeosebi cele care comercializează distribuţii, ce oferă consultanţă şi suport tehnic profesional, contra cost.

Nucleul Linux a fost adaptat (portai) pe foarte multe platforme, începând cu Intel şi continuând cu SUN Sparc, PowerPC, Motorola 68000 (Atari şi Amiga), MIPS (SGI), DEC Alpha, ARM etc.

Situl oficial al sistemului de operare Linux este http: //www. linux.org.

Linux a devenit foarte răspândit în ultimii ani şi în România. Fiind gratuit, nu există posibilitatea de a intra în conflict cu legea dreptului de autor, ceea ce va conduce cu siguranţă la utilizarea sa şi în cadrul firmelor, precum şi în mediile cu multe calculatoare, în majoritatea centrelor universitare din ţară, Linux este extrem de popular, multe materii folosindu-1 ca platformă de referinţă (Sisteme de operare, Programare ş.a.m.d.). Cei mai mulţi furnizori de servicii Internet folosesc Linux datorită capabilităţilor sale excelente de reţea, flexibilităţii în configurare şi stabilităţii sale. De asemenea, profesioniştii ştiinţei calculatoarelor îl utilizează pentru uneltele puternice de programare, procesare de texte etc. de care dispune.

Există şi un Grup al Utilizatorilor Români de Linux (RLUG), cu o activitate intensă manifestată pe listele de discuţii. Situl oficial al acestui grup estehttp://www.lug.ro.

în colecţia Linux, din care face parte şi acest volum, au apărut şi vor apărea lucrări de referinţă privind programarea, utilizarea şi administrarea în cadrul acestui sistem de operare.

Page 10: Administrarea Sistemelor Linux

Partea I

INSTALAREA SISTEMULUI LINUX

1. Instalarea sistemului

1.1. Pregătirea pentru instalare

Se introduce primul CD al distribuţiei Linux în unitatea CD-ROM şi se reporneşte sistemul (pentru aceasta, mai întâi trebuie activată în BIOS-ul sistemului opţiunea de bootare de pe CD-ROM), în cazul în care programul de instalare nu porneşte automat, trebuie mai întâi creată o disketă de boot. Dacă sistemul are instalat un sistem MS-DOS/Windows, instalarea poate fi pornită şi direct de pe CD-ROM, fără a mai fi necesară şi disketă de boot.

Pe un sistem nu trebuie să ruleze doar Linux, putând rula şi sistemul de operare deja existent în sistem (cum ar fi Windows), dacă dimensiunea hard-disk-ului permite acest lucru. Pentru a diviza discul, poate fi folosit utilitarul FIPS (localizat ca D:\DOSUTILS\FIPS.EXE) sau PQMagic. Pentru aceasta, trebuie mai întâi defragmentat discul cu ajutorul comenzii MS-DOS DEFRAG:

| > D:\DOSUTILS\DEFRAG C:

Se lansează apoi comanda:

> D:\DOSUTILS\FIPS

Old Partition Cylinder New Partition2048 698 1024

Vechea pârtie (Old Partition) reprezintă partiţia veche Windows, iar New Partition semnifică partiţia nouă Linux. Cu ajutorul tastelor săgeţi se modifică aceste două valori până la dimensiunile dorite.

După activarea partiţiilor, calculatorul va trebui repornit.

Crearea disketei de boot

Pentru crearea disketei de boot din cadrul sistemului MS-DOS/Windows, se lansează comanda (presupunând că unitatea CD-ROM este D :):

|> D:\DOSUTILS\RAWRITE D:\IMAGES\BOOT.IMG

Pentru crearea disketei de boot din cadrul unui sistem compatibil UNIX, se lansează comanda (presupunând că dispozitivul asociat unităţii CD-ROM este

Page 11: Administrarea Sistemelor Linux

18 Administrarea şi configurarea sistemelor Linux

/dev/cdrom, iar cel asociat unităţii floppy este /dev/fdo, şi că directorul/mnt/cdrom există):

# mount /dev/cdrom /mnt/cdrom # dd if=/mnt/cdrom/images/boot.img of=/dev/fdO # umount /dev/cdromI

Stabilirea metodei de instalare

Sunt disponibile următoarele metode de instalare:

CD-ROM

în cazul în care programul de instalare porneşte automat, nu este necesară folo-sirea disketei de boot. în caz contrar, se utilizează imaginea boot. img (cdrom. img în Mandrake) sau pcmcia. img dacă instalarea se face de pe un dispozitiv PCMCIA (o magistrală specifică calculatoarelor portabile, la care se pot lega diverse echipa-mente externe, de exemplu unităţi CD-ROM) pe un calculator portabil.

Hard-disk

în prealabil, CD-urile din care este formată distribuţia trebuie copiate pe o partiţie Linux sau Windows existentă. Este necesară o disketă de boot, utilizând imaginea boot.img (hd.img în Mandrake) sau pcmcia.img pentru dispozitive PCMCIA pe calculatoare portabile.

NFS

Se utilizează dacă instalarea se efectuează de pe un alt calculator care exportă conţinutul distribuţiei prin NFS (Network File System). Este necesară o disketă de boot cu suport pentru reţea, utilizând imaginea bootnet.img (network.img în Mandrake) sau pcmcia. img.

FTP

Se utilizează dacă instalarea se efectuează de pe un server FTP (File Transfer Protocol). Este necesară o disketă de boot cu suport pentru reţea, utilizând ima-ginea bootnet. img (network. img în Mandrake) sau pcmcia . img.

HTTP

Se foloseşte în cazul în care instalarea se face de pe un server HTTP (Web). Este necesară şi o disketă de boot cu suport pentru reţea, conţinând imagineabootnet. img (network. img în Mandrake) sau pcmcia . img.

Menţionăm că pentru instalările prin reţea poate fi necesară o a doua disketă, conţinând drivere pentru diverse plăci de reţea. Imaginea în discuţie estedrvnet. img (other . img în Mandrake).

Page 12: Administrarea Sistemelor Linux

Instalarea sistemului Linux 19

Pornirea instalării din MS-DOS/Windows

Se lansează următoarele comenzi (presupunând că unitatea CD-ROM este D: ):

> CD D:\DOSUTILS> AUTOBOOT (în Red Hat)> AUTORUN ( î n Mandrake)

Stabilirea tipului de instalare în distribu ţia Red Hat

Workstation (staţie de lucru)

Instalarea de tip workstation este ideală pentru utilizatorii noi de Linux. Se foloseşte atunci când sistemul se află acasă sau la serviciu. Include programe de tip office (redactare de texte, calcul tabelar etc.), programe pentru acces la Internet (navigare, citirea corespondenţei etc.), programe multimedia ş.a.m.d. Necesită minim 1,5 GB spaţiu disponibil.

Server

Acest tip de instalare cuprinde programe care oferă servicii Internet (Web, FTP, poştă electronică etc.), precum şi alte servicii de reţea (NFS, SMB etc.). Necesită minim l GB spaţiu disponibil.

Laptop (calculator portabil)

Se foloseşte pe calculatoare portabile, fiind asemănătoare cu \vorkstation, incluzând în plus suport pentru gestionarea bateriilor şi dispozitivelor mobile. Necesită minim 1,5 GB spaţiu disponibil.

Custom (personalizat)

Instalarea de tip custom este potrivită utilizatorilor obişnuiţi cu sistemul Linux şi oferă cea mai mare flexibilitate posibilă. Necesită minim 350 MB spaţiu disponibil pentru o instalare minimală şi minim 3,5 GB dacă sunt selectate toate pachetele. Pentru sisteme dedicate (router, server DNS etc.) se poate realiza instalarea cu doar 100 MB spaţiu disponibil.

Stabilirea tipului de instalare în distribu ţia Mandrake

Distribuţia Mandrake oferă doar instalări de tip Workstation şi Server. De asemenea, există două posibilităţi majore pentru instalare:

- Recommended, în care pachetele care vor fi instalate sunt selectate în mod automat de către sistem;

-Expert, care permite modificarea pachetelor ce vor fi instalate.

Page 13: Administrarea Sistemelor Linux

20 Administrarea şi configurarea sistemelor Linux

De menţionat că instalările de tip Workstation, Server şi Laptop şterg toate partiţiile existente şi creează automat partiţiile necesare, în funcţie de capacitatea discului fix pe care se face instalarea.

Spaţiul pe disc ocupat de sistemul Linux trebuie să fie separat de spaţiul ocupat de alte sisteme de operare instalate în sistem. Cel puţin două partiţii (o partiţie principală, /, şi swap) sunt necesare pentru instalarea sistemului.

1.2. începerea instalării

După bootare trebuie să apară un ecran conţinând în partea inferioară promptul boot:. Ecranul conţine informaţii despre diverse opţiuni de pornire. După apariţia acestui prompt, programul de instalare va porni automat după un minut, dacă nu este apăsată nici o tastă. Apăsarea tastei ENTER va porni imediat instalarea într-un mediu grafic uşor de utilizat. Dacă nu se doreşte pornirea mediului grafic (de exemplu, dacă placa video are performanţe slabe), se tastează comanda:

| boot: text

pentru a porni programul de instalare în mod text.

1. Selectarea limbii

Se selectează limba ce va fi utilizată atât în timpul instalării, cât şi implicit după instalare, Selecţia făcută aici va influenţa şi zona de timp. Sunt disponibile o multitudine de limbi, dintre care şi limba română.

2. Configurarea tastaturii

Se selectează:• modelul de tastatură (101 taste, Microsoft Natural Keyboard etc.). Poate fi

utilizat modelul Generic, dacă nici una dintre opţiunile din listă nu sepotriveşte cu tastatura în cauză;

• schema tastaturii (German, U.S. English etc.).

3. Configurarea mouse-ului

Se selectează:• tipul mouse-ului (Generic, Mouse Systems etc.);• dacă este un mouse serial, portul la care este conectat;• în cazul în care mouse-ul are două butoane, dacă se doreşte emularea de trei

butoane prin apăsarea celor două.

Page 14: Administrarea Sistemelor Linux

Instalarea sistemului Linux 21

4. Opţiunile de instalare

Se stabileşte dacă se efectuează o instalare completă sau un upgrade (instalarea unei versiuni mai noi a distribuţiei). In cazul instalării complete, se stabileşte tipul instalării: Workstation, Server, Laptop sau Custom.

5. Partiţionarea discului

Există trei opţiuni de partiţionare:• partiţionare automată: programul de instalare va genera automat partiţiile în

funcţie de tipul de instalare ales. Partiţiile rezultate pot fi modificate apoi înfuncţie de necesităţi;

• partiţionare manuală cu ajutorul uneltei Disk Druid, un program dotat cu ointerfaţă grafică simplă dar puternică, uşor de folosit;

• partiţionare manuală cu ajutorul programului clasic fdisk, care are o interfaţătip linie de comandă, în mod text.

Partiţionarea automată

Programul de partiţionare automată oferă utilizatorului posibilitatea de a controla modul de tratare a partiţiilor deja existente pe disc, prin intermediul a trei opţiuni:

• ştergerea partiţiilor Linux existente;• ştergerea tuturor partiţiilor existente;• păstrarea partiţiilor existente şi utilizarea spaţiului liber.

Din lista de discuri fixe aflate în sistem trebuie selectate discurile pe care va fi efectuată instalarea.

Dacă opţiunea Review este activată, instalarea va continua cu programul Disk Druid, permiţând modificarea partiţiilor create automat.

Page 15: Administrarea Sistemelor Linux

Figura 1.1. Partiţionarea discului cu Disk Druid

Fiecare disc fix din sistem poate fi editat separat. Acţiunile se efectuează prin intermediul a cinci butoane:

• New - pentru crearea unei noi partiţii. Dialogul care apare conţine următoarele câmpuri:

o Mount Point - directorul în care va fi montat conţinutul noii partiţii(de exemplu, pentru partiţia de root, /); o Filesystem Type - tipul

partiţiei (de exemplu, ext2 sau ext3 pentru opartiţie Linux);

o Size - dimensiunea partiţiei în MB;o Additional Size Options - dacă partiţia va avea dimensiunea fixă

menţionată în câmpul precedent, dacă se doreşte ca partiţia să umpletot spaţiul liber mai puţin o dimensiune menţionată sau dacă se doreşteca partiţia să umple tot spaţiul disponibil;

o Force to be a primary partition - dacă se doreşte ca partiţia să fieprimară;

o Check for bad blocks - dacă se doreşte verificarea existenţei de sectoare defecte pe respectiva partiţie;

Page 16: Administrarea Sistemelor Linux

Instalarea sistemului Linux 23

• Edit - pentru editarea proprietăţilor unei partiţii deja create;• Delete - pentru ştergerea unei partiţii deja create;• Reset- pentru renunţarea la modificările făcute asupra partiţiilor;• Make RAID - pentru crearea de partiţii RAID.

Partiţionarea discului folosind programul fdisk

Comenzile uzuale sunt: a setează/anulează opţiunea de bootare a unei partiţii (avertizăm că doar o

singură partiţie trebuie să aibă setată această opţiune; în caz contrar, esteimpredictibilă partiţia de pe care va porni sistemul) d

şterge o partiţie/ listează tipurile de partiţii cunoscute m afişează toate comenzi \Qfdisk n adaugă o nouă partiţie p afişează tabela de partiţii q părăseşte fdisk fără a salva modificările făcute / modifică tipul unei partiţii w scrie tabela pe disc şi

lată un exemplu de lansare a comenzii «:

Command (m for help) : nFirst cylinder (2837-3649, default 2837) :Using default value 2837Last cylinder or +size or +sizeM or -fsizeK (2837-3649, default3649) :Using default value 3649

După cum se observă, este solicitat numărul cilindrului de la care va începe partiţia, precum şi numărul cilindrului la care se va sfârşi partiţia, în locul acestuia din urmă poate fi specificată începând cu + mărimea partiţiei în octeţi, sau în kilo-octeţi adăugând K, sau în mega-octeţi adăugând M (de exemplu, +SOOM desemnează o partiţie de 500 megabytes).

Pentru detalii suplimentare privind programul fdisk, vezi secţiunea l .6.1 .

Tipuri de partiţii

Principalele tipuri de sisteme de fişiere ce pot fi create sunt:• ext2 - sistemul clasic de fişiere din Linux, compatibil cu standardele UNIX;• ext3 - un sistem nou de fişiere, bazat pe ext2, cu suport pentru jurnalizare

(avantajul principal al jurnalizării este siguranţa sporită a datelor şi timpulredus de restaurare după o cădere a sistemului);

• reiserfs - un sistem nou de fişiere, cu suport pentru jurnalizare, având înmulte condiţii performanţe superioare ex(2 sau ext3, datorită arhitecturiiinterne arborescente;

Page 17: Administrarea Sistemelor Linux

24_____________________Administrarea şi configurarea sistemelor Linux _______________________

• jfs-\m sistem nou de fişiere, cu suport pentru jurnalizare;• swap - partiţia pentru memoria virtuală;• vfat - sistemul de fişiere Windows.

Recomandări privind crearea partiţiilor

Recomandăm crearea cel puţin a următoarelor partiţii:• o partiţie de swap, pentru a crea memorie virtuală (informaţiile sunt scrise în

memoria virtuală atunci când nu există memorie fizică disponibilă). Partiţiade swap trebuie să fie de cel puţin 32 MB şi cel mult 2 GB, valoarea idealăfiind valoarea memoriei RAM existente în sistem;

• o partiţie /boot care va conţine nucleul Linux şi celelalte fişiere utilizate întimpul bootării. Dimensiunea ideală a acestei partiţii este de 16-32 MB;

• partiţia de root, acolo unde se va afla /, directorul-rădăcină al sistemului, şicare va conţine toate fişierele din sistem.

în cazul în care calculatorul va fi server Linux, recomandăm crearea a trei partiţii suplimentare:

• o partiţie /usr, care va conţine fişierele sistemului de operare, de mărime celpuţin egală cu dimensiunea preconizată a instalării plus circa 100 MB (deexemplu, l ,4 GB);

• o partiţie /var, care va conţine fişierele variabile ale sistemului, preferabilde cel puţin 256 MB;

• o partiţie /home, care va conţine fişierele utilizatorilor, de preferinţă de celpuţin 512 MB.

6. Instalarea încărcătorului de boot

Pentru a putea porni sistemul Linux, este nevoie de un încărcător de boot (boot loader). De asemenea, acest încărcător poate porni şi alte sisteme de operare care sunt instalate pe disc. Sunt disponibile trei opţiuni:

• programul GRUB (GRand Unified Boot loader), pe care îl recomandămdatorită facilităţilor oferite şi performanţelor sale;

• programul LILO (Linux LOader);• nici un încărcător de boot, caz în care utilizatorul trebuie să se asigure că

poate porni sistemul Linux într-un alt mod (de exemplu, cu o disketă deboot).

încărcătorul de boot poate fi instalat în:• Maşter Boot Record (MBR), sectorul de boot care este încărcat automat de

BIOS-ul calculatorului - este opţiunea recomandată (exceptând situaţia încare pe disc este instalat şi sistemul OS/2);

• primul sector al partiţiei de root.

Page 18: Administrarea Sistemelor Linux

Instalarea sistemului Linux 25

De asemenea, aici pot fi stabilite şi celelalte sisteme de operare care vor fi pornite de încărcătorul de boot.

7. Parola de pornire

Dacă a fost instalat un încărcător de boot, poate fi definită o parolă pentru a proteja sistemul. Aceasta va fi solicitată utilizatorului la pornire, dacă încearcă să apeleze nucleul folosind parametri. Parola de pornire oferă protecţie faţă de atacurile de la consolă.

8. Configurarea legăturii de reţea

Dacă instalarea a fost pornită cu suport pentru-reţea, fiecare placă de reţea aflată în calculator trebuie configurată astfel:

• dacă configurarea adresei IP se face prin DHCP (Dynamic HostConfiguration Protocol);

• dacă interfaţa de reţea va fi activată la pornire;• adresa IP;• masca de reţea;• adresa de reţea;• adresa de broadcast;• numele maşinii;• adresa gateway-u\u\;• adresa DNS-ului primar, secundar şi ternar.

9. Configurarea firewall-ulm

Unfirewall este un filtru de protecţie care determină ce resurse ale sistemului pot fi accesate din afara acestuia. Programul de instalare poate configura automat firewall-u\.

Există trei niveluri de securitate:• înalt (ffigh), caz în care sistemul nu va accepta alte tipuri de conexiuni decât

cele definite. Implicit, vor fi acceptate doar următoarele tipuri de conexiuni:o cereri DNS;o DHCP.

Dacă sistemul este conectat la Internet, însă nu oferă servicii către exterior, aceasta este cea mai sigură opţiune;

• Mediu (Medium), caz în care sistemul nu va accepta decât anumite tipuri deconexiuni. Implicit, următoarele tipuri de conexiuni nu vor fi permise:

o pe porturi mai mici decât 1023 - porturile rezervate standard, utilizate de majoritatea serviciilor, cum ar fi FTP, SSH, telnet, HTTP;

Page 19: Administrarea Sistemelor Linux

26 Administrarea şi configurarea sistemelor Linux

o serverul NFS;o sistemul de ferestre X Windows;o serverul xfs;

• F&râfîrewall (Nofirewall).

Alegând opţiunea Customize, pot fi adăugate dispozitive considerate sigure sau poate fi acordat accesul la servicii adiţionale. Selectând oricare dintre dispozitive, va fi permis accesul dinspre dispozitivele respective către sistem - cu alte cuvinte, respectivul dispozitiv va fi exclus din regulile stabilite defirewall. Spre exemplu, poate fi permis accesul fără restricţii în cadrul reţelei locale, prin placa de reţea ethO, iar conexiunea dial-up la Internet,pppO, să fie supusă filtrării.

Dintre serviciile din cadrul Allow Incoming pot fi selectate acelea la care va fi permis accesul:

• DHCP - serviciul pentru configurarea automată a adresei IP;• SSH - serviciul pentru conectarea şi execuţia de comenzi pe o maşină aflată

la distanţă, utilizând un protocol sigur pentru criptarea datelor;• telnet - serviciul pentru conectarea la o maşină aflată la distanţă, fără

criptare şi cu securitate redusă;• WWW (HTTP) - serviciul pentru accesarea paginilor Web;• Mail (SMTP) - serviciul pentru trimiterea de mesaje;• FTP - serviciul de transfer de fişiere;• alte porturi, pentru a permite şi accesul la alte porturi, sub forma

port: protocol - de exemplu, pop3: tcp sau 6667 :udp.

10. Selectarea limbii

Se selectează atât limba implicită, cât şi limbajele adiţionale care vor fi instalate.

11. Configurarea timpului

Se selectează zona de timp (fusul orar) în care se află sistemul.

12. Configurarea utilizatorilor

Utilizatorul root posedă drepturi totale asupra sistemului. Acest utilizator trebuie folosit în mod normal doar pentru a instala/dezinstala pachete şi pentru administrarea sistemului. Se recomandă crearea unuia sau mai multor utilizatori obişnuiţi pentru utilizarea calculatorului, chiar dacă acesta este folosit acasă, deoarece o comandă greşită tastată ca root poate cauza deteriorarea sistemului sau chiar pierderea totală a datelor şi aplicaţiilor stocate.

Este obligatorie stabilirea unei parole pentru utilizatorul root. Parola trebuie să aibă minim şase caractere lungime şi nu poate conţine cuvinte aflate în dicţioriar.

In cadrul acestei etape pot fi creaţi şi utilizatorii sistemului.

Page 20: Administrarea Sistemelor Linux

Instalarea sistemului Linux 27

13. Configurarea autentificării în sistem

în cazul în care maşina va fi legată în reţea, este important ca accesul la sistem să fie posibil pe baza unui sistem de autentificare sigur. Sunt disponibile următoarele opţiuni:

• Activarea/dezactivarea parolelor MD5, care permite utilizarea de parole depână la 256 de caractere lungime, în loc de lungimea standard de maxim8 caractere. Implicit, această opţiune este activată.

• Activarea/dezactivarea parolelor de tip shadow, care oferă o metodă sigurăde memorare a parolelor. Parolele sunt memorate în fişierul /etc/shadow,care nu poate fi accesat de către utilizatori. Implicit, această opţiune esteactivată.

• Activarea NIS (Network Information Service), care permite definirea unuigrup de calculatoare legate într-un domeniu NIS comun, partajând un singurfişier de parole şi grupuri. Cuprinde următoarele opţiuni:

o domeniul NIS, specificând numele domeniului din care face partemaşina; o dacă se doreşte transmiterea unui mesaj către reţeaua

locală pentrugăsirea unui server NIS; o serverul NIS, conţinând

numele serverului NIS.• Activarea LDAP (Lightweight Directory Access Protocol), care permite

utilizarea protocolului LDAP pentru anumite operaţiuni de autentificare.Cuprinde următoarele opţiuni:

o serverul LDAP, conţinând adresa IP a serverului care ruleazăprotocolul LDAP; o dacă se doreşte căutarea informaţiilor despre

utilizatori după numelelor distinctiv (DN); o dacă se doreşte utilizarea TLS (Transport

Layer Security), ceea ce vadetermina ca numele şi parolele utilizatorilor să fie criptate înmomentul transmiterii către serverul LDAP.

• Activarea Kerberos, un sistem sigur ce oferă autentificare în reţea. Cuprindetrei opţiuni:

o Realm - permite accesarea unei reţele ce utilizează Kerberos, compusă din unul sau câteva servere (numite şi KDC-uri) şi un număr relativ mare de clienţi;

o KDC - permite accesul la K.DC (Key Distribution Center), o maşină care emite tichete Kerberos;

o Admin Center - permite accesul la un server ce rulează kadmind.• Activarea autentificării SMB, care permite utilizarea unui server SMB (de

exemplu, o maşină Windows NT) pentru autentificarea utilizatorilor. Trebuieintroduse două informaţii:

o numele serverului SMB;o numele workgroup-u\u\ SMB.

Page 21: Administrarea Sistemelor Linux

28 Administrarea şi configurarea sistemelor Linux

Page 22: Administrarea Sistemelor Linux

14. Selectarea grupurilor de pachete

Pot fi selectate grupurile de pachete (aplicaţii) care se doresc a fi instalate. Dacă se doreşte şi selectarea individuală a pachetelor din cadrul grupurilor, trebuie activată opţiunea Select individual packages. In orice moment poate fi verificată dimensiunea instalării.

Figura 1.2. Selectarea pachetelor ce urinează a fi instalate

Lista de pachete poate fi afişată fie grupată după tipul acestora, fie în ordine alfabetică, în partea de jos a ecranului este prezentată descrierea pachetului pe care se află cursorul.

După selectarea pachetelor, programul de instalare verifică dependenţele dintre pachete (anumite aplicaţii necesită şi alte aplicaţii pentru a funcţiona corect).

15. Configurarea plăcii video

în general, programul de instalare poate determina singur tipul plăcii video din sistem, în cazul în care această detectare a eşuat, din lista de plăci video cunoscute poate fi aleasă placa în cauză. De asemenea, poate fi specificată dimensiunea memoriei video.

Page 23: Administrarea Sistemelor Linux

.

Instalarea sistemului Linux 29

16. Instalarea pachetelor

Durata instalării pachetelor derjinde atât de numărul de pachete selectate, cât şi de performanţele calculatorului, în timpul instalării sunt afişate informaţii despre pachetul în curs de instalare, precum şi despre evoluţia instalării.

Procesul de instalare a pachetelor creează un jurnal cu acţiunile întreprinse, în

/tmp/install.log.

17. Crearea disketei de boot

Este recomandată crearea unei diskete de boot, utilă în cazul în care ar putea apărea probleme la pornirea sistemului Linux. Se utilizează o disketă goală, formatată în prealabil, care nu trebuie să fie defectă. Această disketă nu va fi formatată FĂT (MS-DOS) şi deci nu va putea fi utilizată în alt sistem de operare.

18. Configurarea sistemului de ferestre X Window

Configurarea monitorului

Programul de instalare va încerca să determine tipul monitorului. Dacă detectarea eşuează, trebuie selectat monitorul din lista de tipuri cunoscute.

Sistemul va testa configuraţia aleasă, în cazul în care testul nu se încheie în câteva secunde, acesta poate fi încheiat utilizând combinaţia de taste ctri+Ait+Backspace.

Personalizarea sistemului X Window

Se selectează adâncimea culorii (de exemplu High Color - 16 bit, True Color -32 bit etc.), rezoluţia ecranului (spre exemplu, 800*600, 1024*768 etc.), mediul desktop (KDE sau GNOME) şi dacă sistemul va porni direct în mod grafic sau în mod text.

19. Instalarea este încheiată

Programul de instalare va cere confirmare pentru repornirea sistemului, înainte de aceasta, eventuala disketă aflată în unitatea floppy trebuie scoasă, CD-ul din unitatea CD-ROM fiind scos automat.

Page 24: Administrarea Sistemelor Linux

2. Upgradarea sistemului

Upgradarea sistemului reprezintă instalarea unor versiuni mai noi ale programelor deja instalate în sistem, precum şi instalarea unei versiuni mai recente a nucleului Linux. Datorită dependenţelor dintre pachete, este posibil să fie necesară instalarea şi altor pachete decât cele existente.

Procesul de upgradare creează un jurnal cu acţiunile întreprinse, în /tmp/upgrade.iog. De asemenea, fişierele de configurare la care s-a schimbat formatul vor fi salvate cu extensia .rpmsave. Fişierele noi de configurare vor trebui editate după upgradare de către administratorul sistemului.

Procedurile sunt aceleaşi ca Ia instalare, până la specificarea opţiunilor de instalare.

1. Opţiunile de instalare

Trebuie selectată opţiunea Upgrade Existing System. Programul de instalare va detecta automat partiţia pe care este instalat sistemul existent. Se poate opta pentru păstrarea sistemului de fişiere ext2 sau se poate migra pe ext3.

2. Personalizarea upgrade-ului

Lista de pachete poate fi modificată sau upgrade-ul se poate face automat.

3. Instalarea încărcătorului de boot4. Parola de pornire5. Selectarea pachetelor ce urmează a fi upgradate6. Upgradarea pachetelor7. Upgrade-ul este încheiat

Procedurile sunt aceleaşi ca la instalare.

Page 25: Administrarea Sistemelor Linux

3. Gestionarea pachetelor software

Un pachet reprezintă ansamblul de fişiere necesare pentru funcţionarea unui anumit program sau grup de programe. Pachetul este constituit în general din unul sau mai multe executabile, fişiere de configurare, documentaţii etc. între unele pachete pot exista relaţii de dependenţă, în sensul că un pachet poate depinde de instalarea în prealabil a altor pachete. Sistemul de gestiune a pachetelor administrează în mod transparent o bază de date internă, care conţine toate informaţiile necesare.

RPM (Red Hat Package Manager) este un sistem de împachetare creat de Red Hat Software Inc. şi care este utilizat şi de alte distribuţii Linux, cum ar fi Mandrake, SuSE şi Caldera.

Sistemul RPM permite operarea uşoară a pachetelor: instalare, dezinstalare, upgrade etc. Aceste trei operaţiuni trebuie efectuate din utilizatorul root, deoarece ele conduc la modificarea bazelor de date RPM.

Pachetele RPM au în general nume de fişier de genul dcc++-3.4.9-I.i386.rpm. Numele fişierului include denumirea pachetului (doc++), versiunea (3.4.9), numărul de lansare (i) şi arhitectura (1386, adică Intel minim 386).

3.1. Instalarea pachetelor

Instalarea unui pachet se realizează prin comanda:

| i rpm -i doc++-3.4.9-1.1386.rpm

Uneori pot apărea şi erori:

Pachetul este deja instalat

| package doc++-3.4.9-1 is already installed

Dacă se doreşte oricum instalarea pachetului (de exemplu, dacă au fost şterse fişiere conţinute în pachet), pentru ca RPM să ignore eroarea, se foloseşte parametrul —replacepkgs.

Fişiere care intră în conflict

| /usr/bin/docify conflicts with file from doc++-3.4.8-2

Page 26: Administrarea Sistemelor Linux

32 Administrarea şi configurarea sistemelor Linux

Pachetul conţine un fişier care este deja instalat dintr-un alt pachet sau dintr-o versiune mai veche a pachetului.

Dacă se doreşte totuşi instalarea pachetului, trebuie folosit parametrul--replacefiIes.

Dependenţe nerezolvate

Pentru a funcţiona corect, pachetul are nevoie ca alt pachet să fie instalat mai întâi.

l failed dependencies:flex is needed by doc++-3.4.9-1

Pachetele necesare trebuie instalate pentru a rezolva dependenţele. Dacă totuşi se doreşte instalarea pachetului (care, astfel, se poate să nu funcţioneze corect), se utilizează parametrul —nodeps.

3.2. Dezinstalarea pachetelor

| # rpm -e doc++

în cazul în care un pachet depinde de acest pachet, RPM va genera o eroare de dependenţă:

removing these packages would break dependencies: doc++ is needed by foo-1.0-1IDe asemenea, poate fi folosit parametrul --nodeps, ceea ce nu este însă

recomandat.

3.3. Upgradarea pachetelor

Upgradarea unui pachet semnifică instalarea unei versiuni mai noi a acestuia, acţiune care poate fi necesară dacă noul pachet include corecţii de bug-uri (erori în cadrul programelor) sau conţine noi facilităţi care sunt necesare. Datorită dependenţelor dintre pachete, este posibil să fie necesară instalarea şi altor pachete decât cele existente.

| tt rpm -U doc++-3.4.8-l.i386.rpm

Pachetul existent în sistem va fi mai întâi dezinstalat, apoi noul pachet va fi instalat, în mod automat. Deoarece RPM realizează un upgrade inteligent al pachetelor conţinând fişiere de configurare, poate fi afişat un mesaj de genul:

Page 27: Administrarea Sistemelor Linux

Instalarea sistemului Linux 33

| sav ing / e t c /doc++ .conf a s / e t c /doc++ .conf . rpmsave

Acest mesaj înseamnă că este posibil ca vechiul fişier de configurare să nu fie complet compatibil cu noul fişier de configurare. Administratorul va trebui să analizeze manual diferenţele dintre cele două fişiere şi să le rezolve.

Dacă pachetul este mai vechi decât cel instalat, va fi generată o eroare:

| package doc+H—3.4.9-1 (which is newer) is already installed

Pentru a face totuşi upgradarea, se foloseşte parametrul —oidpackage.

3.4. Extragerea informaţiilor despre pachete

Pentru afişarea versiunii şi numărului lansării al pachetului instalat doc++:

t rpm -q doc++ doc++-3.4.9-lIOpţiuni ce pot fi utilizate împreună cu -q:

-a - listează toate pachetele instalate;•ffişier - afişează pachetul care conţinea/f ier,-i - afişează toate informaţiile despre pachet: numele, descrierea, versiunea,

numărul lansării, mărimea, data împachetării, data instalării, numelecreatorului;

-/- afişează lista fişierelor conţinute de pachet; —provides - afişează capabilităţile pe care le oferă pachetul; -R - afişează capabilităţile de care depinde pachetul.

Mai multe detalii se pot obţine folosind comanda mân rpm.

3.5. Verificarea pachetelor

Operaţiunea de verificare compară informaţiile despre fişierele instalate cu informaţiile din baza de date. Sunt verificate mărimea, suma de control MD5, permisiunile, tipul, proprietarul şi grupul. Pentru a verifica un pachet:

|# rpm -V doc++

Page 28: Administrarea Sistemelor Linux

34 Administrarea şi configurarea sistemelor Linux

Pentru a verifica toate pachetele instalate:

| # rpm -Va

Pentru a verifica un pachet comparativ cu un fişier RPM:

| # rpm -Vp doc++-3.4.9-1.1386.rpm

Dacă există diferenţe, se va afişa un şir de caractere format din opt caractere şi numele fişierului. Fiecare caracter reprezintă rezultatul comparaţiei unui atribut. Un punct (.) înseamnă că testul a fost trecut cu succes. Sunt posibile următoarele atribute:

• 5 suma de control MD5• S mărimea fişierului• Z, legătură simbolică• Tdata modificării fişierului• D dispozitiv• U utilizatorul• G grupul• M permisiunile şi tipul fişierului• ? fişierul nu poate fi citit.

Există şi posibilitatea de a verifica semnătura GPG a unui pachet pentru a-i certifica integritatea şi originea:

| rpm --checksig doc-r + -3 . 4 . 9-1.1386 . rpm

3.6. Interfeţe grafice pentru sistemul RPM

Cea mai cunoscută interfaţă grafică pentru manipularea sistemului RPM este GnomeRPM. Acest program se lansează fie din mediu grafic cu meniul Programs :: System :: GnoRPM, fie de la promptul sistemului, cu gnorpm &:.

în distribuţia Mandrake, interfaţa grafică pentru manipularea pachetelor RPM este Kpackage şi se lansează din meniul Configuration :: Packaging :: Package manager sau din linia de comandă, cu kpackage &.

Pe lângă operaţiunile obişnuite cu pachetele RPM, aceste programe au posibilitatea căutării pe Internet a versiunilor mai noi de pachete şi realizarea în mod automat a operaţiunii de upgradare.

Page 29: Administrarea Sistemelor Linux

.

Figura 3.1. Programul GnomeRPM

Page 30: Administrarea Sistemelor Linux

Partea a Il-a

CONFIGURĂRI DE BAZĂ ALE SISTEMULUI

Page 31: Administrarea Sistemelor Linux

1. Administrarea sistemelor de fişiere

1.1. Structura sistemului de fişiere Linux

Fişierele sunt grupate în sisteme de fişiere, partajând spaţiul de stocare existent (hard-disk-uri etc.). în UNIX, sistemele de fişiere au următoarele caracteristici principale:

• structură arborescentă;• dispozitivele sunt tratate în mod unitar;• resursele sunt protejate prin intermediul unui sistem de permisiuni.

Sistemele de fişiere nu sunt neapărat localizate pe discurile locale din sistem, ci pot fi:

• partiţii de pe discurile locale instalate în sistem;• directoare exportate de alte maşini (prin NFS, Samba, NCP etc.);• imagini ISO (imagini de discuri CD, aflate în fişiere obişnuite);• sisteme virtuale (care nu există fizic, cum ar fi /dev sau /proc).

Fişierele pot fi de mai multe tipuri:• obişnuite, conţinând date, programe etc.;• directoare;• speciale:

• dispozitive;• pipe-uri (utilizate în comunicaţia dintre proces);• socket-ur\ (folosite pentru comunicaţia în reţea);• legături simbolice (shortcut-uri către fişiere sau directoare, pentru o

mai uşoară regăsire sau accesare).

Sistemul de fişiere UNIX este organizat într-o ierarhie unică, având în vârf directorul-rădăcină (părinte) sau root, /.

Structura sistemului de fişiere Linux este standardizată în documentul numit Filesystem Hierarchy Standard (FHS). Standardul este disponibil la adresahttp: //www.pathname. com/fhs.

Directorul /dev

Conţine intrări care reprezintă dispozitivele din sistem. Aceste fişiere sunt vitale pentru funcţionarea sistemului.

Page 32: Administrarea Sistemelor Linux

40 Administrarea şi configurarea sistemelor Linux

Directorul /etc

Este rezervat fişierelor de configurare. Trebuie să conţină directoarele XII, care conţine fişierele de configurare ale sistemului X Windows (cum ar fi XF86Config), şi skel, care conţine fişierele implicite ale utilizatorilor copiate la crearea acestuia.

Directorul /home

Conţine fişierele utilizatorilor. Conţine câte un subdirector pentru fiecare utilizator în parte, purtând numele acestuia. Directoarele utilizatorilor se numesc directoare home.

Directorul /lib

Conţine bibliotecile necesare pentru execuţia executabilelor din /bin şi /sbin (importante, de exemplu, pentru pornirea sistemului).

Directorul /mnt

Conţine sisteme de fişiere montate temporar, cum ar fi CD-uri sau diskete.

Directorul /opt

Oferă spaţiu pentru aplicaţii software mari, cu o structură complexă de directoare sau care conţin subpachete.

Directorul /proc

Conţine fişiere virtuale speciale care fie extrag informaţii din nucleu, fie trimit informaţii către nucleu.

Directorul /sbin

Conţine executabile utilizate doar de către root. Executabilele sunt utilizate doar pentru pornire, oprire şi repararea sistemelor de fişiere.

Directorul /«s/Conţine fişiere folosite de toţi utilizatorii; în mod normal, este montat într-o partiţie separată, doar cu posibilitate de citire. Trebuie să conţină următoarele directoare: bin (conţine executabile), doc (conţine documentaţii), etc (conţine fişiere de configurare generale), games (conţine jocuri), include (conţine fişiere header C), kerberos (conţine sistemul Kerberos), lib (conţine fişiere obiect şi biblioteci utilizate de către programe), libexec (conţine mici programe apelate de aplicaţii), sbin (conţine executabile pentru administrarea sistemului, altele decât cele din

Page 33: Administrarea Sistemelor Linux

________________________Configurări de bază ale sistemului ___________________________ 4J_

/sbin), share (conţine fişiere independente de platformă), src (conţine coduri--sursă), iar X11R6 conţine sistemul X Window.

Directorul /usr/local

Acest director este rezervat pentru uzul administratorului de sistem pentru a instala programe local (/usr poate fi exportat şi către alte maşini pentru a economisi spaţiu pe respectivele maşini). Structura acestui director este similară directorului/usr.

Directorul /var

Conţine fişiere variabile utilizate de aplicaţii. Include cozi de aşteptare, informaţii administrative şi jurnale, baze de date, precum şi fişiere temporare. Trebuie să conţină următoarele subdirectoare: arpwatch, cache, db, f tp, gdm, kerberos, lib, local, lock, log, named, nis, opt, preserve, run, spool (cu următoarele subdirectoare: anacron, at, cron, fax, Ipd, mă i l, mqueue, news, rwho, samba, slrnpull, squid, up2date, uucp, uucppublic, vbox, voice), tmp, www, yp.

Jurnalele sistemului se găsesc în /var/log.

1.2. Gestiunea atributelor fişierelor

în UNIX, fiecare fişier sau director are un proprietar (owner) şi un grup (group) pentru care se pot specifica drepturi de acces. De asemenea, se pot stabili drepturi şi pentru ceilalţi utilizatori (others) care nu deţin fişierul în cauză şi nici nu fac parte din grupul respectiv. Drepturile asociate unui fişier sunt:

• citire (,/');• scriere („w");• execuţie („x")-

Pentru directoare, drepturile de acces au o semnificaţie diferită, în sensul că ,/" reprezintă dreptul de inspectare a conţinutul directorului (comanda îs), „w" permite adăugarea şi ştergerea de fişiere, iar „x" este dreptul de intrare în director (comanda cd).

De asemenea, pentru fişiere mai există trei atribute speciale (biţi):• biţii SUID (Set User ID) şi SGID (Set Group ID), care permit schimbarea

identităţii efective a utilizatorului cu cea a proprietarului fişierului pe durataexecuţiei programului respectiv (e.g. comanda passwd);

• bitul Sticky („lipicios", notat cu „t"), utilizat pentru directoare, indică faptulcă ştergerea unui fişier din cadrul acestuia va fi permisă doar proprietaruluisău, chiar dacă în director are oricine drept de scriere.

Page 34: Administrarea Sistemelor Linux

42 Administrarea şi configurarea sistemelor Linux

Page 35: Administrarea Sistemelor Linux

Drepturile de acces sunt afişate de comanda îs -l printr-o secvenţă de zece caractere. Primul caracter se referă la tipul fişierului, după cum urmează: - fişier obişnuit b fişier special de tip bloc c fişier special de tip caracter d director / legătură simbolică

P Pipe s socket

Următoarele sunt trei grupuri a câte trei caractere, primul grup făcând referire la drepturile proprietarului, al doilea - la cele ale grupului, şi al treilea - la drepturile celorlalţi utilizatori, în mod analog, primul caracter din grup semnifică dreptul „r", al doilea - „w" şi al treilea - „x". Dacă un anumit drept nu este setat, apare caracterul „-".

Modificarea drepturilor

Se realizează cu ajutorul comenzii chmod. Pentru proprietar se utilizează litera „M", pentru grup - „g", iar pentru alţi utilizatori - „o". Pentru acordarea şi revocarea de drepturi se foloseşte caracterul „+", respectiv „-". De exemplu, dacă se doreşte acordarea drepturilor de citire şi scriere altor utilizatori pentru fişierul test.ce se foloseşte comanda:

| # chmod o+rw test.ce

Mai există o modalitate de modificare a drepturilor de acces. Fiecărui grup de drepturi i se asociază o valoare numerică: fiecărui drept acordat îi corespunde valoarea l, fiecărui drept revocat îi corespunde valoarea 0. Rezultă astfel un nurnăr binar format din trei cifre, care trebuie transformat apoi în zecimal. De exemplu,

Page 36: Administrarea Sistemelor Linux

________________________Configurări de bază ale sistemului ________________________43_

pentru rw- corespunde valoarea 110, adică 6 în zecimal. Deci pentru a seta drepturile rw-rw-r— pentru fişierul test. ce va fi utilizată comanda:

| # chmod 664 test.ce

Modificarea proprietarului

Pentru modificarea proprietarului se foloseşte comanda chown. Comanda

| Jt chown dragos . autori test. ce

va stabili proprietarul dragos şi grupul autori pentru fişierul test.ce.Specificarea grupului nu este obligatorie.De asemenea, schimbarea doar a grupului se poate face cu comanda chgrp.

1.3. Montarea şi demontarea sistemelor de fişiere

Montarea reprezintă procesul de a face disponibil conţinutul unui sistem de fişiere (de exemplu, conţinutul unui disc CD-ROM), asimilându-1 în cadrul structurii de directoare a sistemului. Cu alte cuvinte, un sistem de fişiere poate fi montaţi demontat la, respectiv de la ierarhia sistemului. Singura excepţie o face ierarhia rădăcină, care este întotdeauna montată începând cu momentul pornirii sistemului. Toată ierarhia de fişiere şi directoare ale unei partiţii sau ale unui disc poate fi montată în orice director al sistemului-rădăcină. După montare, directorul-•rădăcină al sistemului de fişiere montat înlocuieşte conţinutul directorului unde a fost montat. Montarea se face utilizând comanda mount, având următoarea sintaxă:

| # mount [ opţiuni ] nume_dispozitiv punct_de_montare

unde op/iun; pot fi:

:-r montează sistemul de fişiere în mod read-only (numai citire) -t specifică tipul

sistemului de fişiere (vezi tabelul l .3) -o specifică diferite opţiuni de montare

(vezi tabelul l .4) -n' montează sistemul de fişiere în mod scriere. Directorul

punct_de_montare trebuie să existe, altfel va fi semnalată eroare. De exemplu,

pentru a monta discul CD-ROM în /mnt/cdrom: | t mount /dev/cdrom

/mnt/cdrom

Page 37: Administrarea Sistemelor Linux

44 Administrarea şi configurarea sistemelor Linux

Page 38: Administrarea Sistemelor Linux

Demontarea se face utilizând comanda umount, având următoarea sintaxă:

| # umount nume_dispozitiv (sau punct_de_montare)

Demontarea CD-ROM-ului deja montat: |

# umount /dev/cdrom

In loc de /dev/cdrom SC poate introduce /mnt/cdrom.

Montarea automată a sistemelor de fişiere

Procesul de montare automată este controlat de fişierul de configurare /etc/f ştab. Acesta este structurat pe linii, conţinând şase câmpuri:

Tabelul 1.1. Structura fişierului /etc/f ştab

Câmp ___________ Descriere__________________________________________Numele de dispozitiv a partiţieiDirectorul în care va fi montat dispozitivulTipul sistemului de fişiere: ext2, swap, vfat, iso9660 etc.

Opţiuni asupra operaţiunii de montare, separate prinvirgulă, în general, se utilizează defaults. Dacă estespecificată opţiunea noauto, sistemul de fişiere nu va fimontat automat la pornireFrecvenţa cu care sistemul de fişiere va fi salvatUn număr care indică ordinea în care vor fi verificate

sistemele de fişiere. Pentru sistemul-rădăcină trebuie săaibă valoarea l, iar pentru swap valoarea 0. Sistemelepentru care valoarea acestui câmp este egală vor fiverificate în paralel (recomandat doar dacă se află pediscuri diferite) _____________________________________

Furnizăm în continuare un fişier /etc/f ştab, de exemplu:

Nume dispozitiv Punctul de montare Tipul sistemului de fişiere Opţiuni

Frecvenţa salvării Ordinea verificării

Page 39: Administrarea Sistemelor Linux

# device mount type /dev/hdal / ext2 /dev/hda2 none swap /dev/hda3 /mnt/dos vfat /dev/fdO /mnt/f loppy vfat /dev/cdrom /mnt/cdrom iso9660

optionsdefaultsswdefaultsnoautonoauto

dumpOOOOO

fsckl O Oo o

Page 40: Administrarea Sistemelor Linux

Sistemele de fişiere specificate în /etc/fstab sunt montate automat la pornirea sistemului (exceptând cele având opţiunea noauto) şi demontate automat la oprirea sistemului. De asemenea, pentru sistemele specificate în acest fişier de configurare,

Page 41: Administrarea Sistemelor Linux

_________________________Configurări de bază ale sistemului _________________________45_

la apelul comenzii mount trebuie specificat fie numele dispozitivului, fie punctul de montare, nu neapărat amândouă.

Numele de dispozitive

Tabelul 1.2. Nume de dispozitive uzuale

Numele dispozitivului______Tipul dispozitivului/dev/hda Primul controler IDE, unitatea conectată ca maşter/dev/hdb Primul controler IDE, unitatea conectată ca slave/dev/hdc Al doilea controler IDE, unitatea conectată ca maşter/dev/hdd Al doilea controler IDE, unitatea conectată ca slave/dev/sda Primul disc SCSI/dev/sdb Al doilea disc SCSI/dev/scdO Prima unitate CD-ROM SCSI/dev/scdl A doua unitate CD-ROM SCSI/dev/fdO Prima unitate floppy/dev/fdl ______________ A doua unitate floppy _____________________

A se consulta şi Anexa 3, care conţine o listă mai mare de nume de dispozitive uzuale.

Pentru discuri fixe, numele dispozitivului trebuie urmat de numărul partiţiei, de exemplu /dev/hdal pentru prima partiţie de pe discul /dev/hda. Linux permite, de asemenea, montarea doar unei sesiuni a unui disc CD-ROM, adăugând numărul sesiunii la numele dispozitivului (e.g. /dev/hdc2), cu menţiunea că numerotarea începe de la zero.

Tipuri de sisteme de fişiere

Tabelul 1.3. Tipuri de sisteme de fişiere uzuale

Tipul sistemului Descriere ______________________________________________ ext2 Sistemul clasic de fişiere Linuxext3 Noul sistem de fişiere Linux, bazat pe ext2, cu suport pentru

jurnalizarereiserf s Noul sistem de fişiere reiserfs, cu suport pentru jurnalizare,

cu performanţe mai bune decât ext2 în anumite situaţiiswap Partiţia pentru memorie virtualăvfat Sistem de fişiere Windows, cu suport pentru nume lungi de

fişieremsdos Sistemul clasic MS-DOS -iso9660 Sistemul de fişiere pentru discuri CD-ROMnfs ______________ Sistem de fişiere NFS, aflat la distanţă ___________________

Page 42: Administrarea Sistemelor Linux

46 Administrarea şi configurarea sistemelor Linux

Opţiuni de montare

Tabelul 1.4. Opţiuni de montare a sistemelor de fişiere

Numele opţiunii Descriere ___________________________________________ d e f a u l t s Opţiunea uzuală de montarero Nu este permisă scrierea (read-only)rw Este permisă scriereanosu id Nu este permis modul SUIDnoauto Sistemul de fişiere nu va fi montat automat la pornireremount Remontează sistemul de fişiere (utilizat în general pentru

modificarea opţiunilor de montare)u s e r ______________ Permite utilizatorilor obişnuiţi să monteze si ste inul d e fi ş i ere

1.4. Controlul utilizării sistemelor de fişiere

Sistemul Linux oferă administratorului sistemului posibilitatea de a impune utilizatorilor limite privind spaţiul de disc utilizat pe sistemele de fişiere din cadrul sistemului. Sistemul utilizat este quota, şi este compatibil System V.

Există două tipuri de limite: o limită soft şi o limită hard. Limita hard trebuie să fie mai mare sau cel mult egală cu cea soft. Atunci când s-a atins limita soft, utilizatorul este atenţionat printr-un e-mail asupra acestui fapt, îi este acordată o perioadă de graţie, după care este impusă limita hard, care nu poate fi depăşită.

Pentru a putea utiliza sistemul quota, trebuie ca pachetul quota să fie instalat.Fiecare sistem de fişiere conţine propriile setări de limite. Pentru a putea stabili

limite, trebuie efectuată mai întâi o iniţializare cu ajutorul comenzii quotaon:

| quotaon [ -u l -g ] -a l sistem_de_fişiere

Activarea se face fie pentru utilizatorul (-u, opţiunea implicită), fie pentru grupul (-g) specificat. Se poate efectua fie pentru toate sistemele de fişiere din /etc/fstab (opţiunea -a), fie doar pentru un anumit sistem de fişiere. Fişierele în care se află configurările limitelor se găsesc în directorul-rădăcină al fiecărui sistem de fişiere, sub numele aquota.user, aquota.group sau quota. user, quota.group.

De exemplu, comanda quotaon -u /dev/sda2 va activa utilizarea quota pe sistemul de fişiere /dev/sda2 doar pentru utilizatori.

Dezactivarea sistemului quota se face în mod similar, cu ajutorul comenziiquotaoff.

Limitele se stabilesc cu ajutorul comenzii setquota, astfel:

Page 43: Administrarea Sistemelor Linux

_______________________Configurări de bază ale sistemului ________________________ 47_

setquota [ -u l -g ] nume limită_blocuri_soft limită_blocuri_hardlimită_inoduri_soft limită_inoduri_hard -a l sistem_de_fişieresetquota -t [ -u [ -g ] timp_de_graţie_blocuritimp_de_graţie_inoduri -a l sistem_de_fişiere

Prima variantă stabileşte limitele pentru utilizatorul (-u, opţiunea implicită), respectiv pentru grupul (-g) specificat. Limitele pot fi setate pentru toate sistemele de fişiere care au activate sistemul de limitare (-a) sau pentru un anumit sistem de fişiere.

A doua variantă stabileşte timpul de graţie care este permis utilizatorilor sau grupurilor să depăşească limitele soft impuse, exprimat în secunde. După expirarea acestei perioade de graţie va fi impusă limita hard.

Spre exemplu, comenzile:

setquota -u dragos 1024 2048 O O /dev/sda2 setquota -t -u dragos 432000 O /dev/sda2I

stabilesc limitele soft, respectiv hard pentru blocuri (spaţiu ocupat) de l MB, respectiv 2 MB, fără a limita numărul de moduri utilizate. De asemenea, tirrîpul de graţie este de 5 zile.

Limitele pot fi editate şi cu ajutorul utilitarului edquota, care apelează practic un editor de texte pentru a modifica limitele:

edquota [ -u l -g ] nume edquota -t [ -u l -g ]IPrima variantă editează limitele pentru utilizatorul, respectiv grupul specificat. A doua variantă editează timpul de graţie.

1.5. Verificarea şi repararea sistemelor de fişiere

Oprirea forţată a sistemului sau căderile de tensiune pot cauza defectarea sisteme-lor de fişiere montate (aceste evenimente nedorite pot fi preîntâmpinate prin utili-zarea unui sistem de fişiere jurnalizat, cum ar fi exts sau reiserfs). Verificarea şi repararea sistemelor de fişiere se realizează cu ajutorul utilitarului fsck. Acest utilitar este apelat automat la pornirea sistemului pentru fiecare sistem de fişiere specificat în /etc/fstab (evident, fără opţiunea noauto) şi care nu a fost demontat corect. Exceptând sistemul-rădăcină,yic£ poate rula doar pentru sisteme de fişiere nemqntate. Pentru a rula fsck pe sistemul-rădăcină, sistemul trebuie adus în mod single-user (prin pornirea nucleului cu opţiunea single - pentru detalii, vezi cap. 3). Programul^jc£ are următoarea sintaxă:

| # fsck [ opţiuni ] nume_dispozitiv

Page 44: Administrarea Sistemelor Linux

48 Administrarea şi configurarea sistemelor Linux

Opţiunile uzuale sunt:-p repară automat toate erorile apărute, dacă aceasta nu modifică conţinutul nici

unui Fişier;-n răspunde „nu" la toate întrebările; afişează dar nu repară nici o eroare apărută; -y răspunde „da" la toate întrebările; repară orice eroare apărută, indiferent de

urmări; -/ verifică sistemul chiar dacă nu prezintă probleme.

De exemplu, verificarea partiţiei /dev/hda2 care nu a fost demontată corect la oprirea sistemului se va face prin comanda:

| fsck -y /dev/hda2

1.6. Gestionarea partiţiilor

1.6.1. Partiţionarea discului cufdisk

Programul fdisk este programul clasic de partiţionare a discurilor fixe, având o interfaţă tip linie de comandă, în mod text. Sintaxa fdisk este următoarea:

| i fdisk nume_dispozitiv

Comenzile uzuale sunt:a setează/anulează opţiunea de bootare a unei partiţii (avertizăm că doar o

singură partiţie trebuie să aibă setată această opţiune; în caz contrar, esteimpredictibilă partiţia de pe care va porni sistemul) d

şterge o partiţie/ listează tipurile de partiţii cunoscute m afişează toate comenzile_#foA: « adaugă o nouă partiţie p afişează tabela de partiţii q părăseşte fdisk fără a salva modificările făcute t modifică tipul unei partiţii w scrie tabela pe disc şi părăseşte fdisk.

Iată un exemplu de lansare a comenzii n:

Convmand (m for help) : nFirst cylinder (2837-3649, default 2837) :Using default value 2837Last cylinder or +size or +sizeM or +sizeK (2837-3649, default3649):Using default value 3649

Page 45: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 49

Page 46: Administrarea Sistemelor Linux

După cum se observă, este solicitat numărul cilindrului de la care va începe partiţia, precum şi numărul cilindrului la care se va sfârşi partiţia, în locul acestuia din urmă poate fi specificată începând cu + mărimea partiţiei în octeţi, sau în kilo-octeţi adăugând K, sau în mega-octeţi adăugând M (de exemplu, +SOOM desemnează o partiţie de 500 megabytes).

Prezentăm şi un exemplu de lansare a comenzii/;:

Page 47: Administrarea Sistemelor Linux

Command (m for

Disk /dev/hda:

help) : p

255 heads , 63 sectors, 3649 cylinders

Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id

/dev/hdal 1 523 4200966 83 /dev/hda2 . 524 1046 4200997+ 83 /dev/hda3 1047 1569 4200997+ c /dev/hda4 1570 3649 16707600 i /dev/hda5 1570 1831 2104483+ 83 /dev/hda6 1832 1895 514048+ 83 /dev/hda7 1896 1912 136521 82 /dev/hda8 1913 2043 1052226 83 /dev/hda 9 2044 2052 72261 82 /dev/hdal 0 2053 2836 6297448+ b /dev/hdall 2837 3649 6530391 83

System Linux LinuxWin95 FAT32 Win95 Ext'd Linux LinuxLinux swap LinuxLinux swap Win95 FĂT32 Linux

Page 48: Administrarea Sistemelor Linux

Tabelul 1.5. Tipuri de partiţii uzuale

Codul partiţiei Descriere 6 B3c 82 83

FĂT 16, partiţia de tip MS-DOS Windows FAT32, partiţia de tip Windows 32 biţi partiţie extinsă (conţine mai multe partiţii logice) swap, partiţia pentru memorie virtuală partiţii de tip Linux: ext2, ext3, reiserfs

1.6.2. Crearea de sisteme de fişiere cu mkfs

O dată creată o partiţie, aceasta trebuie formatată. Formatarea se face cu ajutorul programului mkfs, care are următoarea sintaxă:

| mkfs [ -t tip ] [ opţiuni ] nume_partiţie [ nr_blocuri ]

unde:- tip reprezintă tipul partiţiei. Tipurile recunoscute sunt ext2, msdos şi minix.

Dacă acest parametru nu este specificat, este considerat implicit ex(2;-opţiunipot fi:

Page 49: Administrarea Sistemelor Linux

50_____________________Administrarea şi configurarea sistemelor Linux _______________________

-v măreşte numărul mesajelor afişate-c verifică dacă dispozitivul nu conţine blocuri defecte înainte de a crea

partiţia;- nume_partiţie reprezintă numele dispozitivului;- nr_blocuri semnifică numărul de blocuri (dimensiunea) partiţiei ce va fi

creată.

Practic, mkfs apelează un alt program, sub numele de mkfs.tip (de exemplu, mkfs.ext2).

De exemplu, crearea unui sistem de fişiere ext2 pe partiţia /dev/sdb5 se va realiza utilizând comanda:

| mke2fs -c /dev/sdb5

1.6.3. Modificarea parametrilor partiţiilor ext2 cu tune2fs

In superblocul fiecărei partiţii ext2 sau ext3 există câteva câmpuri (parametri) ale căror valori pot fi vizualizate şi modificate cu ajutorul programului tune2fs. Acesta are următoarea sintaxă:

| # tune2fs [ opţiuni ] nume_dispozitiv

unde opţiuni pot fi:-c - număr jnaxim_de jnontăriModifică numărul maxim de montări dintre două verificări ale sistemului de fişiere. Dacă este specificată valoarea o, sistemul de fişiere nu va fi verificat periodic. Nu recomandăm dezactivarea verificării periodice decât în cazul sistemelor jurnalizate, cum ar fi ext3 sau reiserf s. -C - număr_de jnontăriImpune numărul de montări ale sistemului de fişiere. Poate fi utilizat împreună cu -c pentru a determina fsck să verifice sistemul la următoarea pornire. -e - mod_de_tratare_a_erorilor

Modifică comportamentul nucleului atunci când apar erori. Poate lua una dintre următoarele valori:

continue continuă execuţia în mod normalremount-ro montează din nou sistemul în mod read-only (fără

posibilitate de scriere)panic generează starea panic.

-i - intervalJntre_yerificăriModifică intervalul maxim de timp care se poate scurge între două verificări ale sistemului de fişiere. Cu sufixul d (sau fără sufix) este exprimat în zile, cu m - în luni, iar cu y - în ani. Valoarea o dezactivează verificarea în funcţie de timp.

Page 50: Administrarea Sistemelor Linux

.

Configurări de bază ale sistemului

Recomandăm să fie activate cel puţin una dintre cele două tipuri de verificare (număr de montări sau timp scurs), pentru ca sistemul de fişiere să fie verificat în mod periodic.

-JActivează j urnalizarea pentru un sistem

exta. -/Modifică parametrii impliciţi de jurnalizare pentru un sistem ext3.Opţiunile sunt separate prin virgulă şi pot avea un argument specificatprin semnul de egalitate. Opţiunile pot

fi: size - mărime JurnalStabileşte mărimea jurnalului, în megabytes. Aceasta trebuie să aibă minim 1.024 şi maxim 102.400 de blocuri. Pe sistemul de fişiere trebuie să existe destul spaţiu liber pentru jurnal. device = jurnal _externUtilizează o altă partiţie pentru jurnalizare. Jurnalul extern trebuie să aibă aceeaşi lungime a blocului ca şi sistemul de fişiere şi trebuie creat în prealabil cu comanda:

| # mke2fs -O journal_dev jurnal_extern

-l

Listează conţinutul câmpurilor din superbloc. -L

Stabileşte eticheta de volum a sistemului de fişiere. Aceasta poate conţinemaxim 16

caractere. -mModifică procentul de blocuri rezervate. Aceste blocuri rezervate nu potfi ocupate cu date decât de către utilizatorul

root. -rModifică numărul de blocuri rezervate. Vezi comentariile de la opţiunea -m.

De exemplu, comanda:

| tune2fs -c 20 -i O /dev/sdal

stabileşte că sistemul de fişiere de pe partiţia /dev/sdal va fi verificat la fiecare 20 de montări, indiferent de durata de timp scursă între două montări.

Page 51: Administrarea Sistemelor Linux

2. Setarea timpuluiConfigurarea timpului se face cu ajutorul programului dateconf ig (sau timetool pe sistemele mai vechi). Acesta se poate lansa din mediul grafic în Programs :: System :: Date/Time Properties. Cu această unealtă pot fi modificate data şi timpul sistemului, zona de timp în care se află sistemul, şi configura daemonul Network Time Protocol (NTP) pentru sincronizarea timpului sistemului cu cel al unui server de timp.

Page 52: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 53

Page 53: Administrarea Sistemelor Linux

Figura 2.2. Setarea zonei de timp

De asemenea, pentru configurarea zonei de timp în mod terminal poate fi folosit utilitarul timeconfig sau date şi hwciock, la linia de comandă.

Fişierul de configurare a zonei de timp este /etc/sysconfig/ciock. Prezentăm mai jos un fişier exemplu:

20NE="Europe/Bucharest" UTC=false|

Menţionăm că pentru a utiliza NTP, pachetul ntpd trebuie să fie instalat 5. daemonul să fie configurat pentru a porni automat la bootare. Pentru mai multe informaţii despre NTP, îndrumăm cititorul interesat să consulte documentaţiadisponibilă în directorul /usr/share/doc/ntp-număr-versiune.

Page 54: Administrarea Sistemelor Linux

3. Pornirea şi oprirea sistemului

Imediat după punerea sub tensiune, BIOS-ul testează sistemul, caută şi iniţializează echipamentele periferice, iar apoi caută discul de pe care va porni sistemul. BIOS-ul verifică sectorul de boot, MBR (Maşter Boot Record), îi încarcă conţi-nutul în memorie şi îi predă controlul. MBR-ul citeşte mai departe încărcătorul de boot (LILO sau GRUB) şi îl execută.

încărcătorul de boot citeşte imaginea nucleului şi îi cedează controlul. Nucleul identifică echipamentele cunoscute din sistem, apoi caută programul init în directorul /sbin şi îl execută, nu înainte de a monta sistemul de fişiere-rădăcină în mod read-only.

Procesul init devine părintele tuturor proceselor care vor fi pornite ulterior. De asemenea, el continuă operaţiunea de pornire, după cum urmează:

1. Execută scriptul /etc/rc.d/rc.sysinit, care:- verifică integritatea sistemului de fişiere-rădăcină apelând fsck. De

asemenea, este verificată şi integritatea celorlalte sisteme de fişierespecificate în /etc/fstab;

- montează sistemele de fişiere locale (aflate pe discurile din sistem);- iniţializează memoria virtuală;- iniţializează ceasul sistemului;- execută re.serial pentru a iniţializa porturile seriale speciale, dacă

este cazul.2. Citeşte configurările din fişierul /etc/inittab, care descrie fiecare nivel de

execuţie şi stabileşte nivelul implicit. De asemenea, execută scripturile dinnivelul implicit de execuţie, /etc/rc.d/rc w, unde N este nivelul deexecuţie.

3. Execută scriptul /etc/rc.d/rc. local, care efectuează iniţializări locale.

Standardul System V defineşte o serie de stări ale sistemului, denumite niveluri de execuţie (run levels). La un moment dat, sistemul se găseşte în una din aceste stări şi poate fi trecut într-o altă stare utilizând anumite comenzi administrative. Următorul tabel prezintă nivelurile de execuţie uzuale:

Page 55: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 55

Tabelul 3.1. Nivelurile de execuţie System V

Nivelul Descrierede execuţie_____________________________________

O Starea de oprire (half): starea în care sistemul poate fi oprit în

1 Starea de reparare a sistemului (single-user): în această starenu este montată decât partiţia rădăcină, reţeaua nu este activatăiar serviciile nu sunt pornite. Se utilizează atunci când apar

_____ defecţiuni în sistem, dej3xempjj£defecţiunea unei partiţii.2 Starea normală a sistemului, fără NFS (mult-user without

NFS).Starea normală a sistemului (multiuser).Neutilizată.

______5_______Starea normală a sistemului, cu login X Window. _ ______ _______6_______Starea de repornire (reboof). ____________________________

De asemenea, System V defineşte câteva niveluri de execuţie adiţionale, desemnate prin litere ale alfabetului. Acestea nu reprezintă stări distincte ale sistemului, ci folosesc pentru a comunica programului init să execute anumite operaţiuni. De exemplu, nivelul q comunică init să recitească fişierul de configurare. Pentru detalii, vezi secţiunea 3.3.

3.1. Utilizarea modului single

Nivelul de execuţie single se foloseşte pentru activităţi administrative. Pentru a iniţializa nivelul single-user, init execută interpretorul de comenzi, sub utilizatorul root. In acest mod, serviciile normale ale sistemului nu sunt disponibile, nefiind posibilă execuţia daemonilor sau altor programe în fundal.

Sistemul poate fi pornit în mod single furnizând nucleului Linux opţiunea single, apelând, de exemplu, la promptul LILO, comanda:

| LILO: linux single

Este posibil ca sistemul să pornească automat în mod single, atunci când în cadrul procesului de pornire apar probleme care nu pot fi rezolvate automat, spre exemplu atunci cândfsck detectează erori ce nu pot fi reparate în mod implicit, în aceste cazuri, administratorul sistemului trebuie să rezolve problema. O dată rezolvată, pornirea poate continua terminând execuţia shell-ului de comenzi, apelând comanda exit sau logout.

Page 56: Administrarea Sistemelor Linux

56 Administrarea şi configurarea sistemelor Linux

3.2. Fişierele de iniţializare System V

F i ş i e r u l / e t c / i n i t t a b

După cum am văzut mai devreme, fişierul de configurare al programului init este /etc/inittab. Acest fişier conţine intrări care definesc acţiunile sistemului atunci când acesta intră în fiecare nivel de execuţie. Intrările au următorul format:

| etichetă : listă_stări : acţiune : proces

unde:- etichetă este o etichetă unică ce identifică fiecare intrare. Lungimea

maximă a acesteia este de 4 caractere;- listă_stâri este lista nivelurilor la care se aplica intrarea. Daca este vida,

intrarea se aplică la toate nivelurile de execuţie;- acţiune indică modul în care init tratează procesul executat de intrare.

Atunci când sistemul intră într-un nou nivel de execuţie, initprelucrează toate intrările specificate pentru respectivul nivel, înordinea apariţiei în fişierul de configurare. Cele mai importante tipuride acţiuni sunt următoarele:

• wait: porneşte procesul şi aşteaptă să se încheie înainte de atrece la următoarea intrare;

• respawn: porneşte procesul şi îl reporneşte dacă acesta seîncheie (utilizată în general pentru procesele de tip getty, carecontrolează terminalele conectate la sistem);

• once: porneşte procesul doar dacă acesta nu rulează deja. Nuaşteaptă încheierea lui;

• boof. execută intrarea doar la pornire. Porneşte procesul, dar nuaşteaptă încheierea lui;

• bootwait: execută intrarea doar la pornire. Porneşte procesul şiaşteaptă încheierea lui;

» initdefault: stabileşte nivelul de execuţie implicit, în mod normal are valoarea 3;

• off. dacă procesul rulează, îl opreşte;• ondemand: un proces marcat cu un nivel de tip ondemand va fi

executat atunci când respectivul nivel este apelat. Nivelurile detip ondemand pot fi a, b sau c. Nu va avea loc totuşi nici oschimbare de nivel de execuţie;

• powerwait: procesul va fi executat atunci când tensiunea dealimentare s-a întrerupt; init este informat de obicei despre acesteveniment atunci când un proces comunică cu o sursă

Page 57: Administrarea Sistemelor Linux

________________________Configurări de bază ale sistemului _________________________57_

neîntreruptibilă (UPS) conectată la calculator; init va aştepta ca procesul să se încheie înainte de a continua;

• powerfail: la fel ca powerwait, dar nu aşteaptă încheiereaprocesului;

• powerokwait: procesul va fi executat atunci când init esteinformat că tensiunea de alimentare a fost restabilită;

• powerfailnow. procesul va fi executat atunci când bateriaUPS-ului este aproape descărcată şi tensiunea de alimentare vafi oprită definitiv în cel mai scurt timp;

• ctrlaltdel: procesul va fi executat când init primeşte semnalulSIGINT (de obicei atunci când la consolă s-a apăsatCtrl+Alt+Del);

- proces reprezintă programul care va fi executat.

Pot fi utilizate şi comentarii, care încep cu caracterul #, ca de altfel în majoritatea fişierelor de configurare ale sistemului UNIX.

Iată un fişier /etc/inittab implicit de pe un sistem Red Hat:

## Acest fişier descrie modul în care procesul init setează# sistemul# în fiecare nivel de execuţie

# Nivelul implicit de execuţie. Nivelurile utilizate de Linux# sunt:# O - oprire (a nu se seta initdefault pe această valoare!)# l - mod single user# 2 - multi-utilizator, fără NFS# 3 - multi-utilizator# 4 - nefolosit# 5 - XII# 6 - repornire (a nu se seta initdefault pe această valoare)#id: 3:initdefault:

# Iniţializarea sistemuluisi::sysinit:/etc/rc.d/rc.sysinit10:0:wait:/etc/rc.d/rc Oll:l:wait:/etc/rc.d/rc l12:2:wait:/etc/rc.d/rc 213:3:wait:/etc/rc.d/rc 314:4:wait:/etc/rc.d/rc 4 15:5:wait:/etc/rc.d/rc 5 16:6:wait:/etc/rc.d/rc 6

# Procesele executate în fiecare nivel de execuţieud::once:/sbin/update

Page 58: Administrarea Sistemelor Linux

58 Administrarea şi configurarea sistemelor Linux

tt Capturează CTRL-ALT-DELca: :ctrlaltdel:/sbin/shutdown -t3 -r now

# Când sursa neîntreruptibilă ne transmite că s-a oprit tensiunea# de alimentare, presupunem că mai avem la dispoziţie doar câteva# minute. Programează oprirea sistemului peste 2 minute.pf::powerfaii:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# Dacă tensiunea de alimentare a fost restabilită înainte de# oprire, anulează operaţiunea de oprirepr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"

# Execută getty în nivelurile de execuţie standard1:2345:respawn:/sbin/mingetty ttyl2:234 5:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345: respawn:/sbin/mingetty 11y5 6:2345:respawn:/sbin/mingetty tty6

# Execută xdm in nivelul 5x:5:respawn:/etc/Xll/prefdm -nodaemon

Fişierele de iniţializare re

Atunci când nivelul de execuţie se schimbă, init apelează scriptul /etc/rc.d/rc. Acesta execută toate scripturile aflate în directorul /etc/rc.d/rcn.d, unde n este numărul nivelului.

Conţinutul unui director /etc/rc.d/rc3. d este redat mai jos:

# îs -C /etc/rc.d/rc3.dK12mysqld S12syslog SSOxinetd SSOsendmail SQOcrondK74ntpd S13portmap S56rawdevices S85gpm S90xfsK95kudzu S20random S60lpd S85httpd S99localSlOnetwork S25netfs S75keytable S85postgresql

După cum se observă, toate numele de fişiere încep cu un caracter iniţial (S de la Start sau K de la Kilf), urmate de un număr format din două cifre, sfârşindu-se cu denumirea serviciului. Sunt executate mai întâi scripturile începând cu K, urmate de scripturile S, în ordine alfabetică. Astfel, în directorul exemplu, scripturile vor fiexecutate ÎI1 Ordinea: K12mysqld, K74ntpd, K95kudzu, SlOnetwork Ş.a.m.d.Scripturile începând cu K sunt utilizate în general pentru a încheia procese, iar scripturile începând cu S sunt utilizate pentru a porni procese.

Scripturile din directoarele re?.d sunt de obicei legături Ia scripturile aflate în directorul /etc/rc.d/init.d. Spre exemplu, fişierul ssotcp din directorul rc3.d

Page 59: Administrarea Sistemelor Linux

Configurări de baza ale sistemului

este o legătură la fişierul /init.d/tcp. Atunci când un script K este executat, acesta primeşte parametrul stop, iar scriptul S primeşte parametrul start.

3.3. Schimbarea nivelului de execuţie

Schimbarea nivelului de execuţie se poate realiza apelând telinit, furnizând ca parametru nivelul de execuţie dorit. Spre exemplu, comanda telinit 6 va determina sistemul de repornească. Practic, /sbin/teiinit este o legătură simbolică către /sbin/init. Programul telinit primeşte ca parametru un caracter şi apelează init pentru a executa acţiunea dorită. Parametrul poate lua una dintre următoarele valori:

- O, l, 2,3, 4, 5, 6: schimbă nivelul de execuţie- a, b, c: procesează intrările de pe aceste niveluri- q, Q: reciteşte /etc/inittab- s, S: trece în mod single-user- u, U: reexecută init

3.4. Oprirea sistemului

Oprirea sistemului poate fi necesară în cazul operaţiunilor de întreţinere periodică (cum ar fi curăţarea ventilatoarelor), schimbărilor sau adăugirilor de echipamente hardware, sau altor operaţiuni administrative.

Pentru închiderea sistemului se utilizează comanda shutdown, care efectuează următoarele operaţiuni:

-atenţionează utilizatorii că sistemul urmează să fie oprit după un anumittimp;

-sunt blocate intrările utilizatorilor în sistem;-trece sistemul în nivelul de execuţie O, dacă sistemul va fi oprit, sau 6, dacă

sistemul va fi repornit;-este trimis semnalul SIGTERM tuturor proceselor din sistem, oferindu-se

timp pentru a-şi încheia corect execuţia;-este trimis semnalul SIGKILL proceselor care nu s-au încheiat;-toţi utilizatorii din sistem sunt scoşi din sistem;-sunt demontate toate sistemele de fişiere montate;-maşina este oprită sau repornită.

Page 60: Administrarea Sistemelor Linux

60____________________Administrarea şi configurarea sistemelor Linux ______________________

Programul shutdown are următoarea sintaxă:

| shutdown [ -t sec ] [ opţiuni ] timp [ mesaj ]

unde opţiuni pot fi:

-t sec aşteaptă sec secunde între trimiterea către procese a semnaluluiSIGTERMşi a semnalului SIGKILL; -k nu realizează oprirea

sistemului, ci doar trimite mesajul de atenţionaretuturor utilizatorilor; -r reporneşte maşina; -h opreşte maşina; -/

nu efectuează fsck după repornire (pentru a grăbi procedura de pornire).în acest scop va fi creat fişierul /fastboot; -F forţează apelarea fsck

după repornire. în acest scop va fi creat fişierul/forcefsck; -c anulează un

apel shutdown în curs;

timp reprezintă timpul la care va fi începută procedura de oprire. Poate fi ori în formatul hh:mm (momentul absolut în ore, respectiv minute la care va fi oprit sistemul), ori în formatul +m, unde m este numărul de minute după care va fi oprit sistemul. Cuvântul-cheie now este sinonim cu +0. Dacă oprirea nu se face imediat, va fi creat fişierul /etc/nologin, care va determina programul login să nu mai permită intrarea utilizatorilor pe maşină;

mesaj reprezintă mesajul de atenţionare ce va fi trimis utilizatorilor.

Spre exemplu, comanda shutdown +10 -h „Maşina va fi oprită peste 10 minute pentru adăugarea unui hard-disk" programează O oprire a sistemului după 10 minute, trimiţând un mesaj explicativ utilizatorilor intraţi pe maşină în acest moment.

Oprirea sistemului se poate face şi cu ajutorul comenzilor halt şi powerqff, aceasta din urmă trimiţând după oprire comanda de închidere a calculatorului.

Repornirea sistemului se poate face prin comanda reboot sau apăsând la consolă combinaţia ctri+Alt+Dei.

Page 61: Administrarea Sistemelor Linux

.

4. Intrarea şi ieşirea din sistem

Pentru a fi permis accesul la sistem, utilizatorul trebuie să furnizeze numele său şi parola. Intrarea la consolă va fi de felul:

Red Hat Linux release 7 . 2 (Enigma) Kernel 2 . 4 . 18 on an :. 686

zeus login: root Passwcfrd:

După introducerea parolei (care nu va fi afişată pe ecran), va fi pornită execuţia interpretorului de comenzi (vezi infrd).

Ieşirea din sistem se face cu comanda exit sau logout. Poate fi folosită şi combinaţia de taste ctri+D, care generează în Linux codul pentru sfârşit de fişier.

4.1. Interpretorul de comenzi

Un interpretor de comenzi sau shell reprezintă o interfaţă între utilizator şi un set de comenzi şi programe, constituind un macroprocesor capabil să execute comenzi. Shell-u\ poate fi considerat şi implementarea unui limbaj de programare complex, de nivel înalt.

Interpretorul de comenzi cel mai utilizat în Linux, de altfel şi implicit, este bash (Bourne-Again Shell, după Steve Bourne, autorul interpretorului sh pentru UNIX).

Interpretorul de comenzi este apelat de cele mai multe ori interactiv, în sensul că va dialoga cu utilizatorul, interpretând şi executând comenzile introduse de acesta. Comenzile sunt fie interne (builtin, adică sunt implementate în cadrul îte//-ului), fie externe (acestea se găsesc pe disc, ca fişiere executabile). Pentru a se indica utilizatorului că shell-u\ este gata să execute următoarea comandă, se va afişa un prompt. Prompt-u\ diferă de la o versiune de sistem la alta sau de Ia un utilizator la altul, putând fi configurat după dorinţă.

Programele realizate în limbajul oferit de shell se numesc scripturi. Acestea nu sunt executate în mod interactiv.

în cele ce urmează vom prezenta o serie de caracteristici importante ale shell-u\ui bash.

Page 62: Administrarea Sistemelor Linux

62 Administrarea şi configurarea sistemelor Linux

Specificatori

Shell-u\ bash permite utilizarea specificatorilor de fişiere. Astfel, la specificarea numelui unui fişier pot fi utilizate următoarele meta-expresii (wildcards) pentru a înlocui o parte din numele acestuia:

- expresia „?" înlocuieşte un singur caracter;- expresia „*" înlocuieşte unul sau mai multe caractere;- expresia [ expresie ] defineşte un interval.

Spre exemplu, specificatorul de fişier oferta [1-65] * va desemna nume de fişiere care încep cu oferta, urmat de un număr aflat în intervalul 1-65, putând fiind succedat de oricare alte caractere.

între delimitatorii „[" şi „]" poate fi utilizat şi meta-caracterul „i", cu semnificaţia operaţiunii logice SAU, precum şi „l", reprezentând operaţiunea de negaţie. Spre exemplu, specificatorul doc[!a]* specifică numele de fişiere care încep cu doc, urmat de orice caracter diferit de „i", apoi de alte caractere.

Redirecţionarea intrărilor şi ieşirilor

In sistemul de operare UNIX există trei dispozitive logice de intrare/ieşire:- intrarea standard (stdiri), de la care se citesc datele de intrare;- ieşirea standard (stdoui), unde se afişează datele de ieşire;- ieşirea de eroare standard (stderr}, unde se afişează mesajele de eroare.

Implicit, intrarea standard are asociată tastatura, iar ieşirea şi ieşirea de eroare standard au asociate terminalul curent. Există posibilitatea redirecţionării acestor dispozitive, după cum urmează:

- redirecţionarea intrării se realizează prin intermediul operatorului deredirecţionare „<";

- redirecţionarea ieşirii se poate face cu ajutorul operatorului „>". De exemplu,comanda îs -la > lista va trimite ieşirea comenzii către fişierul lista.Poate fi utilizat şi operatorul „»", care, spre deosebire de operatorul „>", nusuprascrie fişierul spre care se face redirecţionarea, ci adaugă ieşirea lasfârşitul acestuia (bineînţeles, în cazul în care fişierul există);

- redirecţionarea ieşirii de eroare se realizează prin „2>", cifra 2 reprezentândnumărul descriptorului de fişier corespunzător ieşirii standard.

Comenzi

Sintaxa pentru execuţia comenzilor, fie ele interne sau externe, este:

| comandă [ opţiuni ] [ parametri ]

Page 63: Administrarea Sistemelor Linux

________________________Configurări de baza ale sistemului ________________________63_

Separatorii pentru comandă, opţiuni şi parametri sunt spaţiu sau tab. Caracterul „\" la sfârşitul liniei semnifică faptul că aceasta continuă pe linia următoare. Pot fi introduse mai multe comenzi într-o singură linie de comandă, separate prin caracterul „;".

O comandă poate fi executată în fundal (background) dacă la apelarea sa se adaugă caracterul „&".

Mecanismul pipe

Acest mecanism constă în înlănţuirea comenzilor, adică prima comandă trimite ieşirea standard către intrarea standard a celei de-a doua comenzi ş.a.m.d. Sintaxa acestui mecanism este următoarea:

| comandai l comanda2 .. .

De exemplu, comanda ps aux | wc -l va afişa numărul de procese care rulează pe maşină (ieşirea comenzii ps aux, adică lista de procese, este trimisă ca intrare comenzii wc -l, care contorizează numărul de linii dintr-un text).

Variabile de sistem

în bash, variabilele sunt de tip şir de caractere, ele fiind create la momentul definirii lor. Stabilirea valorii acestora se face prin comanda set variabiiă=vaioare. Eliminarea din memorie a unei variabile se face cu ajutorul comenzii unset variabilă.

în mod normal, variabilele definite nu sunt vizibile şi în procesele-copil ale shell-u\m curent. Pentru ca o variabilă să fie vizibilă şi în cadrul acestor procese, aceasta trebuie exportată cu ajutorul comenzii export variabilă [ =vaioare ].

La variabile se face referire prin prefixarea caracterului „$" la numele acestora (e.g. $HOME).

Există o serie de variabile predefinite, cele mai importante fiind următoarele:

HOME calea absolută a directorului home al utilizatorului curent (e.g./home/dragos). Pentru a substitui acest director poate fi folosit

şi caracterul „~"USER numele utilizatorului curentHOSTNAME numele maşiniiHOSTTYPE arhitectura maşinii (e.g. 1386)OSTYPE tipul sistemului de operare (Linux)MACHTYPE tipul sistemului în formatulprocesor-producător-so (e.g. 1386-

redhat-linux-gnu)

MAIL numele fişierului în care sunt stocate mesajele e-mail primite

Page 64: Administrarea Sistemelor Linux

64_____________________Administrarea şi configurarea sistemelor Linux _______________________

MAILCHECK intervalul de timp la care shell-u\ verifică dacă s-au primit noimesaje e-mail, exprimat în secunde

PS1 promptul principal al shell-u\u\PS2 promptul secundar al shell-\i\m (apare atunci când o comandă

este scrisă pe mai multe rânduri)TERM tipul terminalului (e.g. linux, vtioo etc.)PA TH lista de directoare pentru căutarea fişierelor executabilePWD directorul curentUID ID-ul utilizatorului curentEUID ID-ul efectiv al utilizatorului curent

Comenzi utile

help [ comandă ]Afişează informaţii despre comanda specificată. Dacă aceasta nu este menţionată, va fi afişată lista tuturor comenzilor interne ale bash-ulul.

mân [ secţiune ] comandăAfişează pagina de manual cu informaţii despre comanda specificată (sintaxa, descriere, explicarea opţiunilor suportate, semnificaţia para-metrilor, comenzi înrudite etc.). Parametrul comandă poate fi o comandă, un nume de apel de sistem, o funcţie de bibliotecă C/C++ sau numele unui fişier de configurare. Manualele sunt organizate pe secţiuni, astfel:

1 - programe2 - funcţii sistem3 - funcţii de bibliotecă4 - funcţii ale nucleului Linux5 - fişiere de configurare6 - diverse programe7 - protocoale şi standarde8 - programe sisteml - sistemul PostgreSQLn - sistemul Tcl/Tk.

whatis comandăAfişează informaţii pe scurt despre funcţionalitatea comenzii specificate, precum şi secţiunile de manual de unde pot fi obţinute informaţii detaliate.

îs [ opţiuni ] [ director }Afişează conţinutul unui director. Câteva dintre comenzile mai importante sunt:

-a afişează şi fişierele „ascunse" (care încep cu „.")-/ afişează informaţii extinse, cum ar fi proprietarul fişierelor,

drepturile de acces, dimensiunea etc.-df afişează informaţii despre spaţiul ocupat şi cel liber al

partiţiilor montate.

Page 65: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 65

file fişierDetermină şi afişează tipul fişierului specificat. cp

sursă destinaţieCopiază fişierul-sursă în destinaţie.

mv original nouRedenumeşte original în nou.

In sursă legătură_simbolicăCreează o legătură simbolică Ia fişierul-sursă.

rm fişierŞterge fişierul specificat.

Aceste patru comenzi de lucru cu fişierele acceptă mai multe opţiuni, dintre carecele mai importante sunt:

-f forţează îndeplinirea acţiunii, fără confirmare din partea utiliza-torului;-R execută comanda recursiv, adică asupra tuturor directoarelor şi subdirectoarelor componente.

cat listă_fişiereAfişează conţinutul fişierelor specificate.

more fişierAfişează paginat conţinutul fişierului specificat.

less fişierAfişează paginat conţinutul fişierului specificat, permiţând navigarea în ambele sensuri.

Programe utile

Pentru editarea de texte se poate folosi unul dintre editoarele vi, emacs, joe, ed etc. Pentru gestionarea fişierelor, directoarelor etc. se poate folosi utilitarul mc.

Mai multe informaţii despre utilizarea bosh pot fi obţinute apelând comanda help sau prin comanda mân bash. Pentru învăţarea programării în bash, recomandăm consultarea lucrării Sabin Buraga, Victor Tarhon-Onu, Ştefan Tanasă, Programare Web în bash şi Perl, Polirom, Iaşi, 2002.

4.2. Accesul privilegiat al utilizatorilor în sistem

După cum am văzut, la fiecare intrare în sistem utilizatorii trebuie să introducă parola. Acest fapt poate fi incomod atunci când se copiază fişiere, de exemplu cu scp. Există două modalităţi de acordare a accesului privilegiat al unui utilizator la maşină, fără a mai introduce parola: acces la nivel de maşină sau acces la nivel de utilizator.

Page 66: Administrarea Sistemelor Linux

66_____________________Administrarea şi configurarea sistemelor Linux _______________________

Acces privilegiat la nivel de maşină

în fişierul /etc/hosts. equiv se poate specifica o listă de maşini (câte o maşină pe linie) cărora să le fie acordată încredere. Atunci când un utilizator încearcă să intre pe maşină, va fi verificat mai întâi acest fişier. Dacă maşina de pe care utilizatorul efectuează cererea de acces se găseşte în listă şi numele utilizatorului este acelaşi ca şi pe cealaltă maşină, accesul este permis fără solicitarea parolei. De. menţionat că accesul utilizatorului root în acest mod nu este permis.

Nu este indicată utilizarea acestui mod de acces privilegiat. De asemenea, acest fişier nu trebuie să conţină în nici un caz o linie conţinând doar caracterul „+", acesta acordând accesul privilegiat oricărui calculator.

Acces privilegiat la nivel de utilizator

Acest tip de acces privilegiat utilizează fişierul .rhosts, localizat în directorul nome al utilizatorului care doreşte acordarea accesului. Acest fişier are formatul:

• v

| nume_maşină [ utilizator ]

O linie specifică faptul că utilizator are dreptul să intre în sistem de pe maşina specificată. Dacă utilizator nu este prezent, se va permite accesul doar utilizatorului cu acelaşi nume cu cel de pe maşina-gazdă.

De exemplu, fişierul următor . rhosts, plasat în directorul home al utilizatorului sabin, va permite accesarea acestuia de către utilizatorul dragos de pe maşinile Hercules şi test:

hercules dragostest dragosI

Accesul privilegiat nu trebuie utilizat niciodată pentru root, pentru care trebuie întotdeauna solicitată o parolă, în directorul utilizatorului root nu trebuie să existe fişierul .rhosts! Nu este indicată nici utilizarea acestui mod de acces privilegiat, fiindcă expune sistemul la riscuri suplimentare.

Accesul utilizatorului root în sistem

Accesul utilizatorului root în sistem este permis numai de pe consolele specificate în fişierul /etc/securetty. Nu este recomandată permiterea accesului cu root decât de pe consolele sistemului (tty*). Accesul de la distanţă (cu telnet sau ssh) poate fi făcut cu un utilizator obişnuit, iar apoi utilizată comanda su pentru a deveni root:

| su [ nume utilizator ] [ opţiuni ]

Page 67: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 67

unde opţiuni pot fi:- rulează ca shell de login- c comandă - execută comandă

Dacă nume_utiiizator nu este specificat, este considerat root.

Accesul de la distanţă este recomandat să fie făcut prin intermediul serviciului ssh. Acesta criptează datele trimise prin reţea, spre deosebire de serviciul clasic telnet.

Dacă este prezent fişierul /etc/noiogin, programul login nu va permite accesul utilizatorilor în sistem.

Page 68: Administrarea Sistemelor Linux

5. Configurarea serviciilor sistemului

Se recomandă ca maşina să nu ruleze decât serviciile utilizate curent, în primul rând pentru a creşte securitatea sistemului, iar în al doilea rând pentru a nu creşte inutil nivelul de încărcare a maşinii (spaţiu de memorie şi timp procesor).

Există trei programe cu ajutorul cărora pot fi activate/dezactivate serviciile pe care le oferă sistemul:

- serviceconf - un mediu grafic care permite configurarea nivelurilor deexecuţie pe care să ruleze fiecare serviciu; permite şi pornirea/oprireaanumitor servicii. Poate fi apelat şi din meniul System :: ServiceConfiguration în Red Hat, respectiv Configuration :: Boot and Init :: SysV-Init Editor în Mandrake;

- ntsysv - un program în mod text care permite configurarea doar a nivelurilorde execuţie pe care să ruleze fiecare serviciu;

- chkconfig - un utilitar la linia de comandă cu aceleaşi facilităţi ca ntsysv.

Figura 5.1. Programul serviceconf

Page 69: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 69

5.1. Folosirea utilitarului chkconfig

Comanda chkconfig --list listează toate serviciile existente în sistem şi starea acestora (dacă sunt activate sau nu).

Sintaxa comenzii chkconfig este următoarea:

chkconfig [ —list ] [ —add ] [ —del ] [ —level listă_niveluri ] nume_serviciu [ acţiune ]I

unde:listăjiiveluri reprezintă lista de niveluri de execuţie în care se doreşte

activarea/dezactivarea serviciului;acţiune poate fi On sau Off, pentru activarea/dezactivarea serviciului.

Opţiunile pot fi:-list afişează toate serviciile înregistrate, precum şi setările pentru

fiecare nivel de execuţie în parte. Dacă nume_serviciu este specificat, sunt afişate doar informaţii referitoare la serviciul specificat;

--add adaugă serviciul specificat în lista de servicii înregistrate;-del şterge serviciul specificat din lista de servicii înregistrate.

De exemplu, comanda chkconfig --level 345 postgresqi on setează serviciulpostgresql să pornească atunci când nivelul de execuţie devine 3, 4 sau 5. Comanda chkconfig postgresql of f dezactivează pornirea serviciului.

5.2. Pornirea, repornirea şi oprirea serviciilor

Operaţh'le de pornire, repornire, oprire sau verificare a unui serviciu pot fi realizate apelând scriptul respectiv, şi anume /etc/rc.d/init.d/nu/ne_serviciu sau /etc/init.d/nuflîe_serviciu, trimiţând ca parametru:

- start - pentru a porni serviciul;- stop - pentru a opri serviciul;- restart - pentru a reporni serviciul;- status - pentru a verifica dacă serviciul este activ.

Spre exemplu, comanda:

|/etc/rc.d/init.d/syslog restart

va reporni serviciul syslog.

Page 70: Administrarea Sistemelor Linux

70 Administrarea şi configurarea sistemelor Linux

De asemenea, poate fi utilizată şi comanda:

| service nume_serviciu acţiune

unde acţiune poate lua una dintre valorile descrise mai sus.Astfel, comanda service postgresqi status va afişa starea serviciului

postgresql (dacă este sau nu activ).

5.3. Daemonulxinetd

Daemonul xinetd are rolul de a superviza activitatea altor servicii, oferind posibilitatea controlului accesului, jurnalizarea accesărilor şi controlul resurselor. O serie de servicii sunt gestionate de către xinetd: FTP, IMAP, POP, telnet etc. Daemonul xinetd gestionează cererile, verifică dacă programului-client i se permite accesul, după care porneşte respectivul serviciu.

Acest daemon se configurează prin intermediul fişierului /etc/xinetd.conf şi fişierelor proprii fiecărui serviciu, aflate în directorul /etc/xinetd.d. Aceste fişiere de configurare sunt în mod normal gestionate de către utilitarul chkconfig sau alte programe pentru gestiunea serviciilor sistemului. Un fişier de configurare pentru serviciul telnet este prezentat în continuare:

service telnet {

disable = noflags = REUSEsocket_type = streamwait = nouser = rootserver = /usr/sbin/in.telnetdlog_on_failure += USERID

}

Controlul accesului

Pentru controlul accesului sunt posibile următoarele opţiuni:

onlyjrom acceptă numai cererile de pe maşinile specificate. Acestea pot fi adrese IP, nume de maşină sau adrese de reţea;

no_access refuză cererile de pe maşinile specificate;accessjimes specifică intervalul de timp în care poate fi utilizat serviciul.

Intervalul de timp trebuie să aibă formatul hh: ss-hh: ss.

Page 71: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 71

Configurarea opţiunilor de reţea

bind acceptă conexiuni doar prin interfaţa de reţea având adresa IPspecificată;

redirect redirecţionează cererile către sistemul având adresa IP,respectiv portul specificate.

Mai multe informaţii privind xinetd, precum şi configurarea acestuia pot fi obţinute din pagina de manual mân xinetd, respectiv mân xinetd. conf.

Page 72: Administrarea Sistemelor Linux

6. Administrarea utilizatorilor sistemului

Administrarea utilizatorilor este una dintre activităţile defacto a administratorului de sistem UNIX/Linux.

Utilizatorii pot fi ori persoane reale, ori utilizatori logici. Aceştia din urmă sunt rezervaţi pentru anumite aplicaţii care efectuează activităţi specifice (cum ar fi utilizatorul apache utilizat de serverul httpd). Fiecare utilizator are asociat câte un identificator (User ID) şi un identificator de grup (Group ID), ambii luând valori numerice. Un grup poate conţine mai mulţi utilizatori. Aceşti doi identificatori sunt atribuiţi în momentul creării utilizatorului, însă pot fi modificaţi şi ulterior. Folosiţi împreună, UID şi GID determină drepturile de acces la fişiere şi la alte resurse ale fiecărui utilizator.

Fişierul care memorează informaţiile despre utilizatori este /etc/passwd, iar cele despre grupuri este /etc/group.

Crearea unui utilizator cuprinde următorii paşi:

• atribuie noului utilizator un nume, un identificator de utilizator, precum şi unidentificator de grup;

• creează o intrare nouă în fişierele /etc/passwd, /etc/group, eventual/etc/shadow şi /etc/gshadow;

• atribuie o parolă noului utilizator;• creează directorul home al utilizatorului, de regulă /home/nume;• copiază fişierele implicite aflate în /etc/skel în directorul home.

Cea mai importantă cerinţă pentru păstrarea securităţii sistemului este ca toţi utilizatorii să aibă parolă. Este obligatorie şi stabilirea unei parole iniţiale pentru utilizator, care, de preferinţă, va trebui să fie schimbată de către acesta la prima intrare în sistem.

A doua cerinţă importantă este utilizarea de parole cât mai sigure. La introducerea parolelor, sistemul va face o comparaţie cu baza de date de aşa-zise „cuvinte de dicţionar", adică cuvinte frecvent folosite, stocate în /usr/share/dict. Se recomandă ca următoarele elemente să nu fie folosite ca parole sau ca fragmente din parole:

• numele utilizatorului, numele membrilor familiei (inclusiv animaledomestice) sau nume din cercul apropiat de prieteni;

• numere semnificative pentru utilizator: cod numeric personal, numere detelefon, zi de naştere etc.;

Page 73: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 73

Page 74: Administrarea Sistemelor Linux

• elemente importante pentru utilizator: mâncarea preferată, filmul preferat etc.;• nume, numere sau alte elemente legate de compania la care lucrează

utilizatorul;• exemple publicate de parole.

Principiul fundamental pentru alegerea parolelor este ca parola să fie uşor de memorat, dar greu de ghicit. Se recomandă respectarea următoarelor reguli la stabilirea parolelor:

• folosirea unor caractere neuzuale, cum ar fi simboluri sau semne depunctuaţie;

• pot fi folosite cuvinte, dar intenţionat greşit scrise;• să se utilizeze majuscule în combinaţie cu minuscule;• pot fi combinate cuvinte sau fragmente de cuvinte (cum ar fi „mafaxsina",

prin combinarea cuvintelor „maşina" şi „fax").

6.1. Fişierul /etc/passwd

Fişierul /etc/passwd are următoare structură:

| nume : parolă : UID : GID : informaţii : director : shell

unde:

nume este numele utilizatorului;parolă reprezintă parola criptată a utilizatorului, dacă nu se foloseşte

sistemul shadow, sau caracterul „x", dacă este utilizat acest sistem. Dacă acest câmp este „*", nu este permisă intrarea utilizatorului în sistem. Dacă acest câmp este vid, nu va fi solicitată nici o parolă pentru autentificarea utilizatorului;

UID reprezintă identificatorul utilizatorului. Pentru securitate sporită,este bine ca valoarea acestuia să fie unică. In mod convenţional, identificatorii până la 100 sunt rezervaţi pentru utilizatorii logici descrişi mai sus;

GID este identificatorul grupului principal din care face parteutilizatorul, în mod convenţional, identificatorii până la 100 sunt rezervaţi pentru grupurile logice;

informaţii conţine în mod normal numele utilizatorului. Acest câmp este denumit şi câmpul GECOS. în acest câmp pot fi memorate şi informaţii suplimentare privind biroul în care lucrează

Page 75: Administrarea Sistemelor Linux

74 Administrarea şi configurarea sistemelor Linux

utilizatorul, numărul de telefon etc., aceste informaţii fiind separate prin virgulă;

shell este interpretorul de comenzi utilizat de utilizator. Interpretorulva fi lansat după intrarea utilizatorului în sistem. Este în general /bin/bash, dar poate fi şi /bin/csh etc.

O linie dintr-un fişier /etc/passwd poate arăta astfel: |

sabin:x:101:101:Sabin Buraga:/home/sabin:/bin/bash

Fişierul /etc/passwd trebuie să aibă ca proprietar root-u\ şi să nu poată fi scris decât de acesta (e.g. să aibă drepturile 644). Pentru detalii privind drepturile de acces asupra fişierelor, vezi secţiunea 6.4.

6.2. Fişierul /etc/group

Fişierul /etc/group are următoarea structură:

| nume : * : GID : lista_utilizatori

unde:

nume este numele grupului;GID este identificatorul de grup. în mod convenţional, identificatorii

până la 100 sunt rezervaţi pentru grupurile sistemului; listajutilizatori reprezintă lista de utilizatori care fac parte din acest grup, pe

lângă utilizatorii care aparţin grupului în virtutea definiţiei din/etc/passwd. Elementele liste trebuie să fie separate prin

virgulă.

O linie dintr-un fişier /etc/group poate arăta astfel:

| autori:*:200:dragos,sabin

Fişierul /etc/group trebuie să aibă ca proprietar root-u\ şi să nu poată fi scris decât de acesta (e.g. să aibă drepturile 644).

Administrarea utilizatorilor se poate face cu ajutorul aplicaţiei grafice redhat-config-users (din meniul System :: User Manager) în Red Hat, userdrake (meniul Configuration :: Other :: Userdrake) în Mandrake, fie cu ajutorul uneltelor tradiţionale (vezi infra), fie, de ce nu, manual, de către administratorii expe-rimentaţi.

Page 76: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 75

Page 77: Administrarea Sistemelor Linux

6.3. Unelte tradiţionale pentru administrarea utilizatorilor

Adăugarea de utilizatori: useradd numeŞtergerea de utilizatori: userdei numeModificarea informaţiilor despre utilizatori: usermod numeAdăugarea de grupuri: groupadd numeŞtergerea de grupuri: groupdel numeModificarea informaţiilor despre grupuri: groupmod numeAdăugarea de utilizatori la un grup:

gpasswd -a nume_utilizator nume_grup Modificarea parolei unui utilizator: passwd nume

6.4. Sistemul shadow

Sistemul shadow asigură o metodă sigură de memorare a parolelor. Parolele sunt memorate în fişierul /etc/shadow, care nu poate fi accesat de către utilizatori, având drepturile de acces 400.

Este recomandată activarea sistemului shadow şi eventual a algoritmului de criptare MD5, dacă se doreşte o siguranţă şi mai mare. Trecerea de la sistemului

Page 78: Administrarea Sistemelor Linux

76 Administrarea şi configurarea sistemelor Linux

clasic de memorare a parolelor la sistemul shadow se poate face cu ajutorul utilitarului pwconv.

Fişierul /etc/shadow este alcătuit din opt câmpuri, după cum urmează:nume este numele utilizatorului;parolă este parola criptată;ultima_modificare data ultimei modificări a parolei, exprimată în zile trecute de

la l ianuarie 1970;număr_minim_de_zile numărul de zile cât timp o parolă nu poate fi schimbată; număr_maxim_de_zile numărul de zile după care parola trebuie schimbată; număr_zile_de_atenţionare numărul de zile înainte de data la care va trebui caparola să fie schimbată, la care utilizatorul va primi o atenţionare; zile_inactive numărul de zile fără activitate (adică utilizatorul nu intră în sistem) trecute de la data expirării parolei după care utilizatorul va fi blocat; data_expirării data la care utilizatorul va fi blocat automat.

Modificarea acestor câmpuri se poate face tot cu comanda passwd, utilizând opţiunile:

-n nr_zile stabileşte numărul de zile cât timp parola nu poate fi schimbată-x nr_zile stabileşte numărul de zile după care parola trebuie schimbată-f forţează utilizatorul să-şi schimbe parola la următoarea intrare în sistem-S afişează valorile câmpurilor-a se utilizează împreună cu -S pentru a afişa informaţii pentru toţi

utilizatorii-/ blochează utilizatorul-« deblochează utilizatorul-d anulează parola. Nu este recomandat!

De exemplu, comanda passwd -x 60 dragos stabileşte că utilizatorul dragos trebuie să-şi schimbe parola o dată la 60 de zile.Comanda passwd -l sabin blochează intrarea utilizatorului sabin în sistem. Poate fi utilizată şi comanda chage, care permite şi modificarea celorlalte câmpuri shadow. Aceasta suportă următoarele opţiuni:

-d nr_zile forţează data ultimei modificări a parolei, exprimată în zile scurse dela l ianuarie 1970

-m nr_zile stabileşte numărul de zile cât timp parola nu poate fi schimbată -Mnr_zile stabileşte numărul de zile după care parola trebuie schimbată - W nr_zile numărul de zile înainte de data la care parola va trebui să fie

schimbată, la care utilizatorul va primi o atenţionare -Inr_zile numărul de zile fără activitate (adică utilizatorul nu intră în sistem)

trecute de la data expirării parolei, după care utilizatorul va fi blocat -E data data la care utilizatorul va fi blocat automat. Poate fi specificată fie

în formatul AAAA-LL-ZZ (an-lună-zi), fie ca număr de zile scurse dela l ianuarie 1970.

Page 79: Administrarea Sistemelor Linux

________________________Configurări de bază ale sistemului ___________________________11_

Ca şi passwd, comanda chage primeşte ca parametru obligatoriu numele utilizatorului.

Spre exemplu, comanda chage -M 90 -w 5 -i 2 dragos stabileşte că utilizatorul dragos este obligat să-şi modifice parola la fiecare 90 de zile, fiind atenţionat cu 5 zile înainte de acest termen. De asemenea, utilizatorul va fi blocat după 2 zile de inactivitate, după acest termen. Acesta va trebui să contacteze administratorul sistemului pentru a putea fi deblocat.

Comanda chage -E 2002-07-is sabin stabileşte că utilizatorul sabin va fi blocat necondiţionat la 15.07.2002.

Page 80: Administrarea Sistemelor Linux

7. Gestiunea resurselor sistemului

7.1. Gestiunea memoriei virtuale

Resursele de memorie au cel puţin la fel de mare efect asupra performanţei sistemului ca şi viteza procesorului. Pentru a se comporta performant, sistemul trebuie să aibă destulă memorie fizică pentru a rula nu doar procese mari consumatoare de memorie, ci şi operaţiunile uzuale. Pentru o corectă dimensionare a memoriei, trebuie luate în considerare atât eventualele procese mari consumatoare de memorie, cât şi mulţimea proceselor executate în mod normal.

Memoria virtuală este utilizată atunci când necesarul total de memorie depăşeşte dimensiunea memoriei fizice instalate în sistem, în mod uzual, pe sistemele UNIX/Linux este utilizată o partiţie separată numită, partiţie de swap, dar poate fi utilizat şi un fişier obişnuit. Utilizarea acestei memorii virtuale duce evident la degradarea performanţei sistemului.

Partiţia de swap trebuie să fie de cel puţin 32 MB şi cel mult 2 GB, valoarea ideală fiind aceea a memoriei RAM existente în sistem, pentru un sistem folosit ca staţie de lucru, şi dublul memoriei fizice pentru un server.

Crearea şi activarea partiţiei de swap

Crearea unei partiţii de swap se face utilizând comanda:

| mkswap nume_partiţie

După crearea partiţiei, aceasta trebuie activată cu comanda:

| swapon nume_partiţie

Spre exemplu, comanda mkwap /dev/sda2; swapon /dev/sda2 V3 pregătipartiţia /dev/sda2 pentru utilizare ca memorie virtuală. Dimensiunea memoriei virtuale va fi determinată de dimensiunea partiţiei /dev/sda2.

Verificarea resurselor de memorie

Verificarea resurselor de memorie utilizate de către sistem se poate face prin comanda f ree, care afişează cantitatea de memorie fizică şi virtuală din sistem, precum şi cantitatea utilizată curent:

Page 81: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 79

Page 82: Administrarea Sistemelor Linux

total used free

Mem: 255652 247744 7908-/+ buffers/cache:114588 141064Swap: 136544 60828 75716

shared buffers cached O 840 132316

Page 83: Administrarea Sistemelor Linux

Verificarea resurselor IPC (zone de memorie comună, semafoare, cozi de mesaje) alocate în sistem se face cu ajutorul comenzii ipcs:

— .. - aaarea memory aegmeiiLS ---- • - key shmid owner perms bytes nattch status Ox0052e2ca 0 postgres 700 144 55 Ox0052e2cl 32769 postgres 600 12470272 55 Ox0052e2c7 65538 postgres 600 67596 55 0x00000000 98307 root 600 1056768 6 deşt 0x00000000 2457604 root 600 33554432 6 deşt 0x00000000 196613 apache 600 46084 6 deşt

phore Ar key semid owner perms nsems status

Ox0052e2ce 0 postgres 600 16 Ox0052e2cf 32769 postgres 600 16 Ox0052e2dO 65538 postgres 600 16 Ox0052e2dl 98307 postgres 600 16 Ox0052e2d2 131076 postgres 600 16 Ox0052e2d3 163845 postgres 600 16 Ox0052e2d4 196614 postgres 600 16 Ox0052e2d5 229383 postgres 600 16

--------- Message Queues - - - -key msqid owner perms used-bytes messages

Eliberarea unei resurse IPC (Inter-Process Communicatiori) se poate face cu ajutorul comenzii ipcrm:

| ipcrm [ shm | msg | sem ] id

Spre exemplu, pentru situaţia listată mai sus, comanda ipcrm shm 196613 va elimina zona de memorie comună cu numărul de identificare 196613.

7.2. Gestiunea proceselor

Una dintre metodele de comunicare clasice UNIX cu procesele care rulează pe maşină o constituie semnalele. Un semnal este o valoarea numerică care poartă o anumită semnificaţie. Trimiterea unui semnal către un proces se face prin comandakill -semnal nr_proces. Semnalele principale sunt:

Page 84: Administrarea Sistemelor Linux

80 Administrarea şi configurarea sistemelor Linux

Page 85: Administrarea Sistemelor Linux

Tabelul 7.1. Semnale uzuale

Denumire semnal Număr semnal

Descriere

SIGHUP 1 hangup, semnalizează terminarea execuţiei procesului-părinte. Este utilizat de mulţi daemoni pentru a reciti fişierele de configurare etc.

SIGINT 2 întreruperea procesului (de la tastatură) SIGQUIT 3 încetarea execuţiei procesului (de la tastatură,

simulând combinaţia ctrl+c) SIGILL 4 programul a efectuat o operaţie invalidă SIGKILL 9 oprirea procesului SIGSEGV 11 referinţă invalidă SIGPIPE 13 pipe întrerupt SIGTERM 15 terminarea procesului SIGUSR1 16 semnal definit de utilizator SIGUSR2 17 semnal definit de utilizator SIGCHLD 18 procesul-copil şi-a încheiat execuţia SIGSTOP 23 opreşte temporar execuţia procesului SIGCONT 25 continuă execuţia procesului după ce acesta a

fost oprit temporar

Lista completă de semnale se găseşte în mân 7 signal.Spre exemplu, comanda kill -9 3419 va trimite semnalul SIGKILL procesului

3419, ceea ce va provoca încetarea execuţiei acestuia.

Pentru afişarea proceselor care sunt în execuţie în mod curent pe sistem, se utilizează comanda ps, cu următoarele opţiuni mai importante:

-a afişează lista tuturor proceselor, chiar dacă acestea nu aparţin utilizatoruluicurent

-x afişează şi procesele care nu au un terminal asociat -u realizează afişarea într-un format extins, incluzând numele utilizatorului

căruia îi aparţine procesul -w afişează informaţiile chiar dacă depăşesc lungimea liniei.

Comanda ps (fără parametri) va afişa lista proceselor curente ale utilizatorului, iar ps aux toate procesele care sunt în execuţie pe calculator.

Informaţii suplimentare privind parametrii comenzii ps se găsesc în pagina de manual mân ps.

Page 86: Administrarea Sistemelor Linux

8. Configurarea sistemului X Windows

Sistemele UNIX utilizează ca mediu grafic sistemul X Windows, cu o arhitectură client-server. X Windows System (versiunea curentă XI1R6) este un sistem de management al interfeţei grafice, independent de hardware şi de sistemul de operare, cu posibilitate de operare prin reţea, dezvoltat de MIT şi DEC şi standardizat de Consorţiul X. Serverul A!" gestionează comunicaţia cu echipamentele din sistem, anume placa video, monitorul, tastatura, mouse-ul etc. Acest server acceptă conexiuni de la clienţi (sau aplicaţii) X, prin reţea sau local. Pe sistemele Linux este utilizată implementarea numită XFree86. în ultimele versiuni ale distribuţiilor este utilizată varianta 4. In majoritatea cazurilor, programul de instalare configurează automat XFree86. Sistemul X Window este localizat în două directoare:

/usr/xiiR6 alcătuit din următoarele subdirectoare: bin, care conţine serverul X precum şi clienţii X; include, conţinând fişiere header; lib, conţinând biblioteci; mân, conţinând manuale de. utilizare; şi doc, conţinând diverse documentaţii;

/etc/xii o ierarhie de subdirectoare incluzând toate fişierele de configurare ale componentelor ce alcătuiesc sistemul X Window.

Serverul X este constituit dintr-un singur fişier executabil, şi anume /usr/xiiR6/bin/XFree86. Acesta încarcă dinamic modulele necesare aflate în /usr/xiiR6/iib/moduies şi driverele video localizate în directorul/usr/XHR6/lib/modules/drivers.

8.1. Fişierele de configurare ale ser\eruluiXFree86

Configurarea serverului XFree86 se poate face fie cu xconfigurator, fie cu utilitarul xf86config.

Fişierul de configurare principal al serverului XFree86 este /etc/xil/XF86Config-4. Deşi editarea manuală a acestui fişier este rareori necesară, poate fi utilă cunoaşterea structurii, secţiunilor şi câmpurilor acestuia.

Acest fişier este structurat în mai multe secţiuni, fiecare dintre acestea definind un anume aspect al sistemului. Fiecare secţiune începe cu section nume_secţ:iu/ie şi se încheie cu EndSection. în cadrul fiecărei secţiuni există mai multe opţiuni, fiecare dintre ele putând avea una sau mai multe valori. De

Page 87: Administrarea Sistemelor Linux

_82___________________Administrarea şi configurarea sistemelor Linux _____________________

asemenea, o secţiune poate conţine şi subsecţiuni, care se definesc în mod asemănător, şi anume Subsection nume_subsecţiune ... EndSubsection. De remarcat sunt următoarele secţiuni:

DeviceSpecifică informaţii despre placa video. Este obligatorie existenţa a cel puţin unei secţiuni Device în fişierul de configurare. Sunt recunoscute următoarele opţiuni:

• BusID: specifică bus-ul pe care se află placa;• Driver, driverul care trebuie încărcat pentru a utiliza această placă;• Identifier: defineşte un nume unic pentru această placă;• Screen: opţiune utilizată atunci când placa video are mai multe capete,

adică suport pentru mai multe monitoare. Valoarea trebuie să fienumerică, respectivele capete fiind numerotate începând cu 0;

• VideoRAM: dimensiunea memoriei aflată pe placa video, în majoritatea cazurilor, driverul detectează automat această valoare.

DRIDRI {Direct Rendering Infrastructure) este o interfaţă pentru capabilităţile 3D ale plăcilor video. Pentru a modifica parametrii DRI, recomandăm cititorului să consulte fişierul /usr/xiiR6/iib/xn/doc/README.DRi.

FilesStabileşte locaţia anumitor fişiere. Permite următoarele opţiuni:

• FontPath: specifică directoarele în care se află fonturi, separate prinvirgulă, în mod uzual, este folosit un aşa-numit server de fonturi, xfs,iar această opţiune are în acest caz valoarea unix/:7ioo. Pentrudetalii suplimentare, vezi secţiunea 8.2;

• ModulePath: specifică directoarele în care se află module, separateprin virgulă;

• RgbPath: stabileşte localizarea bazei de date de culori RGB.InputDevice

Configurează dispozitivele de intrare, cum ar fi tastatura, mouse-ul, tableta grafică, joystick-ul etc. Include două opţiuni:

• Driver: numele driverului pentru acest dispozitiv;• Identifier. numele dispozitivului (spre exemplu, KeyboardO).• Pentru fiecare dispozitiv pot fi stabilite anumite opţiuni. Acestea sunt

specificate cu Option şi conţin numele opţiunii între ghilimele, urmatăde valoarea pentru respectiva opţiune. De exemplu, pentru un mousese stabileşte opţiunea Protocol, cu valoarea PS/2 sau Serial etc., şiopţiunea Device, care specifică numele dispozitivului, cu valoarea/dev/psaux sau /dev/ttySO etc.

Page 88: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 83

O secţiune InputDevice este furnizată în continuare:

Section "InputDevice"Identifier "MouseO"Driver "mouse"Option "Protocol" "IMPS/2"Option "Device" "/dev/psaux"Option "ZAxisMapping" "4 5"Option "Emulate3Buttons" "no"

EndSection

ModuleConţine lista de module ce vor fi încărcate la pornire.

MonitorStabileşte tipul monitorului ataşat la placa video. Este obligatorie existenţa a cel puţin unei secţiuni Monitor în fişierul de configurare. Modificarea valorilor opţiunilor din această secţiune trebuie făcută cu atenţie, fiindcă anumite valori greşite pot duce la defectarea monitorului. Sunt posibile următoarele opţiuni:

• HorizSync; stabileşte intervalul de frecvenţe pentru sincronizareverticală pe care le suportă monitorul, în kHz;

• Modeline: specifică modurile video acceptate de monitor la fiecarerezoluţie;

• ModelName: numele tipului de monitor;• VendorName: numele producătorului;• VertRefresh: intervalul de frecvenţe pentru sincronizare orizontală pe

care le suportă monitorul, în Hz.Screen

Grupează un anumit Device şi un anume Monitor pentru a putea fi utilizate împreună. Trebuie să existe cel puţin o secţiune Screen în fişierul de configurare. Cele mai frecvent utilizate opţiuni sunt:

• DefaultDepth: adâncimea implicită a culorii, exprimată în biţi (8 biţi =256 de culori; 16 biţi = high color, 32 biţi = true color etc.);

• Device: numele unic al dispozitivului din secţiunea Device, care va fifolosit;

• Identifier. numele unic al secţiunii Screen;• Monitor, numele unic al monitorului din secţiunea Monitor.

Poate avea mai multe subsecţiuni Display, în care sunt definite rezoluţiile implicite pentru fiecare adâncime posibilă a culorii. Prezintă opţiunile:• Depth: adâncimea culori i;• Modes: lista de rezoluţii implicite pentru adâncimea specificată a

culorii.

Page 89: Administrarea Sistemelor Linux

Administrarea şi configurarea sistemelor Linux

Un exemplu:

Section "Screen"Identifier "ScreenO"Device "RIVA TNT2"Monitor "MonitorO"DefaultDepth 24

Subsection "Display"Depth 24

Modes "1024x768" "800x600" "640x480"EndSubsection

Subsection "Display"Depth 16

Modes "1280x1024" "1024x768"EndSubsection

EndSection

Pentru generarea de moduri video poate fi folosit utilitarul kvideogen.

ServerFlagsConţine diverse setări globale ale serverului. Aceste setări pot fi modificate de opţiunile specificate în secţiunea ServerLayout (vezi infra). Opţiunile mai importante sunt:

• DontZap: dezactivează posibilitatea utilizării combinaţiei ctrl+Ait+Backspace pentru a forţa ieşirea din sistemul X Windo\v\

• DontZoom: dezactivează posibilitatea schimbării rezoluţiei folosindcombinaţiile ctri+Ait+Pius şi ctri+Ait+Minus.

ServerLayoutGrupează o secţiune Screen cu secţiunile InputDevice necesare, pentru a stabili o colecţie de preferinţe la pornirea serverului. Opţiuni:

• Identifier: numele unic al secţiunii;• InputDevice: numele secţiunii InputDevice care va fi utilizată.

Opţiunea apare de obicei de mai multe ori, de exemplu o dată pentrutastatură şi încă o dată pentru mouse;

• Screen: numele secţiunii Screen care va fi folosită.

Pentru mai multe informaţii, poate fi consultat manualul XF86Config. Pentru a vizualiza configurarea serverului X, se utilizează comanda xset -q.

Page 90: Administrarea Sistemelor Linux

l Configurări de bază ale sistemului____ _______ ______85

8.2. Gestiunea fonturilor

După cum am văzut mai sus, pentru utilizarea de fonturi poate fi utilizat serverul de fonturi xfs, variantă care este de preferat datorită următoarelor avantaje:

• adăugarea/ştergerea de fonturi este mai uşoară;• fonturile pot fi stocate pe o altă maşină, putând fi folosite de mai

multemaşini conectate în reţea, pentru a economisi spaţiu pe disc;

• sunt suportate mai multe tipuri de fonturi: TrueType, Adobe etc.

Evident, serverul xfs trebuie să fie activ atunci când se porneşte serverul X. Fişierul de configurare al serverului xfs este /etc/xn/f s/conf ig şi conţine mai multe opţiuni, după cum urmează:

• alternate-servers: lista de servere xfs alternative care pot fi utilizate dacăserverul nu poate fi folosit, separate prin virgulă;

• catalogue: lista de directoare care conţine fonturi;• client-limit: numărul maxim de clienţi ce se pot conecta la server

(implicit:10);

• clone-self. decide ca xfs să se autoexecute atunci când s-a ajuns la numărulmaxim de clienţi acceptaţi (implicit: ori)\

• default-point-size: stabileşte mărimea implicită a punctului pentru fonturilecare nu specifică această opţiune. Valoarea este specificată în număr depuncte multiplicat cu 10;

• error-file: fişierul în care xfs va trimite erorile apărute;• no-listen: determină xfs să nu folosească un anumit protocol. Implicit,

estespecificat tcp pentru ca xfs să nu asculte pe porturi TCP, din motive desecuritate;

• port: stabileşte portul pe care xfs va asculta cererile de la clienţi (implicit:7100);

• use-syslog: trimite mesajele de eroare către sistemul syslog.

Adăugarea de fonturi se poate face cu ajutorul comenzii chkfontpath —add director. După adăugarea de fonturi, serverul xfs trebuie repornit. Prezentăm mai jos, ca exemplu, un fişier de configurare xfs:

# acceptă maxim 10 clienţi conectaţi

Page 91: Administrarea Sistemelor Linux

simultan

client-limit = 10

# lansează în execuţie o nouă instanţă xfs atunci când s-a atins#numărul maxim de clienţi

cl

one-self = on

# locaţiile directoare .1 onţinând forauricatalogue = /usr/XHR6/lib/Xll/f onts/misc :unscaled,

Page 92: Administrarea Sistemelor Linux

86 Administrarea şi configurarea sistemelor Linux

/usr/XHR6/lib/Xll/fonts/75dpi:unscaled,/usr/XHR6/lib/Xll/fonts/100dpi:unscaled,/usr/XHR6/lib/Xll/fonts/misc,/usr/XHR6/lib/Xll/fonts/Typel,/usr/XHR6/lib/Xll/fonts/Speedo,/usr/XHR6/lib/Xll/fonts/cyrillic,/usr/XHR6/lib/Xll/fonts/CID,/usr/XHR6/lib/Xll/fonts/local,/usr/XHR6/lib/Xll/fonts/latin2/Typel,/usr/share/fonts/default/TrueType,/usr/share/fonts/default/Typel,/usr/share/AbiSuite/fonts

# dimensiunea implicită a punctuluidefault-point-size = 120

t jurnalizarea mesajelor de eroare use-syslog = on

# nu aşteaptă conexiuni de pe porturi TCPno-listen = tcp

8.3. Managerul de ferestre

Principalul client al serverului X\\ constituie managerul de ferestre, care are rolul de a controla modul în care se comportă ceilalţi clienţi X, precum şi aspectul acestora.

Un mediu desktop grupează mai mulţi clienţi X, construiţi după o structură comună, care pot interacţiona între ei. De asemenea, mediul desktop include şi un manager de ferestre. Mediile desktop cele mai răspândite sunt KDE şi GNOME (The GNU Network Object Modeling Environment). Mediul desktop implicit, stabilit la instalarea sistemului, poate fi schimbat cu ajutorul comenzii switchdesk.

Spre exemplu, comanda switchdesk KDE va stabili ca mediu desktop sistemul KDE.

8.4. Pornirea sistemului^ Window

Sistemul de ferestre X Window poate fi pornit fie automat la pornirea sistemului, fie după dorinţă.

Pentru a determina X Window să pornească automat la încărcarea sistemului, trebuie ca acesta să pornească în nivelul de execuţie 5. în acest sens, câmpul initdefaults din /etc/inittab trebuie să fie 5. In nivelul 5, autentificarea

Page 93: Administrarea Sistemelor Linux

________________________Configurări de bază ale sistemului __________________________ 87

utilizatorilor se face într-un mediu grafic, numit display manager, în fapt un client I special care permite utilizatorilor să intre în sistem.

Există trei programe de acest gen, şi anume xdm, gdm (care face parte din GNOME) şi kdm (ce face parte din KDE). Acestea două din urmă permit, pe lângă autentificarea utilizatorilor, oprirea şi repornirea sistemului. Dacă este utilizat în locul acestora scriptul prefdm, acesta stabileşte care dintre gestionarele de ecran să fie pornite, în funcţie de setările din /etc/sysconfig/desktop.

Pentru pornirea manuală a sistemului X Window (adică din nivelul 3 de execuţie), se lansează comanda startx. Programul startx realizează următoarele operaţiuni:

• caută fişierul .xinitrc din directorul home al utilizatorului, iar dacă acestanu există, fişierul implicit al sistemului, /etc/xn/xinit/xinitrc. Acestefişiere de configurare definesc clienţii .Ycare vor fi porniţi;

• scriptul xinitrc caută fişierele de configurare .Xresources, .xmodmap şi.xkbmap în directorul home al utilizatorului sau, dacă acestea nu există,Xresources, Xmodmap şi Xkbmap în /etc/Xll. Ultimele două fişiere suntutilizate de xmodmap pentru a configura tastatura. Xresources este folositpentru a stabili anumite preferinţe pentru aplicaţii;

• scriptul xinitrc execută toate scripturile aflate în directorul/etc/xii/xinit/xinitrc.d. Unul dintre scripturile aflate în acest directoreste xinput, care stabileşte diverse setări, cum ar fi limba implicită şi mediuldesktop care va fi încărcat (acesta este stabilit în fişierul/etc/sysconfig/desktop);

• scriptul xinitrc execută scriptul .xdients din directorul home alutilizatorului sau /etc/xn/init/xciients, dacă acesta nu există. Acestscript execută mediul desktop sau, dacă aceasta nu este posibil, doarmanagerul de ferestre.

Page 94: Administrarea Sistemelor Linux

9. Nucleul Linux

9.1. Compilarea nucleului Linux

Deşi nucleul furnizat de distribuţia Linux poate satisface toate nevoile administratorului sistemului, de cele mai multe ori este de preferat compilarea unui nucleu adaptat atât configuraţiei calculatorului, cât şi modului de utilizare a acestuia. Motivele principale sunt:

• nucleul implicit nu conţine toate facilităţile necesare;• nucleul implicit este compilat modular, ceea ce poate conduce la întârzieri în

răspuns cauzate de durata de încărcare a modulelor;• nucleele modulare prezintă riscul de a fi „infectate" cu module străine rău

intenţionate („troieni");• cu cât nucleul generat are dimensiunea mai mică, cu atât acesta ocupă mai

puţină memorie.

De asemenea, în general se recomandă utilizarea unei versiuni oficiale de nucleu, şi nu versiunea livrată în distribuţie. Motivul este că nucleul din distribuţie nu este cel oficial (adică publicat pe site-ul ftp.kernei.org sau mirrors), ci conţine modificări realizate de furnizorul distribuţiei. Nucleul oficial este testat de un număr mult mai mare de persoane decât cel din distribuţie, fapt ce îi conferă o stabilitate mai mare. De multe ori însă, nucleul din distribuţie conţine şi corecţii de bug-uri sau drivere pentru dispozitive, neconţinute în nucleul oficial, care pot fi necesare.

Trebuie avut în vedere faptul că nucleele cu număr de versiune impar (e.g. 2.3.x) sunt în dezvoltare, fiind de multe ori instabile. Nu se recomandă utilizarea acestora decât cu titlu experimental.

Pentru a putea compila nucleul este necesară instalarea următoarelor pachete: kernel, kernel-doc, kernel-headers, kernel-pcmcia-cs şi kernel-source. Nucleul din distribuţie se află în directorul /usr/src/iinux-2.4.

Dacă se doreşte instalarea nucleului oficial, acesta trebuie descărcat de pe site-ul FTP ftp.kernei.org (sau mirrors). Este de preferat localizarea acestuia în /usr/src/linux, dar poate fi folosit şi orice alt director.

Majoritatea facilităţilor oferite de nucleul Linux (cum ar fi drivere pentru dispozitivele aflate în calculator) pot fi compilate separat de nucleu, ca module. Un modul este o componentă a nucleului care este încărcată doar atunci când este nevoie de ea (de exemplu, driverul pentru o placă de reţea este încărcat atunci când

Page 95: Administrarea Sistemelor Linux

________________________Configurări de baza ale sistemului __________________________ 89

respectiva interfaţă de reţea este activată). De asemenea, modulele care nu sunt utilizate o anumită perioadă de timp sunt eliminate automat din memorie. Unul dintre dezavantajele utilizării modulelor este timpul de încărcare a acestora. Dacă nucleul compilat va fi folosit pe un anumit calculator, este de preferat varianta monolitică. Dacă nucleul va fi folosit pe mai multe calculatoare, având configuraţii hardware diferite, este de preferat varianta modulară.

Pentru a configura nucleul, se va executa, având ca director curent locaţia în care au fost instalate sursele acestuia, fie make conf ig, cu care se efectuează o configurare de tip linie comandă, fie make menuconfig, cu care configurarea se face într-o interfaţă utilizator în mod text, sau make xconfig, configurarea făcându-se într-o interfaţă grafică X Window.

Code maturity level options• Prompt for development and/or incomplete code/drivers

Unele facilităţi oferite (cum ar fi drivere pentru noi echipamentehardware ş.a.m.d) pot fi în stadiu de dezvoltare sau în fazăexperimentală. Activarea acestei opţiuni va face disponibilăselectarea respectivelor facilităţi. Nu este recomandată activareaacesteia decât dacă este neapărată nevoie.

- Loadable module support

Opţiuni privind utilizarea de module• Enable loadable module support

Permite utilizarea de module. Recomandat a se activa.• Set version Information on all module symbols

în mod normal, modulele trebuie recompilate atunci când se foloseşte o altă versiune de nucleu. Activarea acestei opţiuni permite reutilizarea modulelor (util, de exemplu, atunci când se folosesc module care nu fac parte din nucleu).

• Kernel module loader

încarcă modulele în mod automat, atunci când este nevoie de ele.- Processor type and features

• Processor familySe selectează tipul procesorului din sistem: Pentium-4, Athlon/Duron/K7 etc. De menţionat faptul că un nucleu compilat pentru Pentium 4 nu va funcţiona pe un 386. In schimb, un nucleu compilat pentru 386 va funcţiona pe orice procesor mai performant.

• Toshiba Laptop supportCompilează un driver pentru a accesa System Management Mode ofthe CPU am laptop-urile Toshiba.

• Dell laptop supportCompilează un driver pentru a accesa System Management Mode ofthe CPU din laptop-urile Dell.

Page 96: Administrarea Sistemelor Linux

90 Administrarea şi configurarea sistemelor Linux _______________________

• /dev/cpu/microcode - Intel IA32 CPU microcode supportOferă suport pentru actualizarea microcodului din procesoarele dinfamilia IA32 (Pentium 3 sau superioare).

• /dev/cpu/*/msr - Model-specific register supportOferă suport pentru accesarea regiştrilor speciali Model-SpecificRegisters (MSRs).

• /dev/cpu/*/cpuid - CPU Information supportPermite accesarea instrucţiunii CPUID.

• High Memory SupportOferă suport pentru maşini cu peste l GB de memorie: se selectează opţiunea 4 GB pentru 1-4 GB de memorie şi 64 GB pentru >4 GB de memorie.

• Math emulationEmulează procesorul aritmetic prin software. Se foloseşte pentru 386 şi 486.

• MTRR (Memory Type Range Register) support

Permite controlul asupra zonelor mapate de memorie (AfTRR-uri), gestionate prin adresare fizică şi nu virtuală.

• Symmetric multi-processing support

Compilează suport pentru sisteme multi-procesor.- General setup

• Networking supportOferă suport pentru reţea. Este obligatorie activarea acestei opţiuni, chiar şi atunci când calculatorul nu este legat în reţea.

• PCI supportOferă suport pentru bus-uri PCI.

• PCI access modeStabileşte modul de detecţie a dispozitivelor conectate la bus-ul PCI: prin BIOS, direct, sau oricare din ele.

• EISA supportOferă suport pentru bus-uri EISA.

• Support for hot-pluggable devices• PCMCIA/CardBus support

Oferă suport pentru dispozitive PCMCIA.• Generic PCI hotplug support

Oferă suport pentru plăci de bază având controller PCI Hotplug.

• System V IPCCompilează suport pentru comunicaţie între procese de tip IPC System V (memorie comună, semafoare şi cozi de mesaje). In mod normal trebuie activată.

• BSD Process AccountingCompilează suport pentru contabilizarea proceselor.

Page 97: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 91

• Sysct l supportOferă o interfaţă pentru modificarea anumitor parametri şi variabile specifice nucleului fără a-1 recompila sau reporni maşina, în mod normal trebuie activată.

• Kernel support for a.out binaries

Permite execuţia de programe vechi compilate în sistemul a.out.• Kernel support for ELF binaries

Permite execuţia de programe compilate în sistemul ELF. Toate executabilele Linux sunt de tip ELF, astfel că această opţiune trebuie obligatoriu activată.

• Kernel support for MIŞC binariesOferă posibilitatea de a adăuga suport din exteriorul nucleului pentru alte tipuri de executabile (util, spre exemplu, pentru a executa programe interpretate, cum ar fi în Java, Python etc., sau programe MS-DOS prin intermediul DOSEMU).

• Power Management supportCompilează suport pentru Power Management, fie în tehnologia APM, fie ACPI (util, de exemplu, pentru oprirea automată a calculatorului sau pentru economia de energie atunci când sistemulnu este utilizat).

- Memory Technology Device (MTD) supportOferă suport pentru dispozitive de memorie cum ar fi Flash card-uri sau cartele HAM.

- Parallel port supportSuport pentru portul paralel.

• PC-style hardwareDriver pentru portul paralel standard. Dacă la portul paralel este conectată o imprimantă sau un alt dispozitiv, această opţiune trebuie să fie activă.

• Multi-IO cards (parallel and serial)Suport pentru plăci multi-I/O PCI.

• Use FIFO/DMA if availableActivează suportul pentru transferul datelor prin DMA.

• SuperlO chipset support

Oferă suport pentru cipuri de tip SuperlO.- Plug and Play support

Oferă suport pentru dispozitive de tip Plug and Play.• ISA Plug and Play support

Suport pentru dispozitive de tip Plug and Play pe bus ISA.- Block devices

Suport pentru dispozitive de tip bloc.• Normal PC floppy disk support

Driver pentru unitatea floppy.• Parallel port IDE device support

Suport pentru dispozitive IDE conectate la portul paralel (de exemplu, hard-disk-uri portabile).

Page 98: Administrarea Sistemelor Linux

92 Administrarea şi configurarea sistemelor Linux

• Loopback device supportOferă posibilitatea de a utiliza un fişier obişnuit ca dispozitiv de tip bloc (de exemplu, un fişier conţinând imaginea unui CD poate fi montat ca şi cum s-ar monta un CD normal).

• RAM disk supportOferă posibilitatea de a aloca o zonă din memoria RAM şi a o folosi ca pe un dispozitiv de tip bloc (ca un hard-disk, spre exemplu).

- Multiple devices driver support (RAID and LVM)

Conţine suport pentru ca mai multe dispozitive fizice să fie considerate ca un singur dispozitiv logic. Conţine drivere pentru tehnologiile RAID (Redundant Array of Inexpensive Disks) şi LVM (Logical Volume Management).

• RAID support

Suport pentru Software RAID. Dacă sistemul conţine o placă RAID, această opţiune nu trebuie activată.

• Logical volume manager (LVM) supportSuport pentru L VM.

- Networking options• Packet socket

Protocolul Packet este folosit de aplicaţii care interacţionează direct cu dispozitivele de reţea (de exemplu, tcpdump). In mod normal trebuie activată.

• Netlink device emulation

Acest driver implementează un sistem de comunicaţie între nucleu şi aplicaţii, prin intermediul familiei de socket-uri PF_NETLINK. în mod normal trebuie activată.

• Network packet filtering (replaces ipchains)

Oferă sistemul numit iptabies pentru filtrarea şi gestionarea pachetelor de reţea ce trec prin sistem.

• Socket FilteringAplicaţiile pot ataşa la orice socket un filtru, comunicând astfel nucleului căror tipuri de informaţii să fie permis transferul prin socket.

• Unix domain socketsInclude suport pentru comunicaţia prin socket-uri. în mod normal trebuie activată, deoarece multe programe folosesc acest tip de comunicaţie chiar dacă maşina nu este conectată în reţea (de exemplu, X Window).

• TCP/IP networkingOferă suport pentru protocolul de reţea utilizat în Internet şi reţelele UNIX. în mod normal trebuie să fie activată. • IP: multicasting

Conţine suport pentru a comunica simultan cu mai multecalculatoare legate în reţea.

Page 99: Administrarea Sistemelor Linux

..

Configurări de bază ale sistemului 93

• IP: advanced'routerDacă se intenţionează utilizarea sistemului Linux ca router, această opţiune poate fi folosită pentru a controla anumiţi parametri de routare.

• IP: kernel level autoconfigurationAceastă opţiune activează configurarea automată a conexiunii în reţea în momentul pornirii sistemului (util, spre exemplu, pentru calculatoarele fără disc, a căror sistem este instalat pe alt calculator). Conţine mai multe subopţiuni, oferind suport pentru protocoalele DHCP, BOOTP, RARP şi ARP.

• IP: tunnelingTunneling reprezintă încapsularea datelor având un anumit protocol într-un alt protocol şi trimiterea acestora printr-un lanţ care cunoaşte protocolul. Acest driver implementează aşa-zisa încapsulare a IP în IP, care poate fi util pentru a face maşina să pară că face parte dintr-o altă reţea decât cea reală sau să folosească facilităţile de IP mobil (ca un calculator portabil să se poată muta dintr-o reţea în alta fără a-şi schimba adresa de IP).

• IP: TCP syncookie support (disabled per default)Oferă protecţie împotriva atacurilor de tip SYNflooding, însensul că va fi utilizat un protocol criptat care va permiteconexiunilor normale să funcţioneze în continuare.

• IP: Netfilter Configuration

Dacă sistemul iptables este activat, această opţiunepermite configurarea parametrilor filtrului.

- Telephony Support

Suport pentru plăci de telefonie (cum ar fi voice over IP).- IDE, ATA and ATAPI Block devices

• Enhanced IDE/MFM/RLL disk/cdrom/tape/ floppy supportDriverul pentru interfaţa IDE.

• Include IDE/ATA-2 DISK support

Suport pentru hard-disk-uri IDE.• PCMCIA IDE support

Drivere pentru dispozitive IDE PCMCIA.• Include IDE/ATAPI CDROM support

Suport pentru unităţi CD-ROM IDE.• Include IDE/ATAPI TAPE support

Suport pentru unităţi de bandă IDE.• Include IDE/ATAPI FLOPPY support

Suport pentru unităţi floppy IDE.• SCSI emulation support

Emulează un dispozitiv IDE ca fiind dispozitiv SCSI (util pentru dispozitive pentru care nu există driver, de exemplu unităţile CD-RW IDE).

Page 100: Administrarea Sistemelor Linux

94______________________Administrarea şi configurarea sistemelor Linux ________________________

• Generic PCI IDE chipset support

Drivere pentru controllere IDE PCI.• Sharing PCI IDE interrupts support

Permite ca interfaţa IDE să poată avea acelaşi IRQ cu alte plăci PCI din sistem.

• Generic PCI bus-master DMA support

Permite transferul de informaţii prin DMA.• Use PCI DMA by default when available

Activează detecţia automată a posibilităţii de utilizare a DMA, Există cipuri IDE care generează probleme când este folosită DMA, cazuri în care această opţiune trebuie dezactivată.

Pe lângă aceste opţiuni, pot fi selectate driverele pentru cipuri IDE care vorfi compilate.SCSI support

• SCSI disk supportInclude suport pentru hard-disk-uri SCSI.

• SCSI tape supportOferă suport pentru unităţi de bandă SCSI.

• SCSI CD-ROM supportInclude suport pentru unităţi CD-ROM SCSI.

• SCSI generic supportOferă suport pentru dispozitive SCSI generice (cum ar fi scannere, unităţi CD-RW etc.).

• Probe all LUNs on each SCSI deviceTestează toate numerele de unitate (Logica! Unit Numbers), oferind astfel suport pentru dispozitivele care au mai multe unităţi incluse (de exemplu, CD Chargere).

• Verbose SCSI error reportingDetaliază mesajele de eroare SCSI.

• SCSI logging facilityEmite mesaje de depanare generate de sistemul SCSI.

• SCSI low-level driversDrivere pentru plăci SCSI.

- Fusion MPT device support

Driver pentru Fusion MPT hardware.- 120 device support

Suport pentru arhitectura I2O (Intelligent Input/Outpui).- Network device support

Conţine drivere pentru plăci de reţea.- Amateur Radio support

Oferă suport pentru protocoale de comunicaţie radio şi drivere pentru dispozitive./!*^.IrDA subsystem support

Conţine suport pentru protocolul şi dispozitivele IrDa (transmisie infraroşu).- ISDN subsystem

Suport pentru protocolul şi dispozitivele ISDN.

Page 101: Administrarea Sistemelor Linux

Configurâri de bază ale sistemului

- Support non-SCSI/IDE/ATAPI CDROM drives

Conţine drivere pentru unităţi CD-ROM vechi (nestandard).- Input core support

Drivere pentru dispozitive de intrare (joystick-uri etc.).- Character devices

• Virtual terminal• Support for console on virtual terminal

Suport pentru consolă. In mod normal trebuie activat.• Standard/generic (8250/16550 and compatible UARTs)

serial support

Driverul pentru portul serial standard.• Extended dumb serial driver options

Stabileşte opţiunile pentru driverul serial.• Non-standard serial port support

Oferă suport pentru plăci seriale (de exemplu, Cyclades).• Unix98 PTY support

Implementează suport pentru pseudoterminale (utilizate, de exemplu, de telnet, SSH, xterm etc.). în mod normal trebuie activată.

• Parallel printer supportDriverul pentru imprimanta paralelă.

• Bus Mouse SupportSuport pentru bus mouse.

• Mouse Support (not serial and bus mice)Suport pentru alte tipuri de mouse-uri (cum ar fi PS/2).

• QIC-02 tape supportDriver pentru unitatea de bandă QIC-02.

• Watchdog Timer Support

Drivere pentru plăci de supraveghere Watchdog.• Intel i8xO Random Number Generator support

Suport pentru cipul generator de numere aleatoare i8xO.• Enhanced Real Time Clock Support

Conţine suport pentru cipul de timp, putând fi folosit pentru generarea de semnale l şi 8192 Hz sau pentru a seta alarma.

• Double Talk PC internai speech cârd support

Driverul pentru sintetizatorul de voce DoubleTalk PC.• Siemens R3964 line discipline

Driver care permite comunicaţia asincronă cu dispozitive ce utili-zează protocolul Siemens R3964.

• Applicom intelligent fieldbus cârd supportDrivere pentru plăcile produse de Applicom International.

• Ftape (QIC-80/Travan) support

Cuprinde driverul pentru unităţile de bandă de tip Travan.• /dev/agpgart (AGP Support)

Conţine drivere pentru magistrala AGP.

Page 102: Administrarea Sistemelor Linux

96 Administrarea şi configurarea sistemelor Linux

• Direct Rendering Manager (XFree86 4 . 1 . 0 and higher DRIsupport)

Include drivere pentru DRM (utilizarea facilităţilor 3D ale plăcilorvideo).

- Multimedia devicesConţine drivere pentru dispozitive multimedia cum ar fi plăci de capturăvideo, TV sau radio.

- File systems

Conţine suport pentru sisteme de fişiere.• Quota support

Suport pentru stabilirea de limite în privinţa spaţiului de disc folosit de utilizatori. Funcţionează doar pentru ext2, ext3 şireiserfs.

• Kernel automounter support

Suport pentru montarea automată de sisteme de fişiere aflate la distanţă.

• Reiserfs supportSistemul de fişiere reiserfs, un sistem jurnalizat, cu structură arborescentă. Prezintă eficienţă mai mare decât ext2 atunci când conţine directoare cu foarte multe fişiere de dimensiune mică.

• ADFS file system supportSistemul de fişiere Acorn Disc Filing System, utilizat de sistemul de operare RiscOS, de pe maşinile Acorn.

• Amiga FFS file system support

Sistemul de fişiere utilizat de sistemele Amiga.• Apple Macintosh file system support

Sistemul de fişiere utilizat de Macintosh.• BFS file system support

Sistemul Boot File System utilizat de SCO UnixWare.•• DOS FĂT fs support

Sistemele de fişiere de tip FĂT.• MSDOS fs support

Sistemul de fişiere MS-DOS.• UMSDOS: Unix-like file system on top of standard

MSDOS fsPermite utilizarea unei partiţii MS-DOS pentru sistemul Linux.

• VFAT (Windows-95) fs supportSistemul de fişiere utilizat de Windows 95, 98 şi NT, compatibil MS-DOS, cu suport pentru nume lungi de fişiere.

• EFS file system support

Sistemul EFS, utilizat de sistemele IRIX vechi.• Journalling Flash File System (JFFS) support

Sistemul Flash File System jurnalizat, realizat de Axis Communications pentru sistemele (embedded) fără disc.

Page 103: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 97

Compressed ROM file system supportSistemul Compressed ROM File System, creat pentru sistemeembedded cu memorie ROM.Simple RAM-based file system support

Sistem de fişiere care se găseşte în memoria RAM.ISO 9660 CDROM file system support

Sistemul de fişiere utilizat de discurile CD.• Microsoft Joliet CDROM extensions

Suport pentru extensia Joliet, ce permite utilizarea de nume lungi de fişiere.

• Transparent decompression extension

Extensie specifică Linux, ce permite stocarea compresată adatelor pe CD-ROM-uri.

Minix fs supportSistem de fişiere simplificat din sistemul educativ Minix (utilizat şi în primele versiuni de Linux).FreeVxFS file system support (VERITAS VxFS(TM)compatible)

Sistemul de fişiere utilizat de SCO UnixWare.NTFS file system support (read only)

Sistemul de fişiere utilizat de Windows NT.OS/2 HPFS file system support

Sistemul de fişiere de pe sistemele OS/2./proc file system supportprocfs este un sistem de fişiere virtual ce oferă informaţii de stareale sistemului, în mod normal trebuie activat./dev file system support

devfs este un sistem de fişiere virtual care oferă o interfaţăstructurată driverelor pentru dispozitive, înlocuieşte sistemul clasicdin UNIX de alocare de numere majore şi minore, prin înregistrăriîn /dev./dev/pts file system for Unix98 PTYs

Este un sistem de fişiere virtual utilizat pentru suportul pentru pseudoterminale. în mod normal trebuie activat.QNX4 file system support (read only)Sistemul de fişiere utilizat de sistemul de operare QNX.ROM file system supportReprezintă un sistem de fişiere simplificat, utilizat pentru discuriRAM sau discuri de instalare, sau alte sisteme read-only.Second extended fs support

Sistemul de fişiere clasic Linux: ext2. în mod normal trebuiecompilat în nucleu (deci nu ca modul), altfel sistemul nu v;< puteaporni.System V/Xenix/V7/Coherent file system support Sistemul de fişiere utilizat de SCO, Xenix, Version 7 şi Cohercnt.

Page 104: Administrarea Sistemelor Linux

Administrarea şi configurarea sistemelor Linux

• UDF file system support (read only)Sistemul de fişiere folosit de CD-ROM-uri şi DVD-uri scrise în mod pachet.

• UFS file system support {read only)

Sistemul de fişiere utilizat de sistemele de operare derivate din BSD: SunOS, FreeBSD, NetBSD, OpenBSD şi NeXTstep.

• Coda file system support (advanced network f s)Coda este un sistem avansat de fişiere aflat în reţea, asemănător cu NFS, dar care oferă câteva facilităţi suplimentare.

• NFS file system support

Sistemul clasic de fişiere de reţea, Network File System (sistem de fişiere aflat la distanţă).

• Provide NFSv3 client support

Oferă suport pentru NFS versiunea 3 ca client.• Root file system on NFS

Permite ca sistemul de fişiere-rădăcină (/) să se afle la distanţă.• NFS server support

Suport pentru NFS ca server.• Provide NFSv3 server support

Include suport pentru NFS versiunea 3 ca server.• SMB file system support (to mount Windows shares etc.)

Sistemul de fişiere în reţea utilizat de Windows.• NCP file system support (to mount NetWare volumes)

Sistemul de fişiere în reţea utilizat de NetWare.Sound cârd supvjrtConţine drivere pentru plăci de sunet.USB supportConţine drivere pentru magistrala USB.Kernel debuggingPermite configurarea mesajelor de depanare generate de nucleu.

• Debug high memory support

Permite managerului de memorie largă să genereze informaţii de depanare.

• Debug memory allocationsPermite afişarea de informaţii de depanare atunci când se efectuează alocări de memorie.

• Memory mapped I /O debugging

Afişează mesaje de depanare atunci când se efectuează operaţiuni de I/O mapate în memorie.

• Magic SysRq keyOferă control asupra sistemului atunci când are loc o defecţiune a sistemului de operare: afişarea de informaţii de stare a nucleului sau conţinutul regiştrilor, demontarea sistemelor de fişiere sau repornirea sistemului.

• Spinlock debugging• Verbose EUG ( ) reporting

Page 105: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 99

După configurarea nucleului, acesta trebuie compilat prin comanda make. Modulele se compilează utilizând comanda make modules, iar instalarea acestora în /lib/modules se face cu make modules_install. In cazul în care modulele sunt compilate pentru prima oară pentru versiunea curentă de nucleu, trebuie apelată comanda depmod -a verşiune_nucleu, pentru a genera dependenţele dintre module (directorul /lib/modules/versiune_/]ucleu).

în final, trebuie copiat nucleul generat (arch/i386/boot/bzimage) precum şi tabela de simboluri (System.map) peste versiunile vechi (în general în /boot), apoi configurat încărcătorul de boot pentru a porni nucleul nou compilat (vezi infră).

9.2. Configurarea încărcătorului de boot

Un încărcător de boot este un program care porneşte imediat după bootarea sistemului. Acesta afişează un meniu conţinând mai multe sisteme de operare care pot fi pornite. Utilizatorul poate selecta unul dintre acestea sau poate aştepta pornirea sistemului setat implicit.

GRUB

Fişierul de configurare GRUB este /etc/grub.conf. Acesta conţine mai multe opţiuni, dintre care cele mai importante sunt:

boot = nume_dispozitivDispozitivul pe care va fi scris sectorul de boot.

default = nrStabileşte sistemul implicit. Numerotarea se face în ordinea apariţiei (veziinfra), începând de la 0.

timeout = timpTimpul de aşteptare (exprimat în secunde) după care va fi pornit sistemulimplicit. splashimage

= (disc)fişierSpecifică o imagine în format XPM care va fi afişată ca fundal.

title = titluDefineşte un sistem, cu titlul specificat. Poate conţine mai multe secţiuni:• root (disc)

Specifică partiţia de root de pe care va porni sistemul. Partiţia are formatul hddisc,părţi fie, unde disc reprezintă numărul discului (numerotarea se face în ordinea detecţiei de către BIOS, începând cu 0), iar partiţie - numărul partiţiei (numerotarea se face tot începând cu 0).

• rootnoverify (disc)Specifică partiţia de pe care va porni sistemul, atunci când acesta este non-UNIX.

Page 106: Administrarea Sistemelor Linux

100 Administrarea şi configurarea sistemelor Linux

• kernel imagine_nucleu parametriSpecifică imaginea nucleului care va fi executat, precum şi parametrii care vor fi trimişi acestuia.

• chainloader [ start ]+nr_sectoarePentru un sistem non-UNIX, citeşte şi execută numărul specificat de sectoare, începând cu sectorul start.

• password [ ~md5 ] parolăProtejează sistemul cu parola de acces specificată. Dacă este folosit parametrul -md5, parola este criptată în format MD5 (prin comanda mdScrypt).

Pentru a instala încărcătorul de boot, trebuie lansată comanda grub-instaiinume_dispozi tiv.

Prezentăm mai jos un fişier grub. conf:

default=0timeout=5splashimage=(hdO,0)/boot/grub/splash.xpm.gztitle Red Hat Linux (2.4.18)

root (hdO,0)kernel /boot/bzlmage ro root=/dev/hdal

title Windowsrootnoverify (hdO,2)chainloader +1

Pentru instalarea încărcătorului de boot conform acestei configuraţii, se va executa comanda grub-install /dev/hda.

LILO

Fişierul de configurare LILO este /etc/lilo.conf. Acesta conţine mai multe opţiuni:

boot = nume ^dispozitivDispozitivul pe care va fi scris sectorul de boot.

promptSolicită opţiunea utilizatorului. Dacă această opţiune nu este specificată,LILO va porni sistemul implicit.

timeout = timpTimpul de aşteptare (exprimat în secunde) după care va fi pornit sistemulimplicit.

message = fişierSpecifică o imagine care va fi afişată ca fundal.

default = numeStabileşte sistemul implicit.

Page 107: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 101

image - imagine_nucleuDefineşte un sistem, specificând imaginea nucleului care va fi executat. Poate conţine mai multe secţiuni:• labei = nume

Specifică numele asociat sistemului.• read-only

Montează partiţia de root în mod read-only.• root = partiţie

Specifică partiţia de root de pe care va porni sistemul.• append = „parametri"

Parametrii care vor fi trimişi nucleului.• password=parolă

Protejează sistemul cu o parolă de acces.• restricted

Stabileşte că parola va fi solicitată doar dacă sunt introduşi parametri. other =partiţie

Specifică partiţia de pe care va porni sistemul atunci când acesta este non-UNIX.

Pentru a instala încărcătorul de boot, trebuie lansată comanda liio. Prezentăm mai jos un fişier lilo.conf:

boot=/dev/hdamap=/boot/mapinstall=/boot/boot .bprompttimeout=50message=/boot/messagedefault=linux

image=/boot/bzlmagelabel=linuxread-onlyroot=/dev/hdalappend="parport=0x378,7,3"

other=/dev/hda3label=windows

9.3. Gestiunea modulelor

Lista modulelor încărcate în memorie poate fi vizualizată în fişierul/proc/modules.

Page 108: Administrarea Sistemelor Linux

102 Administrarea şi configurarea sistemelor Linux

încărcarea modulelor

încărcarea modulelor nucleului se poate face fie automat, atunci când acestea sunt solicitate, fie după dorinţă, utilizând comanda insmod modul parametri sau modprobe modul parametri, aceasta din urmă rezolvând şi dependenţele dintre module (adică încarcă şi modulele necesare pentru execuţia celui în cauză).

Eliminarea modulelor

înlăturarea unui modul care nu mai este necesar se face folosind comanda rmmod modul.

Page 109: Administrarea Sistemelor Linux

10. Setarea legăturii de reţea: TCP/IP

Fiecare sistem legat în reţea are un nume (hostname sau host), care este unic în cadrul reţelei. Numele permit referirea la maşină utilizând un nume scurt şi uşor de reţinut, în loc de adresa maşinii. Numele maşinii poate conţine maxim 64 de caractere.

Fiecare maşină are o adresă IP, care este unică, alcătuită dintr-o secvenţă de patru octeţi având formatul:

a . b . c . d

unde a, b, c şi d sunt numere întregi, pe 8 biţi, luând valori între O şi 255. Adresa este împărţită în două: prima parte identifică reţeaua din care face parte maşina (în general a. b.c), iar a doua parte identifică maşina (în general d).

In mod convenţional, adresa 127.0.0.1 se consideră a fi adresa de loopback: pachetele trimise către această adresă sunt trimise înapoi către aceeaşi maşină (o interfaţă virtuală, cu semnificaţia de „eu"). Această adresă se foloseşte în general atunci când o maşină nu este legată în reţea sau pentru testări. Adresa corespunde în mod uzual numelui localhost.

Seturile de adrese IP se numesc clase de adrese. Astfel, clasa de adrese a.b.c se numeşte clasa C de adrese, a.b - clasa B, iar a - clasa A. Spre exemplu, 193.226.26 este o clasă C de adrese. Ea se compune din toate adresele aflate în intervalul 193.226.26.0-193.226.26.255.

O reţea conţine în general o clasă de adrese, putând aşadar conţine mai multe subretele. De asemenea, o reţea formată dintr-o clasă C de adrese poate fi divizată în mai multe subretele. Divizarea în subretele se face cu ajutorul măştii de reţea (netmask) - o adresă în care biţii corespunzători reţelei au valoarea l, iar ceilalţi au valoarea 0. Clasa adresei de reţea determină masca reţelei. De exemplu, pentru o adresă de clasă C, masca reţelei este 255.255.255.0.

Adresa reţelei este rezultatul operaţiei AND între masca reţei şi orice adresă IP din reţea. De exemplu, dacă adresa IP a unui sistem este 192.72.68.53, iar masca reţelei este 255.255.255.0, atunci adresa reţelei este 792.72.68.0.

Valorile pentru adresa IP, masca de reţea şi adresa de broadcast pot fi determinate cu ajutorul programului ipcalc.

Comunicaţiile prin reţea sunt structurate sub forma unor serii de niveluri. Fiecare tranzacţie traversează stiva de niveluri, apoi echipamentul de reţea, mediul de conectare, apoi iarăşi echipamentul de reţea şi aceeaşi stivă de niveluri, în sens contrar. Comunicaţia de tip TCP/IP este alcătuită din următoarele patru niveluri:

Page 110: Administrarea Sistemelor Linux

104 Administrarea şi configurarea sistemelor Linux

Page 111: Administrarea Sistemelor Linux

Tabelul 10.1. Arhitectura TCP/IP

Nivel Descriere

Nivelul aplicaţie Specifică modul de interfaţare a programelor cu reţeaua (cum ar fi protocoalele FTP sau SSH)

Nivelul transport Gestionează toate aspectele de trimitere a informaţiilor, incluzând iniţierea tranzacţiei, controlul erorilor şi verificarea secvenţierii (protocoalele TCP şi UDP)

Nivelul Internet Responsabil pentru adresarea informaţiilor, transmiterea şi fragmentarea/reasamblarea pachetelor (protocolul 1P)

Nivelul reţea Specifică modul de transmitere fizică a informaţiilor (cum ar fi Ethernet)

Fiecare nivel este construit pentru a trata informaţiile în următoarele tipuri de unităţi:

Tabelul 10.2. Unităţile de informaţie TCP/IP

Nivel Protocolul TCP Protocolul UDP Aplicaţie Transport Internet Reţea

flux segment datagram cadru (frame)

mesaj pachet datagram cadru

La transmisie, fiecare nivel adaugă la pachetele recepţionate de la nivelul inferior câte un header. în mod similar, la recepţie, fiecare nivel elimină header-\A respectiv înainte de a trimite pachetul la nivelul superior.

Operaţiile prin reţea sunt realizate de către serviciile de reţea, adică programele care efectuează o anumită operaţiune. Un serviciu este definit de combinaţia între un protocol de transport (cele mai importante fiind TCP şi UDP} şi un port, adică un număr care identifică o „locaţie" logică a conexiunii. Porturile utilizate de serviciile uzuale sunt definite în /etc/services. Numerele de protocoale atribuite protocoalelor din familia TCP/IP sunt definite în /etc/protocois.

Page 112: Administrarea Sistemelor Linux

ftp-dataftp-dataftpftpsshsshtelnettelnetsmtpsmtp

20/tcp 20/udp 21/tcp 21/udp 22/tcp 22/udp 23/tcp 23/udp 25/tcp 25/udp

mă i l mail

Page 113: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 105

Itime 37/tcp timservertime 37/udp timserver

Pe sistemele UNIX, serviciile de reţea sunt oferite de către daemoni (termenul provine din limba greacă, semnificând „spirit protector")- Daemonii sunt programe care rulează permanent în fundal (background) şi oferă diverse servicii. Daemonii mai importanţi sunt:

inetd sau xinetdInternet services daemon este cel mai important serviciu TCP/IP. Serveşte cagazdă pentru alţi daemoni. Serviciile administrate de inetd sunt definite înfişierul /etc/inetd.conf, incluzând telnet,ftp,fmger, talk ş.a.m.d.

Ipd sau cupsdServere de tipărire. Acesta primeşte cereri de tipărire locale sau de la altemaşini.

namedEste serverul care rezolvă domeniile DNS.

Sendmail, postfix sau qmailServere de distribuire a e-mail-urilor.

Informaţii privind activarea/dezactivarea serviciilor oferite de sistem se găsesc încap. 5.

10.1. Configurarea atributelor maşinii

Fişierele de configurare a atributelor maşinii sunt /etc/HOSTNAME, în care este specificat numele complet al maşinii (adică inclusiv domeniul - e.g. hercules.biosfarm.ro) şi /etc/sysconfig/network, în care se specifică numele complet şi numele domeniului:

l NETWORKING=yesl HOSTNAME=hercules.biosfarm.rol DOMAINNAME=biosfarm.ro

10.2. Configurarea echipamentelor de reţea

După ce echipamentul de reţea (placă de reţea, modem etc.) a fost instalat fizic în sistem şi mediul de conectare legat, fie trebuie încărcat modulul ce conţine driverul pentru respectivul echipament, fie trebuie reconflgurat şi recompilat nucleul Linux pentru a include driverul în cauză. Denumirile utilizate în Linux pentru dispozi -tivele de reţea uzuale sunt:

Page 114: Administrarea Sistemelor Linux

106 Administrarea şi configurarea sistemelor Linux

Tabelul 10.3. Denumirile interfeţelor de reţea uzuale

Interfaţa loopback IoPlăci de reţea Ethernet ethO, ethl etc.Legături modem ____________________________ ppp0,pppj_eic.____________

în UNIX, echipamentul de reţea este denumit interfaţă de. reţea. Configurarea interfeţei de reţea se poate face fie în mediu grafic X Window cu programul netconfig (meniul System :: Network Configuration), fie cu utilitarul ifconfig. Acesta din urmă are următoarea sintaxă:

| ifconfig interfaţă [ familie_de__adrese ] opţiuni \ adresă

Dacă interfaţă nu este specificată, ifconfig va afişa informaţii privind starea interfeţelor active. Dacă nu este specificată nici o opţiune, ci doar interfaţă, ifconfig va afişa starea interfeţei respective, în celelalte cazuri, va fi configurată interfaţa de reţea.

Famiiie_de_adrese poate lua una dintre valorile: inet (TCP/IP, valoare implicită), inet6 (IPv6), ax25 (AMPR Packet Radio), ddp (Appletalk Phase 2), ipx (Novell IPX) şi netrom (AMPR Packet Radio). Opţiunile pot fi:

up interfaţa va fi activată. Este implicită dacă este atribuită o adresă interfeţei. down

interfaţa va fi dezactivată. netmask adresă

stabileşte masca de reţea. irq număr_întrerupere

stabileşte întreruperea utilizată de dispozitiv. io_addr adresă

stabileşte adresa I/O utilizată de dispozitiv. [-] broadcast [ adresă ]

dacă adresă este specificată, stabileşte adresa de broadcast a interfeţei. Dacăparametrul nu este specificat, activează sau dezactivează câmpul de stareIFF_BROADCAST pentru interfaţă.

[-] pointopoint [ adresă ]dacă adresă este specificată, stabileşte adresa de 1P a maşinii cu care se faceconexiunea punct-la-punct (cum ar fi PPP) şi activează acest mod deconexiune. Dacă parametrul nu este specificat, activează câmpul de stareIFF_POINTOPOINT pentru interfaţă.Adresă reprezintă adresa IP atribuită interfeţei.

Page 115: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 107

De exemplu, pentru configurarea şi activarea plăcii de reţea Ethernet ethO, cu adresa 193.226.26.9, vom folosi comanda:

ifconfig ethO 193 .226 .26 .9 netmask 255.255.255.0 broadcast 1S3.226.26.255 upIFişierele de configurare a interfeţelor de reţea se găsesc în directorul /etc/

sysconfig/network-scripts şi poartă nume de forma ifcfg-nume_dispozitiv (de exemplu, ifcfg-etho). Pentru detalii, a se vedea secţiunea 10.6.

10.3. Opţiuni de rutare

Rularea este operaţiunea de trimitere a pachetelor de date de la o reţea la alta. Rulările pot fi:

• Dacă reţeaua nu conţine subretele, nu este necesară nici o rutare explicită.• Rulări statice, folosite pentru reţele de dimensiuni mici sau medii, având

calea origine - destinaţie relativ simplă.• Rulări dinamice, în care căile spre destinaţie sunt determinate Ia momentul

trimiterii pachetelor, prin protocoale de rutare, pentru care se folosescdaemonii rouled şi gated.

Rulările statice pot fi gestionate folosind utilitarul route, având sintaxa:

route [ opţiuni ]route [ -v ] [ -A familie } add [ -net l -host ] deşt [ opţiuni ]route [ -v ] [ -A familie ] del [ -net ! -host ] deşt [ opţiuni ]

Prima variantă afişează tabela de rutare, permiţând opţiunile:-v afişează informaţii suplimentare-n afişează adrese numerice în loc de nume

A doua variantă permite adăugarea de rutări statice. Opţiuni: -v afişează informaţii suplimentare "A familie

specifică familia de adrese. Vezi supra, la ifconfig, familiile de adrese -net specifică faptul că deşt este o reţea -host specifică faptul că deşt este o maşinădeşt reprezintă adresa reţelei sau maşinii-destinaţie, fie numerică, fie prin nume netmask adresă

utilizează această mască atunci când se adaugă o rutare. default

stabileşte rutarea implicită, care va fi utilizată atunci când nu există nici oaltă rutare către destinaţie

Page 116: Administrarea Sistemelor Linux

108 Administrarea şi configurarea sistemelor Linux

gw gatewct)'rutează pachetele printr-un gateway. Calea către acesta trebuie să fie definităîn prealabil, stabilind în general o rutare statică spre el dev

dispozitivasociază rutarea cu dispozitivul specificat, în mod normal, specificareaacestui parametru nu este necesară.

Câteva exemple:

| route add -net 192.130.21.0 netinas k 255.255.255.0 dev ethl

adaugă o rutare către reţeaua 192.130.21.0 prin placa de reţea ethl.

| route add default gw zeas.biosfarm.ro

adaugă o rutare implicită (utilizată atunci când nu există o altă rutare) prin maşina zetis. biosfarm.ro.

10.4. Verificarea funcţionării reţelei

Prima verificare care trebuie făcută după configurarea interfeţelor de reţea şi stabilirea rulărilor este dacă interfeţele de reţea sunt activate şi au parametrii corecţi. Aceasta se face tot cu ajutorul utilitarului ifconfig. Dacă se specifică drept parametru numele interfeţei, se vor afişa informaţiile de stare referitoare doar la respectiva interfaţă. Dacă nu este introdus nici un parametru, vor fi afişate informaţii despre toate interfeţele active.

Iată un exemplu de execuţie a comenzii ifconfig:

ethO Link encap:Ethernet HWaddr 00:EO:29:25:53:41inet addr:10.0.0.1 Bcast:200.O.O.255 Mask:255.255.255 . OUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:!RX packets:57497219 errors:0 dropped:0 overruns:0 frame:3TX packets:53415959 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100RX bytes:4087849514 (3898.4 Mb) TX bytes:4227682795 (4031.8 Mb)Interrupt:!! Base address:Oxe400

Lo Link encap:Local Loopbackinet addr:127.0.0.l Mask:255.O.O.OUP LOOPBACK RUNNING MTU:16436 Metric:!RX packets:1467483 errors:O dropped:0 overruns:0 frame:0TX packets:1467483 errors:O dropped:0 overruns:O carrier:0collisions:0 txqueuelen:ORX bytes:437242723 ( 4 1 6 . 9 Mb) TX bytes:437242723 ( 4 1 6 . 9 Mb)

pppO Link encap:Point-to-Point Protocolinet addr:192.130.21.14 P-t-P:192.130.78.14 Mask:255.255. 255.255

Page 117: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 109

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1064 Metric:! RX packets : 16682 errors:O dropped:0 overruns:0 frame:O TX packets:16998 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes: 9140239 (8 .7 Mb) TX bytes:2061425 (1.9 Mb)

A doua verificare este corectitudinea rulărilor. Tabelele de rutare pot fi con -sultate tot cu programul route:

Kernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use IfaceIeasedl4.nemeşi * 255.255.255.255 UH O 00 pppO10.0.0.0 * 255.255.255.0 U O 00 ethO127.0.0.0 * 255.0.0.0 U O O O Iodefault Ieasedl4.nemeşi 0 .0 .0 .0 UG O O O pppO

A treia verificare ce trebuie făcută este accesibilitatea efectivă a altei maşini, pentru care se foloseşte de regulă programul ping, ce primeşte ca parametru numele maşinii-destinaţie sau adresa sa de IP:

PING metalab.unc.edu (152.2.210.81) from 192.130.21.14 : 56(84}bytes of data.64 bytes from metalab.unc.edu (152.2 .210.81) : icmp_seq=0 ttl=235time-281.878 msec64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=l ttl=235time=268.268 msec64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=2 ttl=235time=248.270 msec64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=3 ttl=235time=278.304 msec64 bytes from metalab.unc.edu (152.2.210.81): icmp_seq=4 ttl=235time=268.304 msec64 bytes from metalab.unc.edu (152.2 .210.81) : icmp_seq=5 ttl=235time=267.780 msec64 bytes from metalab.unc.edu (152.2 .210.81) : icmp_seq=6 ttl=235time=268.250 msec

— metalab.unc.edu ping s ta t is t ics ---7 packets transmitted, 7 packets received, 0% packet loss round-trip min/avg/max/mdev = 248.270/268.722/281.878/9.889 ms

Poate fi utilizată şi comanda traceroute, care afişează toate maşinile prin care trece pachetul în ruta sa către destinaţie:

traceroute to fenrir.info.uaic.ro (193.231.30.197), 30 hops max, 38 byte packets1 esc26.leased.dntis.ro (172.21.33.155) 140.673 ms 139.693 ms

139.954 ms2 ciscoO.dntis.ro (193.226.30.30) 140.119 ms 166.454 ms

141.181 ms

Page 118: Administrarea Sistemelor Linux

110 Administrarea şi configurarea sistemelor Linux

Page 119: Administrarea Sistemelor Linux

3 route.dntis.ro ( 1 9 3 . 2 2 6 . 3 0 . 1 7 ) 139.930 ms 138.031 ms150.607 ms4 cisco-gw-escape.dntis.ro ( 1 9 3 . 2 2 6 . 3 0 . 1 4 5 ) 139.281 ms 137.995

ms 139.889 ms5 * roedu-to-dntis.dntis.ro ( 1 9 3 . 2 2 6 . 3 0 . 1 2 2 ) 138.228 ms

168.003 ms6 gw-rnan.iasi.roedu.net ( 1 9 3 . 2 3 1 . 1 4 0 . 2 ) 1 3 9 . 9 1 0 ms 137.972 ms

139.919 ms7 217.73.168.10 ( 2 1 7 . 7 3 . 1 6 8 . 1 0 ) 139.952 ms 138.323 ms *8 gw-masterc.uaic.ro ( 1 9 3 . 2 2 6 . 2 3 . 1 1 6 ) 144.437 ms 138.039 ms

139.908 ms9 gate-info.uaic.ro ( 1 9 3 . 2 3 1 . 3 0 . 1 5 ) 149.912 ms * 140.091 ms

10.5. Rezolvarea numelor de maşină

Pentru a putea identifica o maşină din reţea, sistemul trebuie să îi determine mai întâi adresa IP. Există două modalităţi în care aceasta poate fi determinată:

• căutând numele în fişierul /etc/hosts;• apelând serverul DNS (vezi infrd) care va rezolva adresa.

Dacă maşina nu este legată permanent la reţea sau se găseşte într-o reţea de dimensiuni mici, nu este necesară configurarea decât a /etc/hosts.

Fişierul /etc/hosts conţine lista de maşini aflate în reţeaua locală, inclusiv maşina locală. Iată un fişier exemplu de pe maşina access.biosfarm.ro:

Page 120: Administrarea Sistemelor Linux

127.0.0.1 localhost 10.0.0.1 access 10.0.0.2 hercules 10.0.0.3 secretariat 10.0.0.4 comenzi

193.226.30.8 ftp

193.226.30.15 mail

localhost.localdomain access.biosfarm.ro hercules.biosfarm.ro secretariat.biosfarm.ro comenzi.biosfarm.ro

ftp.dntis.ro mail.dntis.ro

Page 121: Administrarea Sistemelor Linux

Fişierul /etc/host.conf conţine configurarea modului în care vor fi rezolvate numele:

| order=hosts,bind

stabileşte că numele maşinii va fi căutat mai întâi în /etc/hosts, iar dacă nu este găsit, se va apela la serviciile unui server DNS (Domain Name Server). Lista de servere DNS se configurează în fişierul /etc/resolv.conf:

l search biosfarm.ro dntis.ro l nameserver 193.226.30.2 l nameserver 193.226.30.6

Page 122: Administrarea Sistemelor Linux

______________________Configurări de baza ale sistemului _________________________ 111

Sunt recunoscute următoarele directive principale:

domain stabileşte numele domeniului local (în care se află maşina).nameserver adresa IP a unui server DNS la al cărui serviciu va fi făcut apel.

Pot fi specificate mai multe directive nameserver. Dacă primul server nu răspunde cererii, va fi apelat al doilea ş.a.m.d., în ordinea apariţiei în fişier.

search lista de domenii în care va fi căutat numele, separate prin spaţii sau tab-uri. în exemplul nostru, dacă este căutată maşina numită main, va fi testat mai întâi numele main.biosfarm.ro, iar dacă aceasta nu există, main.dntis.ro.

Pentru alte directive, recomandăm consultarea mân resoiv. conf. Configurarea maşinii ca server Dl^JS este prezentată în partea III, cap. 6.

10.6. Scripturţ pentru configurarea reţelei

După cum am menţionat mai sus, fişierele de configurare a interfeţelor de reţea se gisesc în directorul /etc/sysconf ig/network-scripts şi poartă nume de forma ifcfg-nume_dispozitiv. Aceste fişiere sunt alcătuite dintr-o serie de opţiuni, dintre care cele mai uzuale sunt:

DEVICE = numejnterfaţăSpecifică numele dispozitivului Ia care se referă opţiunile (de exemplu, ethO,pppO etc.).

IPADDR = adresăStabileşte adresa IP asociată dispozitivului.

NETMASK = adresăStabileşte masca de reţea.

BROADCAST = adresăStabileşte adresa de broadcast.

NETWORK = adresăSpecifică adresa reţelei.

ONBOOT = valStabileşte dacă interfaţa de reţea va fi activată în mod automat la pornireasistemului de operare.

Interfaţa de reţea poate fi activată prin comanda ifup nume_interfaţă şidezactivată prin ifdown nume_interfaţă.

Redăm mai jos un fişier de configurare pentru placa de reţea ethO:

Page 123: Administrarea Sistemelor Linux

112 Administrarea şi configurarea sistemelor Linux

DEVICE=ethO IPADDR=10.0.0.11 NETMASK=255.255.255.O BROADCAST=10.0 . 0 . 255 NETWORK=10.0.0.0 ONBOOT=yes

10.7. Configurarea conexiunilor PPP

Protocolul PPP (Point to Point Protocol) este utilizat pentru conexiunile prin modem sau cablu direct (nuli modem). Majoritatea furnizorilor de servicii Internet oferă acces dial-up (conexiune prin linie telefonică obişnuită, prin intermediul unui modem) prin protocolul PPP. Acesta este implementat în Linux sub forma daemonului pppd.

Pentru utilizarea acestui protocol, nucleul trebuie compilat cu următoarele opţiuni activate:

Network device supporto PPP (point-to-point protocol) support o PPP support for async serial ports o PPP Deflate compression o PPP BSD-Cortvpress compression

Daemonul pppd are următoarea sintaxă:

| pppd [ dispozitiv ] [ viteză ] [ opţiuni ]

undedispozitiv reprezintă numele dispozitivului prin care se face

comunicaţia (e.g. /dev/ttyso).viteză specifică viteza de comunicaţie (baud rate).auth solicită maşina de la distanţă să se autentifice înainte de a

realiza legătura.caii fişier citeşte opţiunile din fişierul specificat, anume

/etc/ppp/peers/fişier.

connect script utilizează scriptul specificat pentru a stabili legătura, în mod normal, scriptul utilizează programul chat.

crtscts utilizează controlul hardware al fluxului de date.defaultroute creează o rutare implicită, utilizând maşina de la distanţă ca

gateway.disconnect script specifică un script care va fi executat la terminarea legăturii

PPP.

Page 124: Administrarea Sistemelor Linux

Configurări de bază ale sistemului ,13

Page 125: Administrarea Sistemelor Linux

fllefişier initfişier

lock

adresăjocală:

debug

demand idle

timp

logflle fişier

login

maxfail n

netmask mascănoauthnocrtsctsnodefaultroute

papcrypt

persist refuse-

chap refuse-

pap user nume

xonxoff

citeşte opţiunile din fişierul specificat, execută scriptul specificat pentru a iniţializa linia serială (de exemplu, pentru a seta modemul pe răspuns automat), creează un fişier de blocare, pentru a asigura accesul exclusiv asupra dispozitivului. adresa_maşinii_de_la_distanţă

stabileşte adresa IP a maşinii locale, respectiv aflată ladistanţă, pe care o va avea interfaţa PPP după activare.Oricare din cele două adrese poate fi omisă.activează mesajele de depanare. Acestea sunt jurnal izate prinintermediul serviciului syslog, clasa daemon şi niveluldebug.iniţiază legătura la cerere, adică atunci când apare trafic prinlegătura PPP.încheie legătura PPP atunci când nu s-au efectuat transferuride date prin interfaţă în perioada de timp specificată,exprimată în secunde.trimite mesajele de jurnalizare şi către fişierul specificat, pelângă syslog.utilizează baza de date de utilizatori pentru a autentificautilizatorul în sistem, folosind sistemul PAP (PasswordAuthentication Protocol). De asemenea, acesta trebuie să fieprezent în fişierul /etc/ppp/pap-secrets.stabileşte numărul maxim de reîncercări de conectare.Valoarea O reprezintă infinit. Implicit: 10.stabileşte masca de reţea pe care o va avea interfaţa PPP.nu solicită maşinii aflate la distanţă să se autentifice.nu utilizează controlul hardware al fluxului de date.dezactivează opţiunea defaultroute.indică faptul că parolele din fişierul /etc/ppp/pap-secretssunt criptate.nu termină execuţia pppd după încheierea conexiunii, ciîncearcă reconectarea.refuză maşinii aflate la distanţă autentificarea prin sistemulCHAP (Challenge Handshake Authentication Protocol).refuză maşinii aflate la distanţă autentificarea prin sistemulPAP.stabileşte numele cu care se va face autentificarea pe maşinaaflată la distanţă.utilizează controlul software al fluxului de date.

După cum am văzut mai sus, daemonu\ pppd utilizează fişierul /etc/ppp/pap-pentru autentificarea PAP, respectiv /etc/ppp/chap-secrets pentru

Page 126: Administrarea Sistemelor Linux

114 ____________________ Administrarea şi configurarea sistemelor Linux _______________________

autentificarea CHAP, pentru memorarea parolelor (secrets). Acestea pot fi utilizate atât pentru a se autentifica pe alte sisteme, cât şi pentru a autentifica alte maşini în vederea conectării. Fiecare linie conţine câte o parolă, având cel puţin trei câmpuri: numele clientului, numele serverului şi parola propriu-zisă. Pentru numele clientului sau serverului poate fi utilizat şi caracterul „*", care semnifică orice nume. După aceste trei câmpuri, poate urma, opţional, o listă de adrese IP care sunt acceptate pentru clientul specificat. Dacă prima adresă este „-", nu este permisă nici o adresă, iar dacă este „*", este permisă orice adresă. Dacă o adresă începe cu „!", respectiva adresă nu este acceptată.

Dacă este specificată opţiunea login, parola va fi verificată şi cu cea din baza de date a sistemului (/etc/passwd sau /etc/shadow). Fişierul pap-secrets poate fi folosit în acest caz pentru a limita accesul doar la anumiţi utilizatori şi un set de adrese IP care poate fi folosit de aceştia, în general, parola din pap-secrets este "". pentru a nu fi nevoie ca parola să fie menţionată în două locuri.

Am amintit mai sus de opţiunea connect, care primeşte ca parametru un script ce foloseşte programul chat. Programul chat are rolul de a procesa un script ce foloseşte un model de tipul expect-send. Programul aşteaptă şirul expect, iar când îl primeşte, trimite şirul senă. De exemplu, dacă se doreşte ca chat să aştepte şirul Login: la care să răspundă cu numele utilizatorului, apoi să aştepte şirul Password: şi să trimită parola, se va folosi:

ogin: dragos word: parolăI

Se remarcă omiterea primelor caractere, pentru ca verificarea şirului să reuşească chiar dacă textul primit este puţin diferit. Pot fi utilizate următoarele şiruri speciale:

TIMEOUTtimp Stabileşte timpul maxim cât chat va aştepta apariţia şirului specificat, exprimat în secunde. Implicit: 45.

ABORTşir Stabileşte şirul care îl trimite modemul atunci când seîncheie conexiunea (de exemplu: NO CARRIER). Pot fi menţionate mai multe asemenea specificaţii ABORT.

Client PPP

Configurarea legăturii prin linie telefonică cu un furnizor de servicii Internet (client PPP) se poate face cu ajutorul interfeţei grafice KPPP. Aceasta permite suplimentar contorizarea timpilor de conectare, traficului efectuat, realizarea de grafice de trafic, precum şi gestionarea mai multor conexiuni PPP la diferiţi furnizori de servicii:

Page 127: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 115

Page 128: Administrarea Sistemelor Linux
Page 129: Administrarea Sistemelor Linux

Figura 10.1. Programul KPPP

Acest program poate fi executat fie din meniul Internet:: Dialup Configuration (pe sistemele Red Hat), fie din Nefworking :: Remote access :: Internet Dialer (pe Mandrake), fie din linia de comandă cu kppp s.

Page 130: Administrarea Sistemelor Linux

116 Administrarea şi configurarea sistemelor Linux

Vom prezenta în continuare un script chat uzual:

'ABORT' 'BUSY''ABORT' 'ERROR1

'ABORT1 'NO CARRIER''ABORT' 'NO DIALTONE''ABORT' 'Invalid Login''ABORT' 'Login incorrect'11 'ATZ''OK' 'ATZ''OK' 'ATDT123456''CONNECT' ''

După cum se observă, sunt definite mai întâi şirurile pentru care se consideră ABORT (închiderea conexiunii). Se trimite apoi modemului şirul ATZ (resetarea acestuia) şi se aşteaptă OK. Se formează numărul de telefon prin comanda ATDT123456 şi se aşteaptă CONNECT. Trimiterea numelui şi parolei nu trebuie efectuată decât dacă autentificarea se face prin CHAP, caz în care la sfârşit ar trebui introdusă secvenţa:

'ogin:' 'dragos' 'word:' vparola'IProgramul/7p/tt/ poate fi executat cu o linie de comandă ca mai jos:

/usr/sbin/pppd connect "/usr/sbin/chat chat-script" crtscts defaultroute /dev/ttySO 33600IDupă conectare, pppd va deveni daemon, adică îşi va continua execuţia fără a

mai fi legat de terminalul de unde a fost pornit în execuţie. Oprirea conexiunii se face trimiţând procesului pppd fie semnalul SIGHUP, care opreşte conexiunea şi închide portul serial (dacă s-a specificat opţiunea persist, pppd va reîncerca conectarea, dacă nu îşi va încheia execuţia), fie semnalele SIGINT sau SIGTERM, care închid conexiunea şi termină execuţia daemonului.

în mod uzual, se utilizează un script care face conectarea, apelând pppd. De asemenea, se folosesc în mod obişnuit scripturile aflate în /etc/sysconfig/network-scripts, şi anume ifup-ppp, respectiv ifdown-ppp. Acestea vor fi apelate atunci când se execută comanda (mai precis scriptul) ifuppppO. Configurările utilizate de aceste scripturi se găsesc în fişierul ifcfg-pppo. Sunt recunoscute, pe lângă opţiunile generale descrise în paragraful 10.5, următoarele opţiuni, care vor fi transmise daemonului pppd:

MODEMPORT - dispozitivNumele dispozitivului pe care este conectat modemul.

LINESPEED = vitezăViteza liniei seriale.

Page 131: Administrarea Sistemelor Linux

lConfigurări de bază ale sistemului 117

HARDFLOWCTL = valActivează/dezactivează controlul hardware al fluxului de date (opţiuneacrtscts).

PERSIST = val

Activează/dezactivează permanenţa conexiunii (opţiuneapersist). DEFROUTE = val

Echivalentul opţiunii defaultroute. DEMAND = val

Echivalentul opţiunii demand. DEBUG = val

Echivalentul opţiunii debug. PPPOPTIONS = opţiuni

Alte opţiuni pppd. PAPNAME = nume

Echivalentul opţiunii user. REM1P = adresă

Adresa IP a maşinii aflate la distanţă. IPADDR = adresă

Adresa IP locală. NETMASK = adresă

Masca de reţea locală.

Iată o configuraţie tipică:

DEVICE=pppOMODEMPORT=/dev/ttySlLINESPEED=115200HARDFLOWCTL=yesONBOOT=noPERSIST=noDEFROUTE=yes

Poate fi utilizat şi programul wvdial, care elimină necesitatea realizării de scripturi sau de cunoaştere detaliată a opţiunilor pppd. Acesta se configurează prin intermediul fişierului /etc/wvdial.conf, alcătuit din una sau mai multe secţiuni, fiecare conţinând opţiuni, după cum urmează:

Modem Numele dispozitivului pe care este conectat modemul.

Implicit: /dev/modem.Baud Viteza de comunicaţie. Implicit: 57600.Initl... Init9 Şirurile de iniţializare a modemului, care vor fi trimise

Page 132: Administrarea Sistemelor Linux

înainte de formarea numărului de telefon.

Phone

Numărul

de telefon ce va fi format.Area Code Codul de zonă care va fi introdus în faţa numărului de

telefon.

Page 133: Administrarea Sistemelor Linux

118 Administrarea şi configurarea sistemelor Linux

Dial Prefix Prefixul care va fi introdus în faţa numărului de telefon.Dial Command Şirul utilizat pentru a comanda modemului să formeze

numărul. Implicit: ATDT.Login Numele utilizatorului cu care se va face autentificarea pe

maşina aflată la distanţă.Password Parola cu care se va face autentificarea.Login Prompt Şirul de caractere trimis de maşina aflată la distanţă înainte

de autentificare. Password Prompt Şirul de caractere trimis de maşina aflată la distanţă înainte

de a trimite parola.Force Address Stabileşte adresa IP care va fi asociată interfeţei PPP. Remote Name Stabileşte tipul autentificării: CHAP sau PAP. Implicit: *. Auto Reconnect Restabileşte conexiunea dacă aceasta s-a încheiat.

în continuare prezentăm un exemplu de fişier /etc/wvdiai. conf:

[Dialer Defaults] Modem = /dev/ttySl Baud = 115200 Initl = ATZ Dial Command = ATDT Phone = 123456 Username = dragos Password = test

Server PPP

Pentru a permite altor utilizatori să se conecteze la maşina locală, prin intermediul unei legături PPP, trebuie ca daemonul pppd să fie activ. Iată un exemplu de apelare apppd:

| pppd -detach crtscts auth login persist 10 .0 .0 .1 :10 .0 .0 .12

Autentificarea se va face prin intermediul bazei de date de utilizatori de pe maşina locală, cu menţiunea că utilizatorii ce pot iniţia conexiunea PPP trebuie menţionaţi în fişierul /etc/ppp/pap-secrets. Maşina care solicită conexiunea va primi adresa IP 10.0.0.12.

Page 134: Administrarea Sistemelor Linux

11. Realizarea de copii de siguranţă

Pierderile de informaţii pot fi cauzate de diferite cauze:• utilizatorii îşi pot şterge propriile fişiere în mod accidental, inclusiv fişiere

de configurare;• o eroare (bug) într-un program poate duce la coruperea datelor;• o cădere a unui echipament poate cauza pierderea de informaţii. Pentru

preîntâmpinarea acestui tip de evenimente poate fi utilizată şi tehnologiaRAID, în sistem mirroring.

Pentru a preveni aceste pierderi de informaţii, administratorul de reţea trebuie să efectueze în mod regulat copii de siguranţă cel puţin pentru următoarele date:

• fişierele de configurare ale sistemului;• imaginea nucleului Linux, precum şi fişierul de configurare a acestuia

(.config);

• fişierele-jurnal ale sistemului (directorul /var/log, precum şi altele, dacăeste cazul);

• mesajele utilizatorilor (/var/spool/mail);• bazele de date (/var/lib/pgsql, /var/lib/mysql etc.);

• directoarele home ale utilizatorilor (dacă spaţiul de pe mediul de salvarepermite acest lucru);

• alte informaţii, după caz.

Dacă spaţiul de pe mediul-destinaţie permite, poate fi salvat chiar şi întregul conţinut al discurilor fixe din sistem.

Salvările trebuie făcute la un interval stabilit de timp, iar mediul pe care se efectuează să fie sigur şi să se păstreze într-un loc sigur. De asemenea, sistemul de salvare trebuie să poată permite extragerea cu uşurinţă a informaţiilor.

Salvarea trebuie efectuată de preferinţă atunci când sistemul are un nivel de încărcare şi un număr de utilizatori minime (spre exemplu, noaptea). Frecvenţa salvării se stabileşte funcţie de frecvenţa modificărilor informaţiilor ce vor fi salvate (zilnic, săptămânal etc.). Salvarea automată poate fi făcută cu ajutorul serviciului cron.

Mediile de stocare pe care pot fi efectuate salvări de siguranţă sunt:

Banda magneticăBanda magnetică este mediul tradiţional de salvare a datelor, în ciuda acestui fapt, unităţile de bandă magnetică sunt relativ scumpe. Avantajele utilizării

Page 135: Administrarea Sistemelor Linux

120 Administrarea şi configurarea sistemelor Linux

benzilor magnetice este comoditatea de manipulare (salvarea poate fi făcută complet automat), capacitatea mare de stocare (pornind de la l GB), fiabilitate, număr mare de rescrieri. Dezavantajele sunt costul ridicat al unităţilor de bandă şi relativ slaba siguranţă a informaţiei (casetele de bandă trebuie stocate într-un mediu fără praf, fără emisii magnetice, fără umiditate şi fără căldură excesivă).

CD-ROMCD-urile reprezintă o modalitate foarte bună de salvare a datelor, avantajele fiind costul mic al unităţilor CD-RW, precum şi al CD-urilor, şi siguranţa sporită a informaţiilor (un CD poate rezista chiar şi câteva zeci de ani). Utilizarea CD-urilor rewritable este şi mai avantajoasă, salvarea putând fi făcută automat. Numărul de reinscripţionări al unui CD-RW este însă mic, ceea ce constituie un dezavantaj.

Hard-diskEste o soluţie avantajoasă din punctul de vedere al costului şi al modului de manipulare. Salvarea trebuie făcută pe alt hard-disk decât cel pe care se află datele propriu-zise.

Disc opticDiscurile optice sunt medii foarte sigure, însă costul unităţilor optice este foarte ridicat.

DisketăPentru salvări de dimensiuni foarte mici pot fi utilizate diskete, avantajul fiind costul foarte redus. Dezavantajul este capacitatea mică a acestora şi siguranţa extrem de slabă a informaţiilor.

11.1. Salvări de siguranţă cu tar

Una dintre posibilităţile de a face copii de siguranţă este programul de arhivare tar {tape archiver).

De exemplu, comanda:

| # tar -cf backup.tar /etc /var/log

va crea arhiva backup.tar conţinând directoarele /etc şi /var/log, memorând căile absolute ale fişierelor.

Dacă se doreşte comprimarea arhivei rezultate, se poate utiliza comanda gzip -9 backup.tar (pentru comprimare cu gzip, parametrul -9 activează compresia maximă) sau bzip2 -9 backup.tar (bzip2 oferă algoritmi mai buni de comprimare decât gzip). Fişierul rezultat va fi backup.tar.gz, respectiv backup.tar.bz2. Pentru comprimare simultană cu arhivarea se va folosi:

| # tar -zcf backup.tar.gz /etc /var/log

Page 136: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 121

respectiv

| t tar -jcfps backup.tar.bz2 /etc /var/log

Opţiunea „p" semnifică păstrarea drepturilor de acces ale fişierelor, iar „s" -păstrarea utilizatorilor şi grupurilor. Arhiva rezultată urmează a fi copiată pe mediul de salvare.

Restaurarea conţinutului dintr-o arhivă tar (utilizând directoare absolute, adică fişierele vor fi localizate în directoarele de origine) se face cu:

| # tar -Pxf backup.tar

Atunci când se doreşte extragerea unui anume fişier dintr-o arhivă comprimată cu bzip2:

| l tar -jxf backup.tar.bz2 -p /var/log/maillog

Pentru mai multe informaţii despre comanda tar, recomandăm consultarea mântar.

11.2. Salvări de siguranţă cu du m p

Salvarea de siguranţă cu dump

Utilitarul dump oferă posibilităţi mai complexe pentru efectuarea de copii de siguranţă. Sintaxa acestuia este:

| dump [ opţiuni ] listă_fişiere

Programul dump decide ce fişiere trebuie salvate (vezi infrd) şi le va copia pe mediul de salvare, acesta putând fi şi pe altă maşină. Dacă dimensiunea salvării este mai mare decât capacitatea mediului de salvare, va fi împărţită în mai multe volume.

ListăJîşiere reprezintă fie locaţia de montare a unui sistem de fişiere, fie o listă de fişiere şi directoare al căror conţinut va fi salvat. Poate fi utilizat şi un nume de dispozitiv, însă acesta trebuie să fie nemontat.

Principalele opţiuni sunt:

-O ... -9 stabileşte nivelul de salvare. Pentru un nivel „n", dump va căuta în /etc/dumpupdates o intrare care raportează ultima oară când listă Jîşiere a fost salvată la nivelul n-1 sau mai mic, pentru a salva toate fişierele modificate după acea dată. Dacă n=0 (salvare

Page 137: Administrarea Sistemelor Linux

122 Administrarea şi configurarea sistemelor Linux

completă), se copiază tot conţinutul din listă Jlşiere. De asemenea, dacă /etc/dumpupdates nu conţine o intrare pentru respectiva listă la nivelul n-1 sau mai mic, dump va salva întregul conţinut. Dacă nu se specifică nivelul, se consideră ca fiind 9.

-M actualizează fişierul /etc/dumpupdates dacă salvarea s-a încheiatcu succes.

-f nume stabileşte destinaţia unde se face salvarea. Nume poate fi un nume de fişier obişnuit, un nume de dispozitiv sau - pentru ieşirea standard. Pot fi specificate mai multe nume, separate prin virgulă, caz în care fiecare fişier va fi folosit pentru câte un volum, în ordinea apariţiei. Dacă numele este de forma maşină : fişier sau utilizator@maşină : fişier, salvarea se va face pe maşina specificată, prin intermediul programului rmt.

-M activează modul multi-volum, utilizând nume ca prefix (nw/weOOl,nume002 ş.a.m.d.).

-T timp specifică momentul în care va fi început procesul de salvare.

Prima salvare care se efectuează trebuie să fie de nivel 0:

| # dump -O -u -f /dev/stO /var/iib/pgsql

Salvări de nivel O trebuie făcute la intervale mai mari de timp (o dată la câteva luni).

Restaurarea datelor salvate cu restore

Restaurarea datelor salvate se face cu restore. Acest utilitar poate restaura fişiere, directoare sau partiţii întregi. Pentru a restaura o partiţie întreagă, trebuie restaurată cea mai recentă salvare pentru fiecare nivel de salvare: cea mai recentă salvare la nivel 0. cea mai recentă la nivel l etc. Comanda restore are următoarea sintaxă:

| restore [ opţiuni } listă_fişiere

Opţiuni obligatorii:

-C compară fişierele salvate cu cele existente pe disc. Vezi opţiunea-D.

-i activează modul interactiv (linie de comandă) de operare.-r restaurează o întreagă partiţie. Partiţia-destinaţie trebuie să fie

goală. Acest parametru trebuie să fie specificat pentru restaurareafiecărui nivel de salvare în parte!

-/ listează fişierele specificate, dacă acestea există în salvare.-.v extrage toate fişierele şi directoarele specificate în directorul

curent.

Page 138: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 123

Page 139: Administrarea Sistemelor Linux

Alte opţiuni:

-Dpartiţie specifică sistemul de fişiere cu care se face verificarea prinopţiunea -C. -fnume stabileşte localizarea salvării: nume

poate fi un dispozitiv (e.g./dev/sto), o partiţie (e.g. /dev/sda2), un fişier obişnuit, sau -pentru intrarea standard. Dacă numele este de forma maşină -.fişiersau utilizator@maşină '.fişier, restaurarea se va face de pe maşinaspecificată, prin intermediul programului rmt.

-h nu extrage recursiv conţinutul directoarelor specificate.-M activează modul multi-volum, utilizând nume ca prefix (numeOOl,

nume002 etc.).-N afişează numele fişierelor, fără însă a le extrage.•Xfişier citeşte lista de fişiere şi directoare care vor fi extrase din fişier

(acesta trebuie să conţină fiecare nume pe câte o linie).

De exemplu, pentru a extrage un anumit fişier de pe bandă:

| l restore -xf /dev/stO /var/log/maillog

Informaţii mai detaliate despre dump şi restore pot fi obţinute din pagina de manual sau de la site-ul oficial, dump.sourceforge.net.

Există şi programe mai avansate, cum ar fi amanda, arkeia sau bru, care pot realiza salvările de siguranţă prin reţea, pot restaura fişiere individuale sau grupuri de fişiere, ţin evidenţa mediilor pe care se află ultimele versiuni ale fişierelor, realizează rapoarte etc.

Page 140: Administrarea Sistemelor Linux

12. Configurarea dispozitivelor hardware

12.1. Configurarea dispozitivelor IDE

In mod uzual, dacă în calculator se găsesc dispozitive IDE, trebuie activate următoarele opţiuni în nucleu:

- IDE, ATA and ATAPI Block devices• Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

Driverul pentru interfaţa IDE.Include IDE/ATA-2 DISK support

Suport pentru hard-disk-uri IDE.• Include IDE/ATAPI CDROM support

Suport pentru unităţi CD-ROM IDE.• SCSI emulation support

Emulează un dispozitiv IDE ca fiind dispozitiv SCSI. Trebuie activat atunci când în sistem se găseşte o unitate de inscripţionare CD-RW IDE, pentru ca aceasta să poată fi utilizată.

• Generic PCI bus-master DMA supportPermite transferul de informaţii prin DMA.

• Use PCI DMA by default when availableActivează detecţia automată a posibilităţii de utilizare a DMA. Există cipuri IDE care generează probleme când este folosită DMA, cazuri în care această opţiune trebuie dezactivată.

Pe lângă aceste opţiuni, trebuie selectat driverul pentru cipul IDE:

IDE chipset support/bugfixes• CMD640 chipset/bugfix support• ISA-PNP EIDE support• RZ1000 chipset/bugfix support• AEC62XX chipset support• ALI M15x3 chipset support• AMD Viper support• CMD64X chipset support• CY82C693 chipset support• Cyrix CS5530 MediaGX chipset support• HPT34X chipset support• HPT366 chipset support

Page 141: Administrarea Sistemelor Linux

____________Configurări de bază ale sistemului ___________________________ 125

Intel PlIXn chipsets support• PlIXn Tunning support

NS87415 chipset supportOPTi 82C621 chipset enhanced support PROMISE PDC202{46!62|65|67|68} support ServerWorks OSB4/CSB5 chipsets support SiS5513 chipset support SLC90E66 chipset support Tekram TRM290 chipset support VIA82CXXX chipset support Support for IDE Raid controllers

• Support Promise software RAID• Highpoint 370 software RAID

Numele dispozitivelor IDE sunt hda (primul dispozitiv IDE), hdb (al doilea dispozitiv IDE) etc.

Pentru ca un dispozitiv IDE să fie tratat ca dispozitiv SCSI, trebuie utilizat parametrul:

| hdx=scsi

unde x poate fi a, b etc.Configurarea parametrilor dispozitivelor IDE se poate face prin intermediul

sistemului /proc — pentru detalii, a se consulta partea III, cap. 13. Parametrii hard-disk-urilor IDE pot fi modificaţi cu ajutorul utilitarului hdparm. Acesta are următoarea sintaxă:

| hdparm [ opţiuni ] nume_dispozitiv

unde opţiuni pot fi:-A val activează/dezactivează facilităţi de citire în avans a informaţiilor de

pe disc. Parametrul val poate fi O pentru activare, respectiv lpentru dezactivare;

-B afişează setările APM(Advanced Power Management);-c val activează/dezactivează transferurile pe 32 biţi;-C afişează starea APM a discului: active/idle (operare normală),

standby (consum redus de energie, cu turaţie redusă) sau sleeping(consum redus de energie, având motorul oprit);

-d val activează/dezactivează transferurile de date prin intermediul DMA.-g afişează geometria discului;-/ afişează informaţiile privind identificarea discului (producător,

geometrie etc.);-r setează sau nu modul read-only (numai citire) pentru disc;-S val stabileşte timpul de inactivitate după care discul va fi trecut în mod

de consum redus de energie. Valoarea parametrului val poate fi O

Page 142: Administrarea Sistemelor Linux

126 Administrarea şi configurarea sistemelor Linux

pentru dezactivarea acestei facilităţi, între l şi 240 pentru aspecifica multipli de 5 secunde sau între 241 şi 251 pentru aspecifica 1-11 unităţi de 30 de minute; -Wval

activează/dezactivează facilitatea de menţinere a datelor ceurmează a fi scrise într-un buffer intern (cache) al discului. Poatemări riscul pierderii de informaţii în cazul întreruperii tensiunii dealimentare!

-Xval stabileşte modul de transfer al informaţiilor. Se utilizează îngeneral împreună cu opţiunea -d. Parametrul val poate lua valoriastfel:

• mod P IO: numărul modului PIO plus 8;• mod DMA: tipul de transfer DMA plus 32;• mod UltraDMA: tipul de transfer UltraDMA plus 64.

A se consulta o documentaţie despre hardware PC pentru detalii privind modurile de transfer prin interfaţa IDE. Setarea unui parametru care nu corespunde facilităţilor oferite de disc (de exemplu, ATA66 atunci când discul este UDMA33) poate conduce la alterarea informaţiilor stocate pe hard-disk!

Spre exemplu, comanda hdparm -s 241 -d i -x 66 /dev/hda va stabili timpul de oprire a primului disc IDE în caz de inactivitate la 30 de minute, va activa transferurile prin intermediul DMA şi va seta discul în mod ATA66.

12.2. Configurarea dispozitivelor SCSI

Dacă în calculator se găsesc dispozitive SCSI legate la o placă SCSI, trebuie activate următoarele opţiuni în nucleu:

- SCSI support• SCSI disk support

Include suport pentru hard-disk-uri SCSI.• SCSI tape support

Oferă suport pentru unităţi de bandă SCSI.• SCSI CD-ROM support

Include suport pentru unităţi CD-ROM SCSI.• SCSI generic support

Oferă suport pentru dispozitive SCSI generice (cum ar fi scannere, unităţi CD-RW etc.).

• Probe all LUNs on each SCSI device

Testează toate numerele de unitate (Logica! Unit Numbers), oferind astfel suport pentru dispozitivele care au mai multe unităţi incluse (de exemplu, CD Chargere).

Page 143: Administrarea Sistemelor Linux

lConfigurări de bază ale sistemului 127

• Verbose SCSI error reporting

Detaliază mesajele de eroare SCSI.• SCSI logging facility

Emite mesaje de depanare generate de sistemul SCSI. Pe lângă

aceste opţiuni, trebuie selectat driverul pentru placa SCSI din sistem:

• SCSI low-level drivers• 3ware Hardware ATA-RAID support• 7000FASST SCSI support• ACARD SCSI support• Adaptec AHA152X/2825 support• Adaptec AHA1542 support• Adaptec AHA1740 support• Adaptec AACRAID support• Adaptec AIC7xxx support• Adaptec 120 RAID support• AdvanSys SCSI support• Always IN2000 SCSI support• AM53/79C974 PCI SCSI support• AMI MegaRAID support• BusLogic SCSI support• Compaq Fibre Channel 64-bit/66Mhz HBA support• DMX3191D SCSI support• DTC3180/3280 SCSI support• EATA ISA/EISA/PCI (DPT and generic

EATA/DMA-compliant boards) support

• Future Domain 16xx SCSI/AHA-2920A support• Intel/ICP (former GDT SCSI Disk Array)

RAIDController support

• Generic NCR5380/53c400 SCSI support• IBM ServeRAID support• Initio 9100U(W) support• Initio INI-A100U2W support• IOMEGA parallel port• NCR53c406a SCSI support• NCR53c7,8xx SCSI support• SYM53C8XX Version 2 SCSI support• PAS16 SCSI support• PCI2000 support• PCI2220i support• ' PSI240i support• Qlogic FÂS SCSI support• Qlogic ISP SCSI support• Qlogic ISP FC SCSI support• Qlogic QLA 1280 SCSI support

Page 144: Administrarea Sistemelor Linux

128 Administrarea şi configurarea sistemelor Linux

• Seagate ST-02 and Future Domain TMC-8xx SCSIsupport

• Simple 53c710 SCSI support (Compaq, NCRmachines)

• Symbios 53c416 SCSI support• Tekram DC390(T) and Am53/79C974 SCSI support• Trântor T128/T128F/T228 SCSI support• UltraStor 14F/34F support• UltraStor SCSI support

Numele dispozitivelor SCSI sunt:• hard-disk-uri: sda, sdb etc.;• unităţi CD-ROM: scdO, scdl etc.;• unităţi de bandă: stO, stl etc.;• dispozitive generice: sgO, sgl etc.

12.3. Configurarea imprimantelor

Pentru utilizarea imprimantelor conectate la portul paralel al calculatorului trebuie activate următoarele opţiuni în nucleu:

Parallel port support• PC-style hardware

Opţional pot fi activate şi opţiunile:

Use FIFO/DMA if available

Activează suportul pentru transferul datelor prin DMA.• Multi-IO cards (parallel and serial)

Suport pentru plăci multi-I/O PCI.• SuperlO chipset support

Oferă suport pentru cipuri de tip SuperlO.

- Character devices• Parallel printer support

Numele dispozitivelor pentru portul paralel sunt IpO, Ipl etc. (echivalente notaţiilor DOS/Windows LPT1, LPT2 etc.).

Driverul de port paralel poate primi ca parametru:

| parport=porfc[[,irq] , dma} . . .

Opţiunile definesc, în ordinea apariţiei, parametrii porturilor paralele.

Page 145: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 129

Pentru imprimante conectate la portul USB:

- Support for USB• USB Printer support

Pentru tipărirea la imprimantă trebuie folosit un serviciu specializat - pentru detalii, a se consulta partea III, cap. l.

12.4. Configurarea porturilor .seriale

Pentru a utiliza porturile seriale ale sistemului, trebuie activate următoarele opţiuni:

- Character devices• Standard/generic (8250/16550 and compatible UARTs)

serial support

Driverul p'entru portul serial standard.• Extended dumb serial driver options

Stabileşte anumite opţiuni extinse pentru driverul serial:• Support for more than 4 serial ports

Se foloseşte pentru cipuri seriale cu mai mult de 4 porturi.

• Support for sharing serial interruptsInclude posibilitatea de partajare a întreruperii alocate controllerului serial cu cele alocate altor dispozitive.

• Autodetect IRQ on standard ports (unsafe)Detectează automat parametrii controllerului serial.

• Non-standard serial port supportOferă suport pentru plăci seriale speciale.

Denumirile porturilor seriale sunt ttySl, ttyS2 etc. (corespunzătoare notaţiilor COM1, COM2 etc. din MS-DOS).

Parametrii porturilor seriale pot fi modificate utilizând utilitarul setserial:

\ setserial port parametri

unde parametri pot fi:

port adresă stabileşte adresa I/O a portului serial

irq adresă stabileşte linia de întrerupere (IRQ) a portului serialbaudjbase viteză setează viteza portului serial

Page 146: Administrarea Sistemelor Linux

130 Administrarea şi configurarea sistemelor Linux

spd_hi utilizează viteza de 57600 bpsspd_vhi utilizează viteza de 115200 bpsspdjnormal utilizează viteza de 38400 bps.

Mai multe informaţii privind folosirea acestui program pot fi obţinute apelândmân setserial.

12.5. Configurarea plăcilor de reţea

Pentru a utiliza o placă de reţea, trebuie selectat driverul respectiv:

- Network device support• Ethernet (10 or lOOMbit)• 3COM cards

• 3c501 "EtherLink" support• 3c503 "EtherLink II" support• 3c503 "EtherLink II" support• 3c5(57 "EtherLink 16" support• 3c509/3c529 (MCA)/3c579 "EtherLink III" support• 3c590/3c900 series (592/595/597)

"Vortex/Boomerang" support• AMD LANCE and PCnet (AT1500 and NE2100) support» Westerr Digital/SMC cards

• WD80*3 support• SMC Ultra MCA support• SMC Ultra support• SMC Ultra32 EISA support• SMC 9194 support

• Racal-Interlan (Micom) NI cards• NI5010 support• NI5210 support• NI6510 support

• DEPCA, DElOx, DE200, DE201, DE202, DE422 support• HP 10/100VG PCLAN (ISA, EISA, PCI) support• Other ISA cards

• Cabletron E21xx support• EtherWORKS 3 (DE203, DE204, DE205) support• EtherExpress 16 support• EtherExpressPro support/EtherExpress 10 U82595)

support• HP PCLAN+ (27247B and 27252A) support• HP PCLAN (27245 and other 27xxx series) support• LP486E on board Ethernet• ICL EtherTearr, 16i/32 support• NE200Q/NE1000 support

Page 147: Administrarea Sistemelor Linux

___________Configurări de bază ale sistemului _____________ 131

EISA, VLB, PCI and on board controllers• AMD PCnet32 PCI support• Adaptec Starfire support

o Ansei Communications EISA 3200 support• Apricot Xen-II on board Ethernet• CS89xO support• DECchip Tulip (dc21x4x) PCI support• Generic DECchip & DIGITAL EtherWORKS PCI/EISA• Davicom DM910x/DM980x support• EtherExpressPro/100 support• Mylex EISA LNE390A/B support

o Myson MTD-8xx PCI Ethernet support• National Semiconductor DP8381x series PCI

Ethernet support• PCI NE2000 and clones support• Novell/Eagle/Microdyne NE3210 EISA support• Racal-Interlan EISA ES3210 support• RealTek RTL-8139 C+ PCI Fast Ethernet Adapter

support• RealTek RTL-8139 PCI Fast Ethernet Adapter

support• Support for older RTL-8129/8130 boards• SiS 900/7016 PCI Fast Ethernet Adapter support• SMC EtherPower II• Sundance Alta support• TI ThunderLAN support• VIA Rhine support• Winbond W89c840 Ethernet support

Pocket and portable adapters• AT-LAN-TEC/RealTek pocket adapter support• D-Link DE600 pocket adapter support• D-Link DE620 pocket adapter support

12.6. Configurarea plăcilor de sunet

Pentru a utiliza o placă de sunet, trebuie selectat driverul respectiv:

- Sound cârd support• C-Media PCI (CMI8338/8738)• Creative SBLive! (EMU10K1)• Crystal SoundFusion (CS4280/461x)• Crystal Sound CS4281• Ensoniq AudioPCI (ES1370)• Creative Ensoniq AudioPCI 97 (ES1371)• ESS Technology Solol• ESS Maestro, Maestro2, Maestro2E driver

Page 148: Administrarea Sistemelor Linux

132 Administrarea şi configurarea sistemelor Linux

• ESS MaestroS/Allegro driver• Intel ICH (i8xx) audio support

RME Hammerfall (RME96XX) support• S3 SonicVibes• Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio

Core• Support for Turtle Beach MultiSound Classic, Tahiti,

Monterey• Support for Turtle Beach MultiSound Pinnacle, Fij i• VIA 82C686 Audio Codec• VIA 82C686 MIDI• OSS sound modules

• AD1816(A) based cards• Aztech Sound Galaxy (non-PnP) cards• Adlib Cards• ACI mixer (miroSOUND PCMl-pro/PCM12/PCM20)• Crystal CS4232 based (PnP) cards• Ensoniq SoundScape support• Gravis Ultrasound support• MediaTrix AudioTrix Pro support• Microsoft Sound System support• MPU-401 support (NOT for SB16)• NM256AV/NM256ZX audio support• OPTi MAD16 and/or Mozart based cards• 100% Sound Blaster compatibles (SB16/32/64, ESS,

JazzlS) support• AWE32 synth• Full support for Turtle Beach WaveFront (Tropez

Plus, Tropez, Maui) synth/soundcards• Limited support for Turtle Beach Wave Front

(Maui, Tropez) synthesizers• Yamaha FM synthesizer (YM3812/OPL-3) support• Yamaha OPL3-SA1 audio controller• Yamaha OPL3-SA2 and SA3 based PnP cards• Yamaha YMFVxx PCI audio (native mode)• Yamaha PCI legacy ports support• Gallant Audio Cards (SC-6000 and SC-6600 based)

12.7. Configurarea dispozitivelor USB

Pentru a utiliza dispozitive USB, trebuie în primul rând selectat driverul pentru cipul USB:

- Support for USB« UHCI (Intel PIIX4, VIA, . . . ) support • UHCI Alternate Driver (JE) support

Page 149: Administrarea Sistemelor Linux

Configurări de bază ale sistemului 133

• OHCI (Compaq, iMacs, OPTi, SiS, ALi, . . . ) support

In al doilea rând, trebuie selectate driverele pentru dispozitivele USB conectate:

- Support for USB• USB Audio support• USB Bluetooth support• USB Mass Storage support

• Datafab MDCFE-B Compact Flash Reader support• Freecom USB/ATAPI Bridge support• ISD-200 USB/ATA Bridge support• Microtech CompactFlash/SmartMedia support• HP CD-Writer 82xx support• SanDisk SDDR-09 (and other SmartMedia) support• Lexar Jumpshot Compact Flash Reader

• USB Modem (CDC ACM) support• USB Printer support• USB Human Interface Device (full HID) support

• /dev/hiddev raw HID device support• USB HIDBP Keyboard (basic) support• USB HIDBP Mouse (basic) support• Wacom Intuos/Graphire tabiet support

• USB Imaging devices• USB Kodak DC-2xx Camera support• USB Mustek MDC800 Digital Camera support• USB Scanner support

o Microtek X6USB scanner support o HP53xx USB scanner support

• USB Multimedia devices• USB IBM (Xirlink) C-it Camera support• USB OV511 Camera support• USB Philips Cameras• USB SE401 Camera support• USB STV680 (Pencam) Camera support• USB 3com HomeConnect (aka vicam) support

• D-Link USB FM radio support• DABUSB driver

• USB Network adaptors• USB ADMtek Pegasus-based ethernet device support• USB KLSI KL5USB101-based ethernet device support• USB CATC NetMate-based Ethernet device support• USB Communication Class Ethernet device support• USB-to-USB Networking cable device support

• USB port drivers• USS720 parport driver

• USB Miscellaneous drivers• USB Diamond RioSOO support

Page 150: Administrarea Sistemelor Linux

134 Administrarea şi configurarea sistemelor Linux

12.8. Configurarea scannerelorDacă scannerul este conectat la magistrala USB, trebuie selectat tipul de scanner corespunzător:

- Support for USB• USB Imaging devices

• USB Scanner supporto Microtek X6USB scanner support o HP53xx USB scanner support

Pentru scannere SCSI:

- SCSI support• SCSI generic support

Pentru scannere conectate la portul paralel:

- Parallel port support" PC-style hardware• Use FIFO/DMA if available

însă multe dispozitive sunt conectate intern la un port paralel, incluzând un convertor paralel -> USB. Pentru aceste tipuri de dispozitive, precum şi pentru cele care se conectează la portul paralel al calculatorului sau la magistrala SCSI, trebuie utilizat driverul din programul sane.

Pentru comunicaţia cu scannerul se foloseşte utilitarul sane - mai concret, pentru scanare, stabilirea parametrilor etc. Acesta conţine o colecţie bogată de drivere pentru scannere. Recomandăm consultarea listei de drivere înainte de achiziţionarea unui scanner, deoarece există încă multe modele pentru care nu există drivere.

De asemenea, poate fi utilizat şi programul xsane, o interfaţă X Windows pentru sane.

12.9. Configurarea dispozitivelor multimedia

Prin dispozitive multimedia înţelegem plăci de captură video/TV/audio, precum şi camere video. Pentru utilizarea acestora, trebuie selectate în primul rând opţiunile:

- I2C support• I2C bit-banging interfaces• I2C device interface• I2C /proc interface

Page 151: Administrarea Sistemelor Linux

_______________________Configurări de teză ale sistemului ______________________135

în al doilea rând, trebuie selectat driverul corespunzător:. i •" ,..; v : -i • -• : ' ' / ' i r •" ' r • • ' . ' • -

M u l t i m e d i a d e v i c e s• Video For Linux

. : '" ! *••" V4L informatioh in proc 'fllesystem-Jiî-•.!•• • i2c oii parallel port ' ' "

• BT848 Video For Linux• Mediavision Pro Movie Studio Video For Linux• Quickcam BW Video For Linux• QuickCam Colour Video For Linux• W9966CF Webcam (FlyCam Supra and others) Video

For Linux• CPiA Video For Linux

o CPiA Parallel Port Lowlevel Support o CPiA USB Lowlevel Support

• SAA5249 Teletext processor• SAB3036 tuner• Zoran ZR36057/36060 Video For Linux• Iomega Buz support '• Miro DC10(+) support• Linux Media Labs LML33 support• Zoran ZR36120/36125 Video For Linux• Sony Vaio Picturebook Motion Eye Video For Linux

• Radio Adapters• ADS Cadet AM/FM Tuner• AIMSlab RadioTrack (aka RadioReveal) support• AIMSlab RadioTrack II support• Aztech/Packard Bell Radio• GemTek Radio Cârd support'» GemTek PCI Radip Cârd support

* • Guillemot MAXI Radio FM 2000 radio• Maestro on board radio• miroSQUND PCM20 radio• SF16FMI Radio• TerraTe'c ActiveRadio ISA Standalone• Trust FM radio cârd• Typhoon Radio (a.k.a. EcoRadio)• Zoltrix Radio

în cazul plăcilor compatibile BT848/878, mai trebuie activate opţiunile:

T Sound cârd support• BT878 audio dma• TV cârd (bt848) mixer support

*

Pentru a utiliza plăcile de captură, se foloseşte programul bttv.

Page 152: Administrarea Sistemelor Linux

136 ______________ Administrarea şi configurarea sistemelor Linux

12.10. Configurarea dispozitivelor de intrare

în Linux a fost implementat un sistem generic pentru tratarea dispozitivelor de intrare, suportând în acest moment doar joystick-uri. Acest sistem se compilează activând opţiunile:

Input core support• Keyboard support• Mouse support• Joystick support• Event interface support

Driverul de joystick:

- Character devices• Joysticks

• Game port supporto Classic ISA/PnP gameportso PDPI Lightning 4 gamecardo Aureal Vortex and Trident 4DWave gameportso Crystal SoundFusion gameportso SoundBlaster Live! gameports

• Serial port device supporto Serial port input line discipline

• Joystickso Classic PC analog Joysticks and gamepads o Assasin 3D and MadCatz Panther devices o Logitech ADI digital Joysticks and gamepads o Creative Labs Blaster Cobra gamepad o Genius Flight2000 Digital Joysticks and gamepads o Gravis GrIP Joysticks and gamepads o InterAct digital Joysticks and gamepads o ThrustMaster DirectConnect Joysticks and gamepads o Microsoft SideWinder digital Joysticks and

gamepadso I-Force USB Joysticks and wheels o I-Force Serial Joysticks and wheels o Logitech WingMan Warrior joystick o LogiCadSd Magellan/SpaceMouse 6dof controller o SpaceTec SpaceOrb/Avenger 6dof controller o SpaceTec SpaceBall 4000 FLX 6dof controller o Gravis Stinger gamepad o Multisystem, Sega Genesis, Saturn Joysticks and

gamepads o Multisystem, NES, SNES, N64, PSX Joysticks and

gamepads o Multisystem Joysticks via TurboGraFX device

Page 153: Administrarea Sistemelor Linux

,

Partea a IlI-a

SETĂRI AVANSATE ALE SISTEMULUI

Page 154: Administrarea Sistemelor Linux

1. Tipărirea la imprimantă: LPRng şi CUPS

Sistemul de operare Linux utilizează sisteme de tipărire (spooling systems) compatibile BSD. Implementarea folosită diferă de la o distribuţie la alta, însă compatibilitatea cu sistemul BSD a fost menţinută. Acest tip de sistem poate gestiona imprimante multiple, localizate pe maşina locală sau pe alte maşini, şi cozi de sarcini (cererile de tipărire sunt stocate în cozi de aşteptare, până când dispozitivul periferic le va putea tipări) multiple. Distribuţia Red Hat utilizează implementarea LPRng (LPR New Generatioii), iar Mandrake - implementarea CUPS(Common UNIXPrinting System} sau opţional LPRng.

în principal, sistemul este alcătuit dintr-o colecţie de cinci programe funda-mentale:

Ipd daemonul de imprimare, care gestionează cozile de sarcini (queues) şi letrimite imprimantei

ipr adaugă o sarcină (jab) de tipărire în coada de sarcini ipq listează sarcinile de tipărire aflate în coada de aşteptare iprm şterge o sarcină din coada de sarcini Ipc interfaţă pentru administrarea sistemului de tipărire.

Sistemele LPRng şi CUPS conţin şi alte programe, care vor fi prezentate în secţiunile 1.1, respectiv 1.2.

Fişierul de configurare principal utilizat de sistemele de tipărire BSD este /etc/printcap. Cele două implementări amintite mai sus utilizează şi alte fişiere de configurare - vezi secţiunile următoare.

Fişierul /etc/printcap

Acest fişier de configurare descrie imprimantele recunoscute de sistemul de tipărire. Liniile care încep cu „#" sunt considerate comentarii. Câmpurile sunt separate prin caracterul „:". Descrierea caracteristicilor unei imprimante poate conţine mai multe linii, acest fapt fiind semnalizat adăugând caracterul „\" la sfârşitul liniei. Valorile tip şir de caractere sunt specificate ca atare (e.g. :st=valoare:), cele numerice încep cu „f" (e.g. :mx#loO:), iar pentru cele booleene se adaugă „@" pentru valori le false (e.g. :fd@:). Primul câmp reprezintă numele imprimantei, iar restul câmpurilor - caracteristicile acesteia, după cum urmează:

Page 155: Administrarea Sistemelor Linux

Administrarea şi configurarea sistemelor Linux

Nume câmp Tip Valoare implicită

Descriere

auth Şir de caractere

Stabileşte tipul autentificării

cm Şir de caractere

Comentariu conţinând descrierea imprimantei

connect grace Numeric 0 Intervalul de timp dintre două sarcini pentru a oferi imprimantei posibilitatea de iniţializare

connect interval Numeric 10- Intervalul de timp dintre conectări la imprimantă sau deschideri de port

connect timeout Numeric 10 Timpul-limită pentru conectare la imprimantă sau deschidere de port

default_pr inter Şir de caractere Ip

Imprimanta implicită

default tmp dir Şir de caractere

/tmp Directorul pentru fişiere temporare implicit

ff Şir de caractere

\f Şirul trimis ca formfeed (salt la pagina următoare)

filter Şir de caractere

Filtrul implicit utilizat pentru tipărire

fo Boolean false Trimite formfeed imprimantei la deschiderea portului

f f separator Boolean false Trimite imprimantei formfeed pentru a separa cererile

fq Boolean false Trimite formfeed imprimantei la închiderea portului

if Şir de caractere

Comanda pentru execuţia filtrului (un program care transformă intrarea într-o formă ce poate fi tipărită)

If Şir de caractere

log Fişierul de jurnalizare a erorilor şi a informaţiilor de depanare

1P Şir de caractere

Numele dispozitivului la care se trimite ieşirea (vezi infra)

Ipd bounce Boolean false Filtrează cererile şi apoi le trimite max server s active

Numeric 0 Numărul maxim de servere active la un moment dat

mc Numeric 1 Numărul maxim de copii admise

140

Page 156: Administrarea Sistemelor Linux

Setări avansate ale sistemului 141

Page 157: Administrarea Sistemelor Linux

nuc Numeric 0 Mărimea maximă a cererii, exprimată în kilobytes; 0 înseamnă nelimitat

Pi Numeric 66 Stabileşte numărul de linii per pagină

pw Numeric 132 Stabileşte numărul de coloane per pagină

rm Şir de caractere

Numele maşinii pe care se află coada de sarcini (dacă este vorba de altă maşină decât cea locală). Se utilizează împreună cu rp

rp Şir de caractere

Numele imprimantei la care se trimit sarcinile (dacă aceasta se află pe altă maşină decât cea locală). Se utilizează împreună cu rm

td Şir de caractere

Directorul în care se află cozile de sarcini (în general/ va r / spoo l / l pd /nume im primăriţă)

send_failur«_ action

Şir de caractere

remove Acţiunea efectuată atunci când transmisia eşuează, astfel: success - consideră tipărirea terminată cu succes abort - renunţă la tipărire retry - reîncearcă tipărirea remove - şterge cererea hold - reţine cererea

sand_ j ob_rw_ _timaout

Numeric 6000 Timpul maxim (timeouf) de trimitere a datelor către imprimantă sau maşina pe care se află coada; 0 înseamnă infinit

send_try Numeric 3 Numărul de reîncercări dacă tipărirea sau trimiterea datelor eşuează; 0 semnifică număr infinit de reîncercări

8f Boolean false Dezactivează trimiterea deform feed între cereri

Sh Boolean false Nu tipăreşte headere sau bannere

Pentru lista completă a opţiunilor recunoscute de /etc/printcap, a se consultamân printcap.

Page 158: Administrarea Sistemelor Linux

142 ____________________ Administrarea şi configurarea sistemelor Linux _______________________

Prezentăm în continuare un fişier /etc/printcap:

##PRINTTOOL3## LOCAL Ijetplus 300x300 a4 {} LaserJetPlus DefaultOlaser:\

:sh:\:mc=0:\:mx=0: \: fq@: \:sd=/var/spool/Ipd/laser:\:lp=/dev/lpO:\:lpd_bounce=true:\:if=/usr/share/printconf/util/mf_wrapper:

##PRINTTOOL3## REMOTE facturi:\:sd=/var/spool/lpd/facturi: \:mx#0:\:sh:\:rm=expeditie.biosfarm.ro:\:rp=facturi:

După cum se observă, au fost definite o imprimantă locală numită laser şi o imprimantă aflată pe maşina expeditie.biosfarm.ro, numită facturi. Pe respectiva maşină, fişierul /etc/printcap defineşte imprimanta facturi ca o imprimantă locală, iar ipd este configurat astfel încât să accepte cereri de tipărire şi de pe alte maşini.

Numele de dispozitive uzuale sunt:

Numele dispozitivului Tipul dispozitivului _____________________________ /dev/lpO Primul port paralel/dev/ lp l Al doilea port paralel/dev/usb/lpO Prima imprimantă USB/dev/usb/ lpl ________ A doua imprimantă USB _______________________

Toate directoarele conţinând cozile de sarcini trebuie să aparţină utilizatorului special daemon şi grupului daemon, şi trebuie să aibă dreptul de acces 755.

Programul Ipr

Programul Ipr tipăreşte un fişier introducându-1 în coada de sarcini. Sintaxa sa este:

| Ipr [ -P imprimantă ] fişier

Tipărirea se va face pe imprimanta implicită, dacă nu este utilizat parametrul -p.

Page 159: Administrarea Sistemelor Linux

Setări avansate ale sistemului 143

Programul Ipq

Programul Ipq listează toate sarcinile aflate în coada de aşteptare pentru o anumită imprimantă. Sintaxa sa este:

|Ipq [ -P imprimantă ]

Dacă parametrul -p nu este utilizat, va fi considerată imprimanta implicită.

l Ipq -PlaserPrinter: laserSpeak

Queue: l printable jobServer: pid 5566 activeUnspooler: pid 5567 activeStatus: IF filter 'mf_wrapper' filter msg - '«/HWResolution[300

300]»setpagedevice' at 12:52:37.486Filter_status: laser is ready and printingRank Owner/ID Class Job Files Size Timel dragos@peak+565 A 565 vm-tuning 10018

12:52:36

Programul Iprm

Programul Iprm şterge o sarcină din coada de aşteptare. Sintaxa este:

| Iprm [ -P imprimantă ] identificator_sarcină

unde identificatorjsarcinâ reprezintă identificatorul sau „-" dacă se doreşte ştergerea tuturor sarcinilor din coada de aşteptare.

# Iprm -Plaser 565Printer laser@peak:checking perms 'dragos3peak+565'dequeued 'dragos3peak+565'

Programul Ipc

Utilitarul Ipc are o interfaţă tip linie de comandă şi are mai multe comenzi interne:

status imprimantă afişează starea cozii de sarcini pentru imprimantaspecificată abort imprimantă opreşte imediat sarcina

care se tipăreşte şi dezactiveazătipărirea la imprimanta specificată. Pentru a reactivatipărirea, se utilizează comanda start stop imprimantă

opreşte tipărirea după ce se termină de tipărit sarcinacurentă. Utilizatorii pot face noi cereri de tipărire, dar

Page 160: Administrarea Sistemelor Linux

144 Administrarea şi configurarea sistemelor Linux

Page 161: Administrarea Sistemelor Linux

start imprimantă disable imprimantă

enable imprimantă

down imprimantă up imprimantă quit

acestea nu vor fi tipărite până când imprimarea nu va fireactivatăreactivează tipărirea la imprimanta specificatărefuză noile cererile de tipărire. Utilizatorul root poateadăuga noi cereri. Pentru a opri o imprimantă, cea maibună metodă este de a apela disable şi a aştepta casarcinile aflate în coadă să se termine de tipărit.Reactivarea se poate face cu enable (vezi injrd)redă utilizatorilor posibilitatea de a efectua cereri detipărire, după ce aceasta a fost retrasă cu disableeste echivalent cu disable + stopeste echivalent cu enable + startpărăseşte programul Ipc.

Page 162: Administrarea Sistemelor Linux

1.1. Sistemul LPRng

Sistemul LPRng poate fi configurat în Red Hat cu ajutorul interfeţei grafice printconf-gui (meniul System :: Printer Configuration în Red Hat, respectiv Configuration :: Printer Configuration în Mandrake) sau cu ajutorul interfeţei mod text printconf-tui:

Figura 1.1. Programul printconf-gui

> BJ-300> BJ-330t> BJ-3Sv> BJ-5t> BJC-1000 •* BJC-ZOOO

«tp !> BJC-210> BJC-2100> BJC-210SP> BJC-240> BJC-250h n.ir.nnnn

Page 163: Administrarea Sistemelor Linux

Setări avansate ale sistemului 145

Page 164: Administrarea Sistemelor Linux

Fişierul de configurare LPRng este în general /etc/ipd.conf. Modul de specificare a valorilor opţiunilor este asemănător cu cel utilizat de printcap. De asemenea, opţiunile au aceleaşi nume ca şi câmpurile folosite de printcap. Ele se referă la valorile implicite stabilite pentru toate imprimantele configurate:

# trimite form feed înainte de închiderea portului de imprimantăfq@

# permite număr nelimitat de copiimc=0

Controlul accesului şi autentificării

Accesul la serviciul de imprimare poate fi configurat prin intermediul fişierului /etc/lpd.perms. Fiecare linie din acest fişier defineşte o regulă. O asemenea regulă va accepta sau respinge o cerere dacă regula se potriveşte. Dacă regula nu se potriveşte, va fi verificată următoarea, şi aşa mai departe.

Regulile sunt alcătuite din mai multe elemente. Fiecare element este un cuvânt-•cheie care are atribuită una sau mai multe valori. Cuvintele-cheie recunoscute sunt următoarele:

Page 165: Administrarea Sistemelor Linux

DEFAULT SERVICE

CMP

QRX

USERREMOTEUSER HOST REMOTEHOST

REMOTEPORTSAMEUSERSAMEHOSTSERVERFORWARDGROUP

REMOTEGROUP REMOTEUSER se LPC

rezultatul implicittipul cererii. Poate lua una dintre valorile:cerere de control prin intermediul Ipccerere de ştergere din coadă cu Iprmcerere de tipărire cu Iprcerere de determinare a stării cu Ipqcerere de transfer al sarciniicerere de conectarenumele utilizatoruluinumele utilizatorului de pe maşina care efectuază cerereanumele sau adresa IP a maşiniinumele sau adresa IP a maşinii de pe care se efectueazăcerereanumărul portului de pe maşina de pe care se face cerereapotrivirea dintre USER şi REMOTEUSERpotrivirea dintre HOST şl REMOTEHOSTcererea provine de la serverul Ipddestinaţia sarcinii nu este maşina localăUSER se află în grupul specificat în baza de date de grupuriIpd

află în grupul specificat în baza de date de grupuri Ipd comanda Ipc dintr-o cerere Ipc

Page 166: Administrarea Sistemelor Linux

146 Administrarea şi configurarea sistemelor Linux

A UTH dacă se face autentificareA UTHTYPE metoda de autentificareNOT inversează potrivirea regulii

Iată un exemplu:

i acceptă toate operaţiunile mai puţin cele nepermise DEFAULT ACCEPT

l permite utilizatorului root să controleze sarcinile ACCEPT SERVICE=C SERVER REMOTEUSER=root

l de asemenea, permite utilizatorului dragos de pe maşina hercules# să controleze sarcinileACCEPT SERVICE=C REMOTEHOST=hercules REMOTEUSER=dragos

# refuză orice alte cereri de control a sarcinilor de tipărireREJECT SERVICE=C

l acceptă doar cererile de tipărire ce provin din reţeaua 10.0.0.0# sau de pe maşina localăREJECT SERV1CE=P NOT REMOTEHOST=10.O.O.O,127 . O . O . l

i acceptă ca utilizatorul root să şteargă sarcini din coadă ACCEPT SERVICE=M SERVER REMOTEUSER=root

Pentru a exporta imprimantele LPRng către clienţi Windows, a se vedea sistemul SAMBA (cap. 5).

1.2. Sistemul CUPS

Fiecare coadă de tipărire are asociată câte un dispozitiv, care poate fi un port paralel, o interfaţă de reţea etc. Numele de dispozitive sunt specificate sub formă de URI (Uniforni Resource Identifiers). De exemplu, primul port paralel estedenumit parallel: /dev/lpO.

Administrarea imprimantelor se poate face fie printr-o interfaţă Web, localizată la adresa http://locaihost: 631/admin (meniul Configuration :: Printing :: CUPS WWW Admin Tool m Mandrake), fie prin intermediul comenzii Ipadmin.

Page 167: Administrarea Sistemelor Linux

Setări avansate ale sistemului 147

Page 168: Administrarea Sistemelor Linux

Figura 1.2. Administrarea imprimantelor CUPS

Programul Ipadmin are următoarea sintaxă:

| Ipadmin opţiuni ENTER

Page 169: Administrarea Sistemelor Linux

unde opţiuni pot fi:

-c clasă

-d imprimantă -m model

-r clasă

-v dispozitiv -D descriere

-E

adaugă imprimanta specificată la clasa de imprimante clasă;dacă aceasta nu există, va fi creată.stabileşte imprimanta implicită.specifică un driver de imprimantă, în general un fişier PPD.Lista tuturor modelelor recunoscute poate fi afişată cucomanda Ipinfo -m.şterge imprimanta specificată din clasa de imprimante clasă;dacă astfel clasa devine vidă, va fi ştearsă.stabileşte numele dispozitivului la care se face tipărirea.stabileşte o descriere a imprimantei (e.g. imprimanta luiDragos).activează imprimanta şi acceptă cereri de tipărire.

Page 170: Administrarea Sistemelor Linux

148 Administrarea şi configurarea sistemelor Linux

-L localizare stabileşte localizarea imprimantei (e.g. Catedra deMatematică).

-p imprimantă adaugă sau modifică parametrii unei imprimante.-Pfişier specifică un nume de fişier PPD care conţine driverul de

imprimantă. -x imprimantă şterge imprimanta specificată.

De exemplu, pentru adăugarea unei imprimante HP DeskJet, conectată la primul port paralel al calculatorului, se apelează comanda:

| Ipadmin -p DeskJet -E -v parallel:/dev/lpO -m deskjet.ppd ENTER

Pentru pornirea şi oprirea cozilor de imprimare se utilizează comenzile:

l enable imprimanta ENTER

disable imprimanta ENTER Pentru acceptarea sau refuzarea de

cereri se utilizează comenzile:

accept imprimantă ENTER reject imprimantă ENTERIFişierele de configurare CUPS se găsesc în directorul /etc/cups, după cum

urmează:

ciasses. conf conţine informaţiile despre clasele de imprimanteclient. conf conţine numele serverului implicitcupsd. conf conţine configurările serverului CUPSprinters. conf conţine informaţiile despre imprimantele configurate.

Ne vom referi în continuare la fişierul /etc/cups/cupsd.conf. Acesta recunoaşte următoarele directive:

AccessLog numeStabileşte fişierul-jurnal. Poate fi utilizată şi valoarea sysiog, pentru a utiliza serviciul sysiog pentru jurnalizare. Implicit: /var/log/cups/access_log.

Allow front adresăSpecifică maşina sau reţeaua de pe care pot fi accesate serviciile serverului. Poate fi o adresă IP, nume de maşină, o adresă de forma adresă/mască_de_reţea, sau AII pentru orice adresă, None pentru nici o adresă. Pot fi utilizate şi caractere wildcard. De asemenea, pot fi prezente multiple

Page 171: Administrarea Sistemelor Linux

Setări avansate ale sistemului 149

Page 172: Administrarea Sistemelor Linux

asemenea declaraţii. Se utilizează în cadrul unei directive Location (vezi infrd). AuthClass clasă

Stabileşte nivelul de autentificare astfel (se foloseşte în cadrul directivelor Location):

Anonymous: nu este necesară autentificare (implicit);User: autentificarea se face pe baza numelui de utilizator şi

parolei;System: autentificarea se face pe baza numelui de utilizatorşi parolei, iar utilizatorul trebuie să aparţină grupului sys.Grupul poate fi schimbat prin intermediul directivei

SystemGroup;Group: autentificarea se face pe baza numelui de utilizatorşi parolei, iar utilizatorul trebuie să aparţină unui anumit

grup, specificat prin directiva AitthGroupName. AuthGroupName grup

Stabileşte grupul utilizat de directiva AuthClass. AuthType tip

Defineşte tipul autentificării în cadrul directivei Location:None: nu se realizează autentificare (implicit);Basic: autentificarea se face utilizând

UNIX/Linux de parole;Digest: autentificarea

/etc/cups/passwd.md5. DadaDir directorSpecifică directorul pentru fişierele de date. Implicit: /usr/share/cups. DefaultCharset set_de_caractere

Stabileşte setul de caractere implicit. Poate lua

Valorile: utf-8, iso-8859-1 sau windows-1251.

utf-8.

DefaultLanguage limbajStabileşte limba implicită. Poate luna una dintre valorile: de,

en, es, fr, it. Implicit: en. Denyfrom adresă

Specifică maşina sau adresa IP pentru care vor fi refuzatecererile. Similar cu Allowfrom. Trebuie să aparţină directivei

Location.

Encryption tip

sistemul

se face utilizând fişierul

una din Implicit:

Stabileşte modul de criptare în cadrul unei directive Location. Poate lua una dintre valorile:

Never: nu se efectuează criptarea datelor;

Page 173: Administrarea Sistemelor Linux

150 Administrarea şi configurarea sistemelor Linux

Page 174: Administrarea Sistemelor Linux

IfRequested: efectuază criptare numai dacă este solicitată(implicit);Always: efectuează criptare.

ErrorLog fişierStabileşte fişierul-jurnal pentru erori. Poate fi utilizată şi valoarea syslog, pentru a utiliza serviciul syslog pentru jurnalizare. Implicit: /var/log/cups/error_log.

FontPath listă_directoareSpecifică lista de directoare în care se află fonturi, separate prin caracterul „:". Implicit: /usr/share/cups/fonts.

HostNameLookups tipActivează/dezactivează verificarea numelui maşinii de pe care se face conectarea (adică dacă numele este real). Poate lua valoarea On sau of f. Implicit: of f.

LocatlonSpecifică opţiunile de autentificare pentru o anumită resursă, astfel:

<Location /resursă>

</Location>

Page 175: Administrarea Sistemelor Linux

LogLevel nivel unde resursă este o specificaţie de tip URI (descrisă laînceputul secţiunii) sau una din următoarele locaţiivirtuale:/admin: toate operaţiunile de administrare/classes: toate clasele de imprimante/classes/clasă: clasa specificată/jobs: toate sarcinile de tipărire/jobs/id: sarcina id/printers: toate imprimantele/printers/imprimantă: imprimanta imprimantă.

Stabileşte nivelul de jurnalizare: none: nici un mesaj;emerg: jurnalizează situaţiile critice care împiedică serverul să funcţioneze;

alert: jurnalizează alertele care trebuie tratate imediat; crit: jurnalizează erorile critice care nu împiedică funcţionarea serverului; . error: jurnalizează erorile; warn: jurnalizează atenţionările; notice: jurnalizează situaţiile de eroare temporare;

Page 176: Administrarea Sistemelor Linux

Setări avansate ale sistemului 151

info: jurnalizează toate cererile şi schimbările de stare(implicit);debug: jurnalizează informaţiile de depanare de bază;debug2: jurnalizează toate informaţiile de depanare.

MaxClients nr_clienţiStabileşte numărul maxim de clienţi simultani acceptaţi de server. Implicit: io.

MaxJobs nr_sarciniStabileşte numărul maxim de sarcini ce se pot afla în coada de tipărire. Implicit este o, adică număr nelimitat de sarcini.

MaxRequestSize dimensiuneSpecifică dimensiunea maximă a fişierului de tipărit. Valoarea implicită este o, adică dimensiune nelimitată.

Port portSpecifică portul pe care serverul cups va aştepta cereri. Pot fi prezente mai multe directive Port. Implicit: 631.

RunAsUserStabileşte dacă serverul va rula sub un utilizator special (de obicei lp), pentru valoarea Yes, sau sub root, pentru valoarea NO. Implicit este NO. De remarcat că dacă serverul rulează sub lp, acesta trebuie să aibă drept de acces Ia dispozitivele corespunzătoare imprimantei.

TempDir directorStabileşte directorul folosit pentru fişiere temporare. Implicit: /var/tmp.

User utilizatorStabileşte utilizatorul special sub care sunt executate filtrele. Implicit: lp.

Pentru a exporta imprimantele CUPS către clienţi Windows, a se vedea sistemul Samba (cap. 5).

Pentru a configura CUPS în vederea tipăririi pe imprimante legate la maşini Windows, se lansează mai întâi comanda:

| In -s 'which smbspool' /usr/lib/cups/backend/smb ENTER

Pentru configurare, se folosesc următoarele nume de resursă:

smb: //workgroup/server/imprimantăsmb://server/imprimantăsmb://utilizator:parolă@workgroup/server/imprimantăsmb://utilizator:parolă@server/imprimantă

Page 177: Administrarea Sistemelor Linux

2. Sisteme de baze de date: PostgreSQL şi MySQL

MySQL şi PostgreSQL sunt sisteme relaţionale de gestiune a bazelor de date, compatibile SQL (Structured Query Language, cel mai răspândit limbaj standardizat de interogare a bazelor de date), cu arhitectură client-server. Spre deosebire de alte sisteme similare disponibile în Linux, cum ar fi Oracle, DB2 sau Informix, acestea două sunt open source.

2.1. Sistemul PostgreSQL

O sesiune Postgres este alcătuită din următoarele trei componente:- un proces supervizor de tip daemon (numit postmaster);- aplicaţia care utilizează serviciile SQL (cum ar fi programul psql);- unul sau mai multe servere (procesele postgres).

Un proces postmaster gestionează o colecţie de baze de date pe o maşină, colecţie denumită cluster. Aplicaţiile utilizează biblioteca postgresql. Aceasta trimite cereri prin reţea daemonului postmaster. Astfel, pentru fiecare asemenea conexiune este pornit câte un server postgres.

Atât daemonul postmaster, cât şi serverele postgres rulează sub un utilizator special, de regulă postgres. în nici un caz acest utilizator special nu trebuie să fie root. De asemenea, toate fişierele din cadrul bazelor de date trebuie să aparţină acestui utilizator special.

La prima pornire a daemonului postmaster va fi verificată existenţa clusterului de baze de date. în general, acesta este localizat în /var/iib/pgsqi/data. Dacă acesta nu există, el va fi creat automat de către scripturile de pornire, apelând programul initdb.

Fişierul- de configurare se află în directorul de date şi are numele postgresql. conf. Atunci când daemonul primeşte semnalul SIGHUP, fişierul de configurare este recitit.

Opţiunile importante sunt următoarele:

Opţiuni generale

FSYNC dacă această opţiune este activată, Postgres va utiliza apelulde sistem fsync() pentru a se asigura că datele sunt scrise pe

Page 178: Administrarea Sistemelor Linux

Setări avansate ale sistemului 153

disc. Aceasta va creşte siguranţa datelor, încetinind însă sistemul datorită utilizării mai intense a discului. Implicit: false.

MAX_CONNECTIONS stabileşte numărul maxim de conexiuni acceptat deserver. Implicit: 32.

PORT stabileşte portul TCP pe care serverul va aştepta cereri.Implicit: 5432. SHARED_BUFFERS stabileşte numărul de

zone-tampon de memorie comunăutilizate de server. O zonă conţine 8192 de octeţi. Implicit:

64 (512 KB). SORT_MEM specifică cantitatea de memorie utilizată pentru sortărHe

interne, înainte de a recurge la fişiere temporare. Esteexprimată în kilobytes şi are valoarea implicită 512 KB.

TCPIP_SOCKET dacă această opţiune este activată, serverul va acceptaconexiuni TCP/IP (adică şi de pe alte maşini). Implicit: Off.

Opţiuni privind informaţiile de depanare şi jurnalizarea

DEBUG_LEVEL stabileşte nivelul informaţiilor de depanare generate. Implicit este O, adică serverul nu va genera informaţii de depanare.

HOSTNAME_LOOKUP determină numele maşinii de unde se fac conexiuni, nu doar adresa IP, atunci când conexiunile sunt jurnalizate. De menţionat că activarea acestei opţiuni va creşte traficul prin reţea. Implicit: Off.

LOG_CONNECTIONS jumalizează fiecare conexiune reuşită la server. Implicit este Off.

LOG_TIMESTAMP pentru fiecare linie din jurnal precizează şi momentul în care s-a petrecut evenimentul. Implicit este Off.

SYSLOG precizează modalitatea de jurnalizare. Dacă are valoarea l,mesajele vor fi trimise atât sistemului syslog, cât şi către ieşirea standard. Pentru valoarea 2, mesajele vor fi trimise numai sistemului syslog. Implicit este O, ceea ce înseamnă că mesajele vor fi trimise doar la ieşirea standard.

SYSLOG_FACILITY stabileşte clasa de jurnalizare utilizată de syslog (LOCALO, ..., LOCALT). Implicit este LOCALO. Pentru detalii privind clasele de jurnalizare, vezi cap. 10.

SYSLOG_IDENT atunci când este utilizat sistemul syslog, stabileşte numele programului folosit pentru identificarea mesajelor PostgreSQL. Implicit estepostgres.

Iată un fragment dintr-un fişier postgresqi. conf:

l *l # Acest fişier este alcătuit din linii de forma:

Page 179: Administrarea Sistemelor Linux

154 Administrarea şi configurarea sistemelor Linux

## opţiune = valoare## Caracterul "=" este opţional.t Caracterul "f" desemnează începutul unui comentariu.# Nu contează dacă sunt folosite litere mari sau mici.l

# Parametri legaţi de conexiunetcpip_socket = truemax_connections = 1024port = 5432 hostname_lookup = false

# Parametri legaţi de performanţăsort_mem = 2048shared_buffers = 2048 fsync = false

# Parametri legaţi de jurnalizaresyslog = 2syslog_facility = 'LOCAL7'

Oprirea serverului

SIGTERM după primirea semnalului SIGTERM, daemonul va refuzacererile de conectare, permiţând totuşi serverelor să-şi continue execuţia. Postmaster-u\ se va opri doar atunci când toate serverele s-au oprit în urma cererii clienţilor.

SIGINT după recepţionarea acestui semnal, daemonul va refuzacererile de conectare şi va trimite tuturor serverelor pornite semnalul SIGTERM, iar acestea vor renunţa la tranzacţiile curente şi îşi vor încheia execuţia. Daemonul se va opri după ce toate serverele vor fi oprite.

SIGOUIT daemonul va trimite serverelor semnalul SIGQUIT şi apoi îşiva încheia imediat execuţia, fără a salva eventualele modificări asupra sistemului de baze de date. Nu este recomandată utilizarea acestui semnal.

Autentificarea clienţilor

Autentificarea este procedura prin care serverul de baze de date stabileşte identitatea clientului, determinând dacă se permite conectarea aplicaţiei-client.

Numele de utilizatori PostgreSQL sunt separate logic de numele de utilizatori Linux de pe maşina pe care rulează serverul.

Autentificarea clienţilor se configurează în fişierul pg_hba.conf (HBA înseamnă Host-Based Authentication), localizat în directorul de date postgres, Acest fişier este alcătuit din mai multe înregistrări, câte una pe linie, formate, la

Page 180: Administrarea Sistemelor Linux

Setări avansate ale sistemului 155

rândul lor, din mai multe câmpuri. Câmpurile sunt separate prin spaţii sau tab-uri. Liniile începând cu „#" sunt considerate comentarii, înregistrările pot lua trei forme:

local bază_de_date metodă_de_autentificarehost bază_de_date adresă_IP mască_reţea metodă de_autentificarehostssl bază_de_date adresă_IP mascâ_reţea metodă__de_autentificare

unde:local conexiunea se face local, de pe aceeaşi maşină;host conexiunea se face de pe o altă maşină;hostssl conexiunea se face de pe o altă maşină, prin intermediul

SSL;bază_de_date specifică numele bazei de date la care se referă înregistrarea.

Valoarea all permite accesul la toate bazele de date;samenser semnifică baza de date cu acelaşi nume cu alutilizatorului;

adresă_IP, mască_reţea specifică adresa IP şi masca de reţea a maşinii de pecare se face conexiunea;

metodă_de_autentificare stabileşte metoda pe care trebuie să o folosească utilizatorul pentru a se autentifica atunci când se conectează la baza de date. Sunt posibile următoarele metode:

trust - este permis accesul oricărui utilizator de pemaşina-client;reject - conexiunea nu este permisă;password - clientul trebuie să trimită o parolă pentru a seputea conecta. După cuvântul password se poatespecifica un nume de fişier care conţine o listă deutilizatori şi eventual parole, cărora le este permisaccesul. Parola este trimisă în clar prin reţea, fără a fi

criptată;crypt - este similară metodei password, însă parolele vor

fi criptate înainte de a fi trimise.

Prima înregistrare pentru care se potrivesc adresa IP, masca de reţea şi numele bazei de date va fi utilizată pentru autentificare. Dacă nu se potriveşte nici o înregistrare, conexiunea este refuzată.

Iată un exemplu de fişier pg_hba. conf:

# acceptă orice conexiune localălocal all trust

# acceptă utilizatorii de pe maşina 193.226.26.10 să acceseze orice# bază de date, fără a specifica o parolăhost all 193.226.26.10 255.255.255.0 crypt

Page 181: Administrarea Sistemelor Linux

156 Administrarea şi configurarea sistemelor Linux

# acceptă utilizatorii de pe orice maşină să acceseze orice bază de# date, în condiţia corectitudinii paroleihost all 0 . 0 . 0 . 0 0.0.0.0 crypt

Administrarea utilizatorilor PostgreSQL

Iniţial, după prima pornire a daemonului PostgreSQL, doar utilizatorul postgres este definit. Pentru a crea un nou utilizator, operaţiunea trebuie făcută de sub acest utilizator, spre exemplu:

| su -c postgres "createuser root"

Adăugarea de utilizatori se face fie folosind comanda SQL CREATE USER, fie din shell-u\ de comenzi, prin comanda createuser:

CREATE USER utilizator [ WITH[ SYSID uid ] [ PASSWORD 'parolă' ) ][ CREATEDB | NOCREATEDB ] [ CREATEUSER | NOCREATEUSER ] [ IN GROUP listă_grupuri ] [ VALID UNTIL ' timp' ]

unde:utilizator este numele utilizatorului care va fi creat;uid este identificatorul utilizatorului, în mod uzual, acest parametru

nu este necesar;parolă specifică parola de acces;CREATEDB, NOCREATEDB acordă / nu acordă utilizatorului dreptul de a crea

noi baze de date. Implicit este NOCREATEDB; CREATEUSER, NOCREATEUSER acordă / nu acordă utilizatorului dreptul de a

crea noi utilizatori. Implicit este NOCREATEUSER;grup lista de grupuri în care va fi introdus utilizatorul;timp specifică data până la care utilizatorul va fi valid.

| createuser t opţiuni ] utilizator

unde opţiuni pot fi:-d, —createdb acordă utilizatorului dreptul de a crea baze de date; -D, —no-create-db nu acordă utilizatorului dreptul de a crea baze de date; -a, —adduser permite utilizatorului să adauge utilizatori; A, —no-adduser nu permite utilizatorului să adauge utilizatori; -P, —pwprompt solicită parola pentru noul utilizator creat; -i, --sysid id specifică identificatorul utilizatorului. Nu este necesar în mod normal.

Page 182: Administrarea Sistemelor Linux

Setări avansate ale sistemului 157

Prezentăm în continuare un exemplu de execuţie a comenzii createuser:

l createuser dragosîs the new user allowed to create databases? (y/n) yShall the new user be allowed to create more users? (y/n) yCREATE USER

Ştergerea de utilizatori se face fie prin intermediul comenzii SQL DROP USER, fie din shell-ul de comenzi, prin comanda dropuser:

| DROP USER utilizator

sau

| dropuser utilizator

De asemenea, PostgreSQL permite folosirea de grupuri de utilizatori, similar grupurilor UNIX. Adăugarea de grupuri se face prin comanda SQL CREATE GROUP, iar ştergerea,CU DROP GROUP.

Gestiunea privilegiilor

PostgreSQL oferă şi posibilitatea de acorda fiecărui utilizator privilegii pentru fiecare tip de interogare în parte. Aceasta se poate face folosind comanda SQL GRANT, având sintaxa:

GRANT listă_jDrivi2egii ON listă_ojbiecte TO { PUBLIC l GROUP grup | utilizator }I

unde:

listă_privilegii este o listă de privilegii, separate prin virgulă, putând luavalorile:SELECT (accesarea câmpurilor);INSERT (inserarea de înregistrări);UPDATE (modificarea datelor);DELETE (ştergerea de înregistrări);RULE (definirea de reguli);ALL (toate privilegiile); listăjobiecte este o listă de obiecte la

care se referă privilegiile, separate prinvirgulă:tableviewsequence',

Page 183: Administrarea Sistemelor Linux

158 Administrarea şi configurarea sistemelor Linux

PUBLIC se referă la toţi utilizatorii;GROUP grup acordă privilegiile grupului specificat;utilizator specifică numele utilizatorului căruia i se acordă privilegiile.

De exemplu, comanda următoare SQL va acorda tuturor utilizatorilor dreptul de introducere de înregistrări noi în tabela facturi:

| GRANT INSERT ON facturi TO PUBLIC;

Revocarea privilegiilor se face cu revoke, având sintaxa:

REVOKE listă^privilegii ON listă_obiecte FROM { PUBLIC | GROUP grup | utilizator }I

semnificaţia parametrilor fiind aceeaşi ca la grant.Iată şi un exemplu care retrage dreptul de ştergere de înregistrări din tabela

facturi utilizatorului sabin:

\ REVOKE DELETE ON facturi TO sabin;

2.2. Sistemul MySQL

O sesiune MySQL este alcătuită din următoarele două componente:- serverul mysqld;- aplicaţia care utilizează serviciile SQL (cum ar fi programul mysql).

De remarcat că, spre deosebire de PostgreSQL, MySQL nu foloseşte câte un proces separat pentru fiecare conexiune, ci un singur server, ce utilizează fire de execuţie (threads).

La prima pornire a serverului mysqld va fi verificată existenţa clusterului de baze de date. în general, acesta este localizat în /var/iib/mysqi/data. Dacă acesta nu există, el va fi creat automat de către scripturile de pornire, apelând programul mysql_install_db.

Fişierul de configurare se poate afla fie în directorul /etc, fie în directorul de date, fie în directorul home, şi are numele my.cnf. Fişierul de configurare conţine mai multe linii, având unul dintre următoarele formate:

[ grup ]opţiuneopţiune =• valoareset-variable = variabilă = valoare

Page 184: Administrarea Sistemelor Linux

Setări avansate ale sistemului 159

unde grup reprezintă numele unui program sau grup pentru care se stabilesc opţiunile. Grupul client se referă la toţi clienţii mysqld; mysqld se referă la serverul mysql.

Furnizăm mai jos un fişier global my. cnf:

[client] port=3306

[mysqld]port=3306set-variable = key_buffer_size = 16Mset-variable = max_allowed_packet = IM

[mysqldump] quick

Autentificarea clienţilor

Autentificarea este procedura prin care serverul de baze de date stabileşte identitatea clientului, determinând dacă se permite conectarea aplicaţiei-client.

Numele de utilizatori MySQL sunt separate logic de numele de utilizatori Linux de pe maşina pe care rulează serverul.

Autentificarea clienţilor se face prin intermediul unor ACL-m\ (Access Control List), şi anume utilizând tabelele host, user şi db, respectiv tabies_priv şi columns_priv. Acestea se găsesc în baza de date mysql. MySQL oferă şi posibilitatea de acorda fiecărui utilizator privilegii pentru fiecare tip de interogare în parte.

Tabela user determină dacă sunt acceptate sau respinse conexiuni. Pentru conexiunile acceptate, orice drepturi acordate în această tabelă indică privilegii globale. Aceste privilegii se referă la toate bazele de date.

Tabelele db şi host sunt utilizate împreună, astfel:• tabela db determină ce utilizatori conectaţi de pe anumite maşini pot accesa

fiecare bază de date şi ce operaţiuni pot efectua;• tabela host este folosită ca o extensie a tabelei db, dacă se doreşte ca o

înregistrare în tabela db să se refere la mai multe maşini.De menţionat că drepturile administrative (reload, shutdown etc.) sunt specificate doar în tabela user. Câmpurile din aceste tabele sunt prezentate în cele ce urmează:

Tabelul 2.1. Tabelele interne utilizate pentru autentificarea clienţilor

Numele tabelei user db host

Câmpuri de destinaţii

Host User Password

Host Db User

Host Db

Page 185: Administrarea Sistemelor Linux

Administrarea şi configurarea sistemelor Linux

Câmpuri de

privilegii Select_priv Select_priv Select_priv InsertjDriv Insert_priv Insert_priv Update_priv Update_priv Update_priv Delete_priv Delete_priv Delete_priv Index_priv Index_priv Index_priv Alter_priv Alter_priv Alter_priv Create_priv Create_priv Create_priv Drop_priv Drop_priv Drop_priv Grant_priv Grant_priv Grant_priv References_priv Reload_priv Shutdown_priv Process_priv File_priv

ITabelele tables_priv şi coiumns_priv sunt similare cu db, însă se referă la

nivel de tabel (respectiv coloană) în loc de bază de date.

Câmpurile din tabela user se completează astfel:Host este numele maşinii sau adresa sa de IP. Poate fi localhost pentru a indica maşina locală. Pot fi folosite şi caracterele wildcard „%" (orice şir) sau „_" (orice caracter). Valoarea vidă semnifică faptul că privilegiul trebuie confruntat cu înregistrarea din tabela host pentru care se potriveşte numele maşinii specificat; User este numele utilizatorului. Dacă este vid, este acceptat orice nume;

- Password este parola de acces. Dacă este vidă, utilizatorul nu trebuie săfurnizeze nici o parolă.

Tabelele db şi host se completează astfel:- Câmpul Host se completează ca la tabela user. Valoarea „%" în tabela db

înseamnă „orice maşină". Valoarea vidă în tabela db înseamnă „consultătabela db". Valoarea „%" sau vidă în tabela host înseamnă „orice maşină";

- Db este numele bazei de date la care se permite accesul. Valoarea „%" sauvidă înseamnă „orice bază de date";

- User este numele utilizatorului. Dacă este vid, este acceptat orice nume.

Tabelele db şi host sunt citite la pornirea serverului MySQL. Pentru a reciti aceste tabele după ce s-au efectuat modificări, trebuie apelată comanda SQL FLUSH

PRIVILEGES.

Câmpurile din tabelele tables_priv şi columns_priv se specifică după cum urmează:

160

Page 186: Administrarea Sistemelor Linux

Setări avansate ale sistemului 161

- Câmpul Host se completează ca la tabela user. Valoarea „%" sau vidăînseamnă „orice maşină";

- Câmpurile Db, Tablejiame şi Columnjiame nu pot conţine caracterewildcard şi nu pot fi vide. Ele specifică numele bazei de date, numele tabeleişi numele coloanei la care se referă regula de acces.

Modificarea acestor table se face cu ajutorul comenzilor SQL GRANT şi REVOKE, a căror sintaxă este:

GRANT privilegiu [ listă_coloane ] [ , . . . ] ON { tabelă l * l *.* l bază_de_date } TO utilizator [ IDENTIFIED BY 'parolă' ] [ , . . . ] [ WITH GRANT OPTION ]

REVOKE prilegiu [ listă_coloane ] [ , . . . ]ON { tabelă l * l *. * l bază_de_date } FROM utilizator [ , . . . ]

unde privilegiu poate fi:ALL PRIVILEGES toate privilegiileALTER modificarea câmpurilor unei tabeleCREATE creare de noi tabeleDELETE ştergere înregistrări dintr-o tabelăDROP ştergere de tabeleGRANT OPTION apelul comenzii GRANTINSERT introducere de noi înregistrări într-o tabelăRELOAD repornirea serverului MySQLSELECT citirea de înregistrări dintr-o tabelăSHUTDOWN oprirea serverului MySQLUPDATE modificarea valorilor câmpurilorUSAGE nici un privilegiu

De exemplu, comanda:

|GRANT ALL PRIVILEGES on biosfarm%.* to dragos@'10.O.O.%';

permite accesul utilizatorului dragos, de pe orice maşină din reţeaua 10.0.0.0, la bazele de date care încep cu biosfarm.

Administrarea utilizatorilor MySQL

Utilizatorii MySQL nu au legătură cu utilizatorii sistemului UNIX, ca de altfel nici parolele acestora. Numele utilizatorilor pot avea maxim 16 caiac! o lungime. ; ;a,'.;i de date cu utilizatorii se află în tabela mysql.user, la care aceştia nu trebuie să aibă acces.

Page 187: Administrarea Sistemelor Linux

162 Administrarea şi configurarea sistemelor Linux

Spre deosebire de PostgresSQL, la prima pornire a serverului MySQL este creat doar utilizatorul root, fără parolă, având toate privilegiile. Se recomandă stabilirea imediată a unei parole pentru acest utilizator.

Crearea de noi utilizatori MySQL se face tot prin intermediul comenzii GRANT. Dacă utilizatorul există, sunt modificate privilegiile acestuia, în caz contrar, el este creat. De exemplu, comanda:

GRANT ALL PRIVILEGES ON *.* TO dragos@localhost IDENTIFIED BY '123456' WITH GRANT OPTION;I

creează utilizatorul dragos, care se poate conecta de pe maşina locală, având toate drepturile, inclusiv dreptul de apelare GRANT. Parola iniţială este 123456.

Modificarea parolei unui utilizator se poate face cu ajutorul comenzii:

| SET PASSWORD FOR utilizator = PASSWORDţ'parolă' )

Spre exemplu:

| SET PASSWORD FOR dragos@localhost = PASSWORD('ppaarroollaa'}

Page 188: Administrarea Sistemelor Linux

3. Accesarea de la distanţă a sistemului: telnet şi SSH

Serviciul telnet

Serviciul telnet reprezintă o modalitate de conectare pe maşini aflate la distanţă. Este un serviciu nesigur, fiindcă trimite informaţiile neprotejate prin reţea, acestea putând fi urmărite cu ajutorul unor programe de capturare a pachetelor (de exemplu, tcpdump). Este recomandată utilizarea serviciului ssh.

Pentru folosirea acestui serviciu trebuie instalat pachetul telnet, conţinând clientul de conectare la alte maşini, şi pachetul telnet-server, care conţine serverul ce acceptă conexiuni telnet. Pornirea serverului in.telnetd se face automat, la primirea unei cereri de conectare, de către serviciul xinetd.

Serviciul SSH

Serviciul SSH este un mod sigur de conectare pe alte maşini, criptând informaţiile înainte de a fi trimise în reţea, prin intermediul unui sistem de chei publice şi private.

Linux utilizează implementarea serviciului SSH numită OpenSSH. Pentru folosirea acestui serviciu este necesară instalarea pachetului openssh, opţional a pachetului openssh-clients, care conţine clienţi de conectare la alte calculatoare, şi opţional a pachetului openssh-server, care conţine serverul ssh, dacă se doreşte acceptarea de conexiuni de pe alte calculatoare. Pentru ca maşina să accepte conexiuni SSH, trebuie ca serviciul sshd să fie pornit.

Se recomandă instalarea unei versiuni cât mai recente a acestor pachete, pentru a preveni existenţa eventualelor bug-uri, de la adresa http: / 7www.isc.org.

Fişierele de configurare ale sistemului OpenSSH se găsesc în directorul /etc/ssh. Fişierul /etc/ssh/ssh_config stabileşte opţiunile implicite, utilizate atât de către serverul, cât şi de către clienţii ssh, astfel:

Host Determină ca declaraţiile şi opţiunile care urmează să facăreferire doar la maşinile care corespund descrierii specificate. Pot fi utilizate şi caracterele wildcard „?" şi „*". Astfel,

Page 189: Administrarea Sistemelor Linux

164 Administrarea şi configurarea sistemelor Linux

Page 190: Administrarea Sistemelor Linux

declaraţia Host * face referire la toate maşinile şi constituievaloarea implicită. ForwardAgent Specifică ce agent de

autentificare a conexiunii (dacă există)să fie trimis celeilalte maşini. Implicit: No. ForwardXll

Redirecţionează automat sesiunile XII pe cealaltă maşină.Implicit: No. Permite autentificarea prin .rhosts (vezi Partea

II, cap. 4). Implicit: No. Rhosts RSA A uthentication

Permite autentificarea prin .rhosts atunci când se utilizeazăautentificare de tip RSA (Remote System Authenticatiori).

Implicit: No. RSAA uthentication

Utilizează autentificarea de tip RSA, care utilizează cheipublice şi private pentru autentificare. Implicit: Yes. Nu serecomandă modificarea acestei valori.

PasswordA uthenticationStabileşte ca autentificarea să fie realizată pe baza parolelor deacces. Implicit: Yes. Nu se recomandă modificarea acestei

valori. FallBackToRsh în cazul în care conexiunea cu daemonul ssh eşuează,

utilizează serviciul rsh. Implicit: No. Nu este recomandatămodificarea acestei valori, datorită securităţii reduse a

serviciului rsh.UseRsh Utilizează serviciile rloginlrsh. Valoarea implicită este No şi

nu este recomandată modificarea acesteia. BatchMode Stabileşte dacă întrebarea privind numele şi parola

utilizatorului la conectare va fi dezactivată (util dacă se seutilizează scp în scripturi). Implicit: No. CheckHostIP

Verifică adresa IP a maşinii de pe care se face conectarea,pentru a detecta atacuri de tip DNS spoofmg. Implicit: Yes.

StrictHostKeyCheckingSpecifică dacă ssh va adăuga automat noile chei în~/.ssh/known_hosts. Implicit: No. Pentru prevenireaatacurilor de tip trojan horse („cal troian"), se recomandăsetarea pe Yes a acestei opţiuni. IdentityFile Specifică

fişierul de identitate al sistemului RSA. Implicit:- / . s sh / iden t i ty .

Port Stabileşte portul la care se conectează ssh la distanţă. Implicit:22.

Cipher Stabileşte tipul de criptare. Implicit: blowfish (acestautilizează blocuri de 64 biţi şi chei de criptare de până la 448

de biţi). EscapeChar Specifică caracterul escape utilizat pentru suspendarea sesiunii.

Page 191: Administrarea Sistemelor Linux

Setări avansate ale sistemului 165

Informaţii suplimentare pot fi obţinute prin mân ssh.

Fişierul /etc/ssh/sshd_config stabileşte opţiunile utilizate de daemonul ssh. Principalele opţiuni recunoscute sunt următoarele:

Port Specifică portul la care ssh aşteaptă conexiuni. Implicit: 22.ListenAddress Specifică adresa IP a interfeţei de reţea pe care va fi conectat

socketul daemonului ssh. Implicit: 0.0.0.0 (toate interfeţele).HostKey Specifică fişierul în care se află cheile private. Implicit:

/etc/ssh/ssh_host_key. ServerKeyBits Stabileşte numărul de biţi utilizat de cheia serverului. Această

valoare este folosită la pornirea daemonului, pentru a-şigenera propria cheie RSA. LoginGraceTime Stabileşte timpul

de aşteptare, în secunde, în care utilizatorulnu va fi deconectat dacă nu a intrat cu succes pe maşină.

Implicit: 600. KeyRegenerationlnterval

Specifică intervalul de timp, în secunde, în care ssh îşiregenerează cheia de criptare. Implicit: 3600.

PermitRootLogin Permite utilizatorului root să se conecteze prin ssh. Implicit:No. Nu trebuie setată pe Yes. IgnoreRhosts Stabileşte

dacă .rhosts va fi utilizat sau nu în procesul deautentificare. Implicit: No.

Ignore UserKnownHostsIgnoră conţinutul fişierului ~/.ssh/known_hosts în cadrul

autentificării RSA. Implicit: Yes. StrictModes Verifică permisiunile utilizatorului în directorul home înainte

de a accepta intrarea acestuia în sistem (pentru a verifica, deexemplu, dacă directorul utilizatorului nu are drepturi descriere pentru oricine). Implicit: Yes. XllForwarding

Activează/dezactivează redirecţionarea sesiunilor XII.Implicit: No.

PrintMotd Afişează conţinutul fişierului /etc/motd (aşa-numitul „mesajal zilei") atunci când un utilizator se conectează interactiv lasistem. Implicit: Yes. SyslogFacility Stabileşte clasa de

jurnalizare utilizată de syslog. Implicit: A UTH.Pentru detalii privind clasele de jurnalizare, vezi cap. 10.

Loglnfo Stabileşte nivelul de jurnalizare utilizat de syslog. Implicit:INFO.

Rhosts A uthenticationPermite autentificarea prin .rhosts. Implicit: No. Nu este

recomandată setarea pe Yes.

Page 192: Administrarea Sistemelor Linux

166 Administrarea şi configurarea sistemelor Linux

RhostsRSAA ulhenticationPermite autentificarea prin .rhosts atunci când este utilizat

sistemul RSA. Implicit: No. RSAA uthentication

Utilizează sistemul de autentificare RSA. Implicit: Yes. Nueste recomandată modificarea acestei valori.

PasswordA uthenticationStabileşte ca autentificarea să fie realizată pe baza parolelor deacces. Implicit: Yes. Nu se recomandă modificarea acestei

valori. PermitEmptyPasswords

Permite folosirea de parole vide. Dacă se doreşte utilizarea scpîn scripturi, această opţiune trebuie setată pe Yes. Implicit: No.

AllowUsers Specifică ce utilizatori pot accesa serviciile ssh.CheckMail Informează utilizatorii privind existenţa mesajelor noi atunci

când se face conectarea.UseLogin Execută programul login după conectare.Banner Specifică un fişier a cărui conţinut va fi afişat după conectare

(de exemplu, /etc/issue.net).

Detalii suplimentare pot fi obţinute apelând mân sshd. în continuare prezentăm un exemplu de fişier /etc/sshd_conf ig:

# portul pe care sunt acceptate conexiuniPort 22l nu permite intrarea utilizatorului root în sistem PermitRootLogin no# clasa de jurnalizare syslogSyslogFacility AOTHPRIVt nivelul de jurnalizare LogLevel INFO# utilizează sistemul de autentificare RSARSAAuthentication yes# autentificarea se face pe baza parolelor de accesPasswordAuthentication yes# nu acceptă parole videPermitEmptyPasswords no

# lista de utilizatori cărora li se permite intrarea în sistemAllowUsers dragos sabin

Page 193: Administrarea Sistemelor Linux

4. Sisteme de fişiere în reţea: NFS

.Sistemul NFS (Network File System), implementat pentru prima oară de

către SUN Microsystems, permite ca un sistem de fişiere să se găsească fizic pe o altă maşină decât cea pe care este utilizat, dar să se prezinte utilizatorilor întocmai ca un director local. Cu alte cuvinte, un sistem de fişiere aflat fizic pe altă maşină poate fi montat într-un director din ierarhia locală, toate operaţiunile asupra acestuia fiind total transparente pentru utilizatori. Este net superior sistemului file sharing din toată gama de sisteme de operare Windows: oferă securitate sporită, fiabilitate mai mare, siguranţa informaţiilor, viteză mai mare de transfer.

Sistemul NFS are o structură client-server, partea de client este maşina care montează sistemul de fişiere aflat la distanţă, iar partea de server este maşina pe care se află fizic respectivul sistem de fişiere şi care permite clienţilor să îl acceseze, adică să exporte sistemul de fişiere. Partea de server

Page 194: Administrarea Sistemelor Linux

constă din mai mulţi daemoni care gestionează serviciile NFS:

portmap

asociază perechii protocol RPC, versiune protocol RPC un

protocol, respectiv port. (Remote Procedure Caii) un protocol folosit de NFS şi de NIS, care permite apelarea procedurilor la distanţă;

nfsd

gestionează exportarea sistemelor de fişier

e, precum şi acce-sarea acestora. Serverul NFS va executa mai multe instanţe ale acestui daemon;

rpc.mountd gestionează cererile de montare;rpc.statd gestionează căderea şi restaurarea blocajelor;rpc.rquotad gestionează limitările de tip quota (privind spaţiul ocupat

pe disc) pe sistemul de fişiere exportat.

Pentru utilizarea NFS ca server, trebuie ca nucleul Linux să fie compilat cu următoarele opţiuni activate:

- File sytemso NFS server supporto Provide NFSv3 server support

Pentru utilizarea clienţilor NFS, trebuie ca următoarele opţiuni să fie activate:

- File systemso NFS file system supporto Provide NFSvS client support

Page 195: Administrarea Sistemelor Linux

168 Administrarea şi configurarea sistemelor Linux

Pentru ca serviciile NFS să fie active, trebuie ca serviciile portmap şi nfsd să fie pornite.

Pentru utilizarea părţii de client NFS, trebuie instalat pachetul nfs-clients, iar pentru partea de server NFS, pachetele portmap şi nfs-utils.

Montarea sistemelor de fişiere aflate la distan ţa

Montarea şi demontarea se fac cu ajutorul comenzilor mount, respectiv umount, conform sintaxei descrise în partea II, secţiunea 1.3, cu menţiunea că nume_dispozitiv are forma maşină:director. Spre exemplu, comanda:

| mount hercules:/home/dragos /mnt/dragos

montează conţinutul directorului /home/dragos aflat pe maşina hercules.

Montarea automată se realizează prin intermediul fişierului /etc/fstab, descris tot în secţiunea menţionată mai sus. Astfel, linia pentru montarea unui sistem de fişiere aflat la distanţă are formatul:

| maşină:director punct_de_montare nfs opţiuni O O

Sunt disponibile următoarele opţiuni:

ro montează sistemul read-only (fără drept de scriere);suid respectă modul SUID al fişierelor;nosuid nu respectă modul SUID al fişierelor, adică un fişier SUID de pe

sistemul de fişiere aflat la distanţă nu va fi executat ca root. Esteopţiunea recomandată.

Iată şi un exemplu:

| peak:/home/dragos/work /home/dragos/work_peak nfs defaults O O

Exportarea sistemelor de fişiere

Se face prin intermediul fişierului /etc/exports, care stabileşte ce sisteme de fişiere vor fi disponibile altor maşini şi în ce condiţii şi restricţii. Este structurat pe mai multe linii, pe fiecare câte un sistem de fişiere, conform următorului format:

| director maşină(opţiuni)

unde:director este directorul care va fi exportat;

Page 196: Administrarea Sistemelor Linux

Setări avansate ale sistemului 169

maşină este numele sau adresa IP a maşinii căreia îi este permis accesul. Pot fifolosite şi caractere wildcard;

opţiuni poate lua una dintre valorile:ro nu permite scrierea în sistemul de fişiere;rw permite operaţiunile de scriere în sistemul de fişiere;root_squash

mapează cererile provenite de la utilizatorul root (UID=0,GID=0) pe utilizatorul anonim (vezi infra};

no_root_squashdezactivează opţiunea root jsquash;

all_squashmapează toate combinaţiile UID/GID pe utilizatorul anonim

(vezi infra); anonuid stabileşte valoarea UID (identificatorul utilizatorului) pentru

utilizatorul anonim; anongid stabileşte valoarea GID (identificatorul grupului) pentru

utilizatorul anonim.

în continuare prezentăm un exemplu de fişier /etc/exports:

# fişier exemplu /etc/exports

# exportăm tot sistemul de fişiere, doar pentru o maşină sigură/ zeus(rw,no_root_squash)

# exportăm directorul /home/dragos, doar pentru maşinile hercules# şi zeus/home/dragos hercules(rw) zeus(rw)

# exportăm conţinutul CD-urilor montate/mnt/cdrom *.biosfarm.ro(ro,all squash, anonuid=99,anongid=99)

Page 197: Administrarea Sistemelor Linux

5. Interacţiunea cu sistemele Windows:Samba

Samba este un sistem care oferă servicii SMB (numit câteodată şi Lan Manager) l CIFS (The Common Internet Filesystem), asigurând compatibilitatea cu sistemeley?/e sharing sau Microsoft Network (sistemul de partajare a resurselor în reţea, transferul de fişiere între maşini etc., utilizate de sistemele Windows) din MSCLIENT 3.00 pentru DOS, Windows for Workgroups, Windows 95/98/ME, Windows NT, Windows 2000/XP, OS/2, DAVE pentru Macintosh. Este alcătuit din două părţi, una de server, care permite folosirea sistemului Linux ca server SMB (adică maşina va conţine resurse - cum ar fi directoare, discuri, imprimante-care vor putea fi accesate de către alte calculatoare), şi una de client, care permite accesarea serviciilor SMB oferite de alte maşini.

Pentru utilizarea clienţilor SMB de pe maşina Linux, trebuie ca nucleul să fie compilat cu opţiunea următoare activată:

- File systemsoSMB file system support (to mount Windows shares etc.)

Pentru ca serverul Samba să funcţioneze, trebuie ca daemonii smbd şi nmbd (serverul de nume NetBIOS, care furnizează serviciile de nume NetBIOS peste protocolul IP).

Pachetul samba-common trebuie obligatoriu instalat. De asemenea, pentru partea de server trebuie instalat şi pachetul samba, iar pentru partea de client (dar nu obligatoriu), samba-clients.

Este important de semnalat faptul că protocolul Samba este implementat peste protocolul TCP/IP - ca urmare, pe maşinile Windows care accesează servere Samba trebuie instalat şi suportul pentru protocolul TCP/IP.

Configurarea serverului Samba se face prin intermediul fişierului /etc/samba/smb.conf. Acesta poate fi administrat fie cu ajutorul interfeţei Web numi tă swat (d in pache tu l samba-swaf ) , l oca l i za tă l a ad resa http://localhost: 901 (meniul System :: Samba Configuration în Red Hat, respectiv Configuration :: Networking :: WizDrake în Mandrake), fie manual:

Page 198: Administrarea Sistemelor Linux

Setări avansate ale sistemului 171

Page 199: Administrarea Sistemelor Linux

•V- Samba Web Admlmatralion Tool - Komiunor '•• • • • : '" •'••'•' ''*'?•'•' -• •ŞBIffW^™"'' 1*1*1 patton £dil ^iew Qo flookmsrKs lools Settings &indow tleip Up Back Foivifard Horn» URL Rebad Stor) Cui '.'op/ Paste Prinţ f',i;v F!,ii->e Find incrsase Font Sizes f "•>',<••?,:>.£« P>i! £^ « Securit/ g

Cltir bntton bar lacatton Uffilîftp™i f"^ITri-53i ioMÎs*™~m*1' -"""•™'"-'a""-*a •i&-'1 -•=»»'"'••---•*• -»«•-««... . ««s™.™ „„.,„.,. ............... , 13« ......

,-. -r|GO

Baae Opdon»i H8lp workgroup [BOSFARW j Set Delajit j i p-i

Heip nettto» name [ | Set Detault j i i

Help «arvei string • samba 1 Set Default i

Heip mtarîa^s ''• \ S«t DefaulI '!

Socurltv Optlons

i l• Ş j :

Help ««cuflt/ fsHARE ^ j stToetawit]

Help enraypt patnnias j v*s •» Hset Delaull j Heip

updat» encryp(«d | No v j Set Detault J

: l :i

Haip guBstaccount |gu»st i Set Detaurt j i i:!

Help hottl «Itow ' { Set Detault | i ;

Help nost» deny i Sat Detault j

Logglng OpUora

i 1

Help kjg tile AW,1og..'samba.^b(Ti.log j Set Detault j Help

mau 109 sl2« 0 \ Set Defauil 1

! i ;!

Heip so«*.Bl Opttons TCP_NODELAY SO_RCVBUF-8l92 3O_| Set Detault ]

PrinMng OpOorrt

Help prtnnn0 Ipfng w | s*t DetauT] httpj/127 0.0.1

«Ol/*watffielp/tmt)^on(Shtml#SERVERSTRINQ

! \; 1

E

Figura 5.1. Interfaţa Web Samba Swat

Fişierul de configurare este alcătuit din secţiuni şi parametri. O secţiune începe cu numele secţiunii, încadrată de paranteze drepte, şi se încheie în momentul declarării altei secţiuni. Secţiunile conţin parametri de forma:

| parametru = valoare

Liniile prefixate cu „#" sau „,-" sunt considerate comentarii şi sunt ignorate. Continuarea unei linii se poate realiza adăugând caracterul „\" la sfârşitul acesteia.

Există trei secţiuni speciale, şi anume [global], [homes] şi [printers]. Celelalte secţiuni definesc o resursă partajată (sau serviciu), adică vizibilă altor maşini. Astfel, numele secţiunii constituie numele resursei, iar parametrii din cadrul acesteia îi stabilesc proprietăţile. Aceste resurse partajate reprezintă fie directoare la care este permis accesul, fie imprimante la care se poate tipări. Utilizatorii care pot accesa resursele sunt fie utilizatorul anonim de tip guest, pentru care nu este necesară o parolă, fie utilizatorii obişnuiţi, autentificându-se prin intermediul numelui şi parolei.

Page 200: Administrarea Sistemelor Linux

172 Administrarea şi configurarea sistemelor Linux

Substituirea variabilelor

Majoritatea şirurilor de caractere din cadrul fişierului de configurare pot conţine substituţii. De exemplu, /home/%u va fi interpretat ca /home/dragos dacă numele utilizatorului este dragos. Sunt recunoscute următoarele substituţii:

%S numele serviciului curent%u numele utilizatorului%g grupul din care face parte utilizatorul de mai sus%U numele de utilizator al sesiunii (cel furnizat de client)%G grupul din care face parte utilizatorul de mai sus%H directorul home al utilizatorului%v versiunea Samba%h numele maşinii (Linux) pe care rulează serverul Samba%nt numele NetBIOS al maşinii-client%L numele NetBIOS al serverului Samba%M numele maşinii-client%d identificatorul procesului serverului Samba%I adresa IP a maşinii-client%T timpul curent (data şi ora)%$(var) valoarea variabilei de mediu var.

Secţiunea [global]

Parametrii din această secţiune se referă la configurările serverului Samba şi la alte opţiuni implicite. Sunt recunoscuţi următorii parametri:

allow trusted domains Dacă este No, va fi refuzată conectarea de pe un domeniu sau workgroup altul decât cel a maşinii. Are efect doar atunci când parametrul security are valoarea server sau domain (vezi infra). Implicit: Yes.

bind interfaces only Limitează interfeţele prin care vor fi acceptate cererile SMB. Lista de interfeţe se stabileşte cu parametrul interfaces. Implicit: No.

change notify timeout Stabileşte intervalul de timp la care Samba va transmite clienţilor notificările de modificare a conţinutului directoa-relor. Implicit: 60.

character set Permite utilizarea unor anumite seturi de caractere pentru translarea numelor de fişiere specificate de către clienţi. Poate lua una dintre valorile:

Page 201: Administrarea Sistemelor Linux

Setări avansate ale sistemului 173

Page 202: Administrarea Sistemelor Linux

• ISO8859-J, setul de caractere vest-european. Parametrulclient code page trebuie setat pe 850;

• ISO8859-2, setul de caractere est-european (include şiRomânia). Parametrul client code page trebuie setat pe852;

• ISO8859-5, setul de caractere rus (chirilic). Parametrulclient code page trebuie setat pe 866;

• ISO8859-7, setul de caractere grecesc. Parametrul clientcode page trebuie setat pe 737;

• KOI8-R, setul de caractere rus. Parametrul client codepage trebuie setat pe 866.

Implicit: valoare vidă.client code page Stabileşte codul de pagină utilizat de clienţii Samba. Poate lua

una dintre valorile:• 437, MS-DOS Latin;• 737, Windows 95 Greek;• 850, MS-DOS Latin l;• 552, MS-DOS Latin 2;• 861, MS-DOS Icelandic;" 866, MS-DOS Cyrillic;• 932, MS-DOS Japanese SJIS;• 936, MS-DOS Simplified Chinese;• 949, MS-DOS Korean Hangul;" 950, MS-DOS Tradiţional Chinese.Implicit: 550.Specifică numărul de minute de inactivitate (atunci când nu

sunt fişiere deschise) după care clienţii vor fi deconectaţi.Valoarea implicită este O şi semnifică faptul că valoarea esteinfinită.Specifică numele resursei la care se va face conectarea dacă

resursa solicitată de un client nu este găsită.Stabileşte ca, în cazul funcţionării nmbd ca server WINS, dacănumele NetBIOS al unei maşini nu a fost găsit, să se apeleze

la serverul DNS pentru rezolvarea numelui. Implicit: No.Dacă este setat pe Yes, serverul Samba va rezolva cereri de

nume pentru workgroup-ul din care face parte. Implicit: No.Activează cumularea listelor de căutare în cadrul nmbd.Acesta va defini un nume special de domeniu NetBIOS care îlva identifica ca browser principal de domeniu pentruworkgroup-ul din care face parte. Toate browserele principaledin cadrul subreţelelor vor trimite acestui nmbd toate listele de

Deadtime

default service

dns proxy

domain logons

domain maşter

Page 203: Administrarea Sistemelor Linux

căutare locale, apoi îi vor solicita lista completă de căutare.

Page 204: Administrarea Sistemelor Linux

174 Administrarea şi configurarea sistemelor Linux

Page 205: Administrarea Sistemelor Linux

Astfel, clienţii vor primi lista completă de căutare. Implicit:No.

encryptpasswords Utilizează parole criptate. Implicit: No. hide local users Face utilizatorii sistemului Linux invizibili pentru clienţi.

Implicit: No.hosts allow Stabileşte maşinile care pot accesa resursele SMB.hosts equiv Specifică numele unui fişier ce conţine numele maşinilor şi

utilizatorilor cărora le va fi permis accesul fără a specifica oparolă. Implicit: No. Nu se recomandă folosirea acestei

opţiuni.Include Include conţinutul fişierului de configurare specificat.Interfaces Stabileşte prin ce interfeţe vor fi acceptate cererile SMB (vezi

parametrul bind interfaces only). Interfeţele pot fi de forma:• un nume de interfaţă (e.g. etho). Pot fi folosite şi caractere

wildcard (e.g. eth*);• o adresă IP;• o pereche adresă / mască_de_reţea;• o pereche broadcast / mască_de_reţea.

loadprinters încarcă toate imprimantele definite în /etc/printcap. Pentrudetalii, a se vedea secţiunea despre imprimante. Implicit: Yes.

logfile Specifică numele fişierului în care se va face jurnalizareaevenimentelor Samba.

log level Specifică nivelul de jurnalizare. Implicit: J.map to guest Stabileşte modul de tratare a cererilor de conectare pentru care

numele utilizatorului nu este cunoscut, după cum urmează:• Never. conectarea este refuzată. Este valoarea implicită;• Bad User. conectarea utilizatorilor având parola greşită

este refuzată. Dacă utilizatorul nu există, este considerat cafiind utilizatorul anonim, guest;

• Bad Password: conectarea utilizatorilor având parolagreşită este considerată ca utilizator anonim. Aceastăopţiune nu este recomandată.

Acest parametru este funcţional doar atunci când security esteuser, server sau domain.

minpassword length Specifică dimensiunea minimă a parolei. Implicit: 5. name resolve order Stabileşte modul de rezolvare a numelor, conţinând o listă

de metode de rezolvare, separate prin caracterul spaţiu, ce vorfi apelate în ordinea apariţiei, astfel:• Imhosts: caută adresa în fişierul imhosts;• host: modul standard de rezolvare a adresei (căutare în

/etc/hosts, apoi apelarea la serverul DNS);• -wins: apelează la serviciile serverului WINS specificat cu

parametrul wins server,

Page 206: Administrarea Sistemelor Linux

Setări avansate ale sistemului 175

Page 207: Administrarea Sistemelor Linux

• bcast: trimite o cerere broadcast către toate interfeţele dereţea specificate cu parametrul interfaces.

Implicit: Imhosts host wins bcast.Specifică o listă de nume sub care va fi cunoscut serverul, în afară de numele său. Vezi şi netbios name. Specifică numele serverului. Implicit este numele UNIX al sistemului.

Permite accesul la utilizatori având parola vidă. Implicit: No. restrictions Urmează directivele PAM privind autentificarea

utilizatorilor (pentru detalii, vezi cap. 12). Implicit: No.restrict anonymous Retrage posibilitatea accesării serverului cu utilizatorul

anonim. Util pentru reţele NT.Stabileşte modul de gestionare a resurselor şi utilizatorilor. Poate fi:• share: clienţii care se conectează nu trebuie să specifice un

nume de utilizator şi o parolă înainte de a se conecta la oresursă partajată, ci în momentul în care încearcăconectarea la respectiva resursă;

• user. clienţii trebuie să furnizeze un nume de utilizator şi oparolă înainte de a putea accesa o resursă partajată. Esteopţiunea implicită;

" server, validarea numelui de utilizator şi a parolei se va face apelând la un alt server SMB, cum ar fi o maşină NT. Dacă această validare nu este posibilă (de exemplu, în cazul în care cealaltă maşină este deconectată), se va recurge la metoda user, descrisă mai sus;

• domain: validarea numelui de utilizator şi a parolei se vaface apelând la un alt server Windows NT, denumitcontroler primar sau de siguranţă de domeniu. Parametrulencryptedpasswords trebuie setat pe Yes.

Stabileşte nivelul de jurnalizare utilizat de syslog: O = LOG_ERR, l = LOG_WARNING, 2 = LOG_NOTICE, 3 = LOGJNFO, > 4 = LOG_DEBUG. Implicit: L Dacă acest parametru este setat pe Yes, mesajele Samba vor fi trimise doar către sistemul syslog şi nu către fişierele pentru jurnalizare obişnuite.Utilizează sistemul .rhosts pentru autentificare (vezi partea II, cap. 4). Nu se recomandă activarea sa. Implicit: No. Specifică un fişier conţinând mapări ale utilizatorilor de pe partea de client către utilizatorii de pe server. Poate fi util pentru a crea corespendenţe între numele de utilizatori Windows şi cei de pe maşina Linux. Fiecare linie din acest fişier conţine numele utilizatorului Linux, caracterul „=",

netbios aliases

netbios name

nuli passwords obey pam

Security

syslog

syslog only

use rhosts

username map

Page 208: Administrarea Sistemelor Linux

176 Administrarea şi configurarea sistemelor Linux

urmat de lista de utilizatori corespondenţi. Această listă poate conţine şi nume de forma Qgrup, caz în care se referă la orice utilizator din cadrul grupului respectiv. De asemenea, numele „*" semnifică orice utilizator.

wins server Specifică numele sau adresa IP a serverului WINS la care se va înregistra nmbd.

wins support Permite funcţionarea nmbd ca server WINS. Nu trebuie setat decât pe o singură maşină din reţea. Implicit: No.

workgroup Specifică numele workgroup-ului din care face parte maşina.

In cele ce urmează, prezentăm ca exemplu o secţiune [global]:

[global]

# numele workgroup-uluiworkgroup=biosfarm

# numele serveruluiserver string=zeus

# maşinile care pot accesa serviciile serveruluihosts allow=10.0.0. 127.

# încarcă toate imprimantele din /etc/printcapload printers=yes

# specifică sistemul de tipărireprinţing=lprng

# stabileşte un utilizator anonimguest account=nobody

# foloseşte câte un fişier jurnal pentru fiecare maşină în partelog file=/var/log/samba/%m.log

security=shareusername map=/etc/samba/smbusers

Conţinutul unui fişier /etc/samba/smbusers este furnizat în continuare:

root = administrator adminnobody = guest pcguest smbguest "Dragos Acostachioaie"

Secţiunea [homes]

Dacă această secţiune este prezentă în fişierul de configurare, utilizatorii conectaţi îşi pot accesa directorul home. Este important de notat faptul că, dacă în această

Page 209: Administrarea Sistemelor Linux

Setări avansate ale sistemului 177

secţiune este permis accesul utilizatorului anonim (guest), toate directoarele home vor putea fi accesate fără a fi solicitată vreo parolă. Iată o secţiune [home] tipică:

[homes] writable=yesI

Secţiunea [printers]

Această secţiune funcţionează într-un mod similar cu [homes], dar pentru imprimante. Cu alte cuvinte, dacă această secţiune este prezentă în fişierul de configurare, utilizatorii conectaţi vor putea accesa toate imprimantele definite în /etc/printcap. Iată o secţiune [printers] uzuală:

[printers]path=/var/spool/sambaguest ok=yesprintable=yes

Secţiunile pentru definirea resurselor partajate

Sunt recunoscuţi următorii parametri:

admin users Specifică o listă de utilizatori cărora li se vor acorda privilegiiadministrative asupra resursei, ca root.

Available Specifică dacă resursa este sau nu disponibilă. Implicit: Yes.browseable (sau browsable) Stabileşte dacă resursa este vizibilă în lista de

resurse disponibile. Implicit: Yes.Comment Setează un comentariu al resursei, care va fi vizibil şi

clientului în lista de resurse disponibile.copy Copiază parametrii altei resurse. Parametrii din secţiunea

curentă vor suprascrie pe cei copiaţi. Util pentru crearea deresurse-machetă. create mode (sau create mask) Specifică

masca cu care permisiunile fişierelornou-create va fi adunată (operaţie AND). Nu se aplică la^CZ-urile(Access Control List) din Windows NT/2000. Implicit: 0744.

delete readonly Permite ştergerea fişierelor care au atributul read-only.Implicit: No. directory mode (sau directory mask) Specifică

masca cu care permisiuniledirectoarelor nou-create va fi adunată (operaţie AND). Nu seaplică la ^CZ,-urile (Access Control List) din WindowsNT/2000. Implicit: 0755.

Page 210: Administrarea Sistemelor Linux

178 Administrarea şi configurarea sistemelor Linux

directory security mask Specifică masca cu care permisiunile modificate aledirectoarelor de pe o maşină Windows NT/2000 va fi adunată

(operaţie AND). Implicit: 0777. guest ok (sau public) Permite accesarea resursei de către utilizatorul anonim.

Implicit: No. hide dotfiles Ascunde fişierele care încep cu un punct (exemplu: .pinerc).

Implicit: Yes.hidefdes Specifică o listă de fişiere care vor fi ascunse, dar accesibile.

Pot fi utilizate şi caracterele wildcard „*" şi „?".hosts allow Specifică o listă de maşini cărora le este permis accesul la

resursă. Vezi formatul descris mai sus, la parametrulinterfaces.

hosts deny Specifică o listă de maşini cărora nu le este permis accesul laresursă. Vezi parametrul precedent. invalid mers

Stabileşte o listă de utilizatori care nu vor putea accesaresursa. max connections Stabileşte numărul maxim de

conexiuni la resursă. Impliciteste O, care permite un număr nelimitat de conexiuni. max

prinţ jobs Stabileşte numărul maxim de sarcini de tipărire care pot existaîn coada de tipărire Samba la un moment dat. Implicit: O,

adică fără nelimitat.only user Permite accesul utilizatorilor al căror nume nu se află în lista

username. Este util doar în cazul security-share. Implicit: No.path Specifică directorul la care se referă resursa, în cazul

imprimantelor, specifică directorul în care sunt localizatesarcinile de tipărire.

Printable Specifică faptul că resursa este o imprimantă. Implicit: No.printername Specifică numele imprimantei spre care vor fi direcţionale

sarcinile de tipărire.Printing Stabileşte sistemul de tipărire utilizat, în implementarea

actuală recunoaşte opţiunile: BSD, AIX, LPRNG, PIP, SYSV,HPUX, QNX, SOFTQ, CUPS.

read list Specifică lista de utilizatori care au posibilitatea de citire aresursei. Poate fi folosită şi expresia @grup pentru a specifica

toţi utilizatorii dintr-un grup. security mask Specifică masca cu care permisiunile modificate ale fişierelor

de pe o maşină Windows NT/2000 va fi adunată (operaţieAND). Implicit: 0777. username (sau user, users) Specifică o

listă de utilizatori cu a căror parolă va ficomparată parola furnizată, atunci când numele utilizatoruluinu poate fi furnizat de către client. Este bine să nu se recurgăla această listă, întrucât reduce atât timpul de validare a

parolei, cât şi securitatea sistemului.

Page 211: Administrarea Sistemelor Linux

Setări avansate ale sistemului 179

valid users Stabileşte o listă de utilizatori care pot accesa resursa.vetoftles Specifică o listă de fişiere care vor fi ascunse şi inaccesibile,

separate prin caracterul ,/"• Pot fi utilizate şi caracterele wildcard „*" şi „?". Numele de fişiere nu pot conţine caracterul,/'.

Volume Specifică eticheta de volum a resursei.writable (sau writeable) Permite crearea şi modificarea fişierelor din cadrul

resursei. Implicit: No.write list Specifică lista de utilizatori care au posibilitatea de scriere în

cadrul resursei. Dreptul de scriere este acordat numai dacă utilizatorul apare şi în lista read list. Poate fi folosită şi expresia @grup pentru a specifica toţi utilizatorii dintr-un grup.

Mai multe informaţii privind fişierul de configurare Samba pot fi obţinute din pagina de manual, cu mân smb_conf.

# permite accesul read-only, cu excepţia utilizatorilor din grupul# doc[documente]path=/home/biosfarm/doc public=yes writable=yeswrite list=@doc

# un director accesibil doar de către utilizatorul dragos[work]path=/home/dragos/workwritable=yesvalid users=dragos

Gestionarea utilizatorilor Samba

Parolele Samba criptate sunt stocate în fişierul /etc/samba/smbpasswd. Ele pot fi modificate cu ajutorul programului smbpasswd. Acesta nu accesează direct fişierul de parole, ci prin intermediul smbd. Sintaxa smbpasswd este:

| smbpasswd [ opţiuni ] [ utilizator ]

unde opţiuni pot fi:-« adaugă utilizatorul specificat, dacă acesta nu există; -A: şterge utilizatorul specificat;-d dezactivează utilizatorul specificat; cu alte cuvinte, respectivului

utilizator i se va respinge accesul la serverul Samba;

Page 212: Administrarea Sistemelor Linux

180 Administrarea şi configurarea sistemelor Linux

-e reactivează utilizatorul specificat;-n setează parola vidă pentru utilizatorul specificat. Pentru ca acesta să poată

accesa serverul Samba, trebuie ca parametrul nuli passwords să fie setatpe Yes. -r specifică numele NetBIOS al maşinii pe care se află

utilizatorul a căruiparolă va fi schimbată (nu are efect dacă maşina rulează Windows forWorkgroups sau Windows 95/98, întrucât acestea nu au o bază de date deparole); -U utilizator stabileşte numele utilizatorului pentru

opţiunea -r.

Informaţii privind alte opţiuni pot fi obţinute apelând mân smbpasswd.

Client SMB

Pentru a monta o resursă SMB, se utilizează comanda mount cu parametrul -t smbf s. Aceasta apelează practic daemonul smbmount:

| smbmount [ -o opţiuni ] specificaţie_resursă punct_de_montare

unde specificaţie_resursă este de tip URI, de forma:

smb://server/directorsmb://workgroup/server/directorsmb://utilizator:parolă@server/directorsmb://utilizator:parolă@workgroup/server/director

Spre exemplu, comanda următoare montează resursa BIOSFARM/ hercules/biosfarmîn directorul /mnt/win:

| mount -t smbfs smb://biosfarm/hercules/biosfarm /mnt/win

Pentru tipărirea de fişiere la o imprimantă SMB, se foloseşte comanda smbspool având sintaxa:

| smbspool imprimantă_SMB fişier

unde imprimantă_SMB este de tip URI, similar cu specificaţia de resursă URI descrisă mai sus.

Ca exemplu, comanda următoare tipăreşte fişierul smbmount. ps la imprimanta laser de pe maşina peak:

| smbspool smb://biosfarm/peak/laser smbmount.ps

Page 213: Administrarea Sistemelor Linux

6. Sistemul numelor de domenii: DNS

Fiecare sistem din cadrul reţelei Internet are un nume de maşină, care, împreună cu numele domeniului, defineşte un nume unic al acestuia. Numele de maşină permit referirea mai uşoară la un calculator, în locul adresei de reţea a acestuia. Rezolvarea (translarea) în ambele sensuri a numelui, respectiv adresei se realizează prin intermediul sistemului numelui de domenii (DNS). Translarea adresei IP în nume se numeşte rezolvare inversă (reverse).

Sistemul DNS nu este altceva decât o uriaşă bază de date distribuită pe tot globul. Aceasta este implementată de către aşa-numitele servere DNS, care furnizează informaţii despre unul sau mai multe domenii. Pentru fiecare zonă există cel puţin două servere de nume care conţin informaţiile despre maşinile din cadrul domeniului. Primul server este denumit server DNS primar, şi este acela care încarcă configurările zonelor DNS din fişierele de configurare, iar celelalte -servere DNS secundare, care transferă informaţiile despre zone de la serverul primar.

Pentru a micşora timpul de rezolvare a adreselor şi pentru a reduce traficul prin legătura Internet, serverul de nume stochează informaţiile obţinute în urma cererilor într-un cache local.

Serverele DNS care gestionează toate informaţiile despre maşinile din cadrul unei zone se numesc autoritare pentru respectiva zonă şi reprezintă serverele DNS primare descrise mai sus. De asemenea, un server DNS poate să nu fie autoritar decât pentru maşina locală, şi este numit server caching-only.

O informaţie din baza de date DNS este denumită înregistrare de resursă, RR (Resource Record). Fiecare înregistrare are asociat un tip care descrie tipul de informaţie pe care o reprezintă şi o clasă care specifică la ce tip de reţea se aplică. Un exemplu tipic de înregistrare de resursă este înregistrarea de tip A, care asociază un nume de domeniu cu o adresă IP.

Serverul ce oferă servicii DNS pe maşinile UNIX este named. Acesta face parte din pachetul BIND, dezvoltat iniţial de Paul Vixie, întreţinut în acest moment de către Internet Software Consortium. Daemonul named se configurează prin intermediul fişierului /etc/named.conf şi prin intermediul aşa-numite\orfişiere de definire a zonelor.

Trebuie instalate pachetele bind, bind-utils şi eventual caching-nameserver.Sistemul numelor de domenii poate fi configurat utilizând interfaţa grafică

W/K/cow/(meniul System :: Configure DNS).Fişierul /etc/named.conf este alcătuit din mai multe declaraţii. Declaraţiile au

o sintaxă asemănătoare cu cea din limbajul C:

Page 214: Administrarea Sistemelor Linux

182 Administrarea şi configurarea sistemelor Linux

// comentarii cuvânt_cheie {

(câmpuri)

Declaraţiile pot conţine subdeclaraţii, şi trebuie încheiate cu „;". Comentariile pot fi în stil C++(// . ..), C(/* . . . */)saubash(# . . . ) . Directivele care pot fi utilizate sunt următoarele:

logging specifică conţinutul jurnalului şi destinaţia mesajelor de jurna-lizare;

options stabileşte configurările globale ale serverului named şi opţiunileimplicite ale parametrilor;

zone defineşte o zonă;aci defineşte modul de control al accesului;key stabileşte cheile de criptare utilizate pentru autentificare;trusted-keys defineşte cheile de criptare DNSSEC implicite;server specifică opţiunile pentru servere aflate la distanţă;controls declară canalele de control utilizate de programul ndc;include include un alt fişier.

Declaraţia logging

Declaraţia logging configurează opţiunile privind jurnalizarea.Toate mesajele sunt direcţionate către unul sau mai multe canale. Fiecare

definiţie de canal (channel) poate cuprinde mai multe clauze, după cum urmează:

file „fişier" [versions nr] [site mărime]Trimite mesajele către fişierul fişier. Opţiunea versions stabileşte câte versiuni să fie salvate (de exemplu, dacă nr este 3, fişierul log. l este redenumit în log. 2, log. O în log. l şi log în log.O). Opţiunea size stabileşte dimensiunea maximă a fişierului rezultat.

syslog clasă Trimite mesajele către serviciul syslog, utilizând clasa de jurnalizare specificată.

nuli Elimină mesajul.severity Stabileşte nivelul de importanţă a mesajelor. Implicit este /'n/o.print-time Include timpul petrecerii evenimentului.print-category Include numele categoriei.print-severity Include nivelul de importanţă.

Page 215: Administrarea Sistemelor Linux

Setări avansate ale sistemului 183

Page 216: Administrarea Sistemelor Linux

Există patru canale predefinite, şi anume default_syslog, default_debug, defauh_stderr şi nuli, având următoarele definiţii:

channel default_syslog { syslog daemon; severity info;

channel default_debug { file „named.run"; severity dynamic;

channel default_stderr { file „<stderr>"; severity info;

channel nuli nuli;

Definiţia category stabileşte ce informaţii vor fi raportate, în cadrul acestei definiţii sunt specificate canalele către care vor fi trimise mesajele din fiecare categorie. Sunt definite următoarele categorii:

Page 217: Administrarea Sistemelor Linux

dlconfigparserquerieslame-serversstatisticspanicupdatencachexfer-inxfer-outdbpachetsecurityosinsistloadresponse-checks

toate mesajele;procesarea fişierelor de configurare, la nivel general;procesarea fişierelor de configurare, la nivel detaliat;cererile recepţionate de către server;cererile non-standard recepţionate de către server;statistici;căderea serverului named;actualizări;caching negativ;transferurile de zonă recepţionate de server;transferurile de zonă trimise de server;toate operaţiunile cu baza de date;conţinutul pachetelor recepţionate şi trimise;cererile aprobate sau respinse;probleme ale sistemului de operare;probleme interne ale serverului named;încărcarea zonelor;verificări ale răspunsului.

Page 218: Administrarea Sistemelor Linux

184 Administrarea şi configurarea sistemelor Linux

Page 219: Administrarea Sistemelor Linux

Declaraţia options

Recunoaşte următoarele opţiuni:

Page 220: Administrarea Sistemelor Linux

verston directory

statistics-file

auth-nxdomain

notify

recursion

forward

forwaders

check-names

allow-query

versiunea named;

directorul de lucru/var/run/named);fişierul în care vornamed. stats);setează bitul AA pentru toate răspunsurile de tip NXDOMAIN,chiar dacă serverul nu este autoritar. Implicit: No;notifică serverul DNS secundar atunci când apar modificări îninformaţiile privind zonele. Implicit: Yes;dacă este setat pe Yes, serverul va efectua toate operaţiunilepentru rezolvarea cererilor, în caz contrar, va răspundeclientului cu un mesaj, specificând că nu poate rezolva cererea.Implicit: Yes;facilitatea de redirecţionare reprezintă direcţionarea cererii cătreun alt server DNS şi se referă doar la cererile pentru careserverul nu este autoritar, iar răspunsul nu se află în cache.Dacă are valoareafirst (implicită), cererea va fi trimisă mai întâiserverelor DNS din lista forwarders, iar dacă nu a fostsoluţionată, va fi rezolvată de maşina locală. Dacă are valoareaonly, cererea va fi trimisă doar serverelor DNS;specifică lista de adrese IP a serverelor DNS la care vor firedirecţionate cererile;verifică validitatea numelor de domenii. Se poate face înurmătoarele moduri:• ignore: nu se face nici o verificare;• warn: numele invalide sunt jurnalizate, dar procesarea

cererii continuă;• fail: numele invalide sunt jurnalizate şi procesarea cererii

eşuează.De asemenea, verificarea se poate face în:• maşter: zonele principale;• slave: zonele secundare;• response: răspunsurile la cererile iniţiate de către server;specifică maşinile cărora li se permite efectuarea de cereriobişnuite. Lista de maşini este alcătuită din mai multe elemente,separate prin caracterul „;". Un element poate fi:

al serverului named (în general

fi scrise statisticile (în general

Page 221: Administrarea Sistemelor Linux

Setări avansate ale sistemului 185

• o adresă IP;• un prefix de adresă IP / mască de reţea.Elementele pot fi negate prin prefixarea cu „l". Există patru elemente predefinite: any (orice adresă), none (nici o adresă), localhost (maşina locală) şi localnets (reţelele pentru care maşina are o interfaţă). De exemplu: ailow-query {192.71.5/24; 192.71.5.10; };

allow-recursion specifică maşinile cărora li se permite să efectueze cererirecursive; allow-transfer specifică maşinile cărora li se

permite să primească transferuride zonă;

blackhole lista de maşini de la care cererile sunt refuzate;listen-on specifică interfeţele şi porturile pe care named va răspunde la

cereri. Dacă portul nu este specificat, va fi considerat implicit53. De exemplu: listen-on port 53 { 192.71.5.1; }; query-source stabileşte adresa IP şi portul utilizate pentru transmiterea cererilor nerezolvate altor servere DNS. Poate fi utilizat şi caracterul wildcard „*". De exemplu: query-source address

• port *;

cleaning-interval intervalul de timp la care serverul va şterge înregistrările expirate, exprimat în minute. Implicit: 60. Valoarea O dezactivează ştergerea;

interface-interval intervalul de timp la care serverul va reciti lista de interfeţe active. Dacă s-a adăugat o interfaţă, aceasta va fi adăugată la lista de interfeţe pe care se primesc cereri (evident, dacă acest lucru este permis de opţiunea listen-on). Dacă o interfaţă a fost ştearsă, aceasta va fi eliminată şi din lista de interfeţe. Implicit: 60. Dacă are valoarea O, citirea listei de interfeţe va fi efectuată doar la pornirea serverului named;

statistics-interval intervalul de timp la care serverul va jurnaliza statisticile. Implicit: 60;

max-ncache-ttl specifică durata de timp cât răspunsurile negative sunt memorate, exprimată în secunde. Implicit: 10.800 (3 ore).

Declaraţia zone

Există cinci tipuri de zone:

maşter serverul deţine originalul informaţiilor despre zonă şi furnizeazărăspunsuri autoritare pentru aceasta;

slave zona este o copie a unei zone maşter. Lista masters specificăuna sau mai multe adrese IP pe care serverul le va contacta

Page 222: Administrarea Sistemelor Linux

186 ____________________ Administrarea şi configurarea sistemelor Linux _______________________

pentru a-şi actualiza informaţiile despre zonă. Dacă estespecificat parametrul_/?/e (recomandat), informaţiile vor fi scrise

în fişierul respectiv;stub este asemănătoare cu zona slave, cu excepţia faptului că se

copiază doar înregistrările NS şi nu toată zona;forward este utilizată pentru a redirecţiona toate cererile către alte

servere;hint setul iniţial de servere-rădăcină este specificat prin această

zonă. Atunci când porneşte serverul named, va utiliza aceastălistă pentru a găsi un server-rădăcină şi a obţine cea mai recentă

listă de servere-rădăcină.

Numele zonei poate fi urmat opţional de o clasă. Dacă aceasta nu este specificată, este considerată in (de la Internet), în mod uzual nu sunt utilizate alte clase. Declaraţia mai conţine diferite opţiuni, după cum urmează:

allow-query vezi opţiunea similară la Options;allow-transfer vezi opţiunea similară la Options;notify vezi opţiunea similară la Options.

Declaraţia aci

\ceasta declaraţie defineşte o listă de acces (Access Con/rol List). List.. ..dun. x-finită cu aci înainte de a fi utilizată. Listele predefinite sunt any, none, localhost şi localnets (descrise mai sus).

Declaraţia key

Această declaraţie defineşte un identificator de cheie care poate fi utilizată în cadrul declaraţiei server, pentru a asocia o metodă de autentificare cu un anumit server DNS.

Declaraţia trusted-keys

Se utilizează în sistemul de securitate DNSSEC, definit în RFC 2065. Informaţii despre acest sistem pot fi obţinute de la adresahttp://www.ietf.org/ids.by.wg/dnssec.html.

Page 223: Administrarea Sistemelor Linux

Setări avansate ale sistemului 187

Declaraţia server

Defineşte caracteristicile asociate cu un server DNS aflat la distanţă.

Declaraţia controls

Declară canalele de control utilizate de administratorii de sistem pentru a modifica funcţionarea serverului DNS local.

Pentru detalii privind fişierul de configurare named, recomandăm consultareapaginii de manual mân named. conf.

Prezentăm în cele ce urmează un fişier /etc/named. conf:

options {directory "/var/named";

logging {channel log {

file "/var/log/named.log' print-time yes; print-category yes;

channel query_log {file "/var/log/named_query.log" print-time yes; print-category yes;

category xfer-out { log };category security { log };category lame-servers { log };category queries { query_log };category config { default_syslog; log; },

// configuraţia pentru server caching-only zone " . " {

type hint;file "named.ca";

zone "localhost" f type maşter; file "localhost.zone"; allow-update { none; };

Page 224: Administrarea Sistemelor Linux

188 Administrarea şi configurarea sistemelor Linux

zone "O . O . 127 . in-addr . arpa" ( type maşter; file "named. local"; allow-update { none; } ;

// zona nemesis.ro zone "nemesis . ro" {

type maşter;file "nemesis . ro. zone";

Fiecare fişier de definire a unei zone are asociat un domeniu, numit origine. Acesta este numele domeniului specificat cu opţiunile cache şi primary. In cadrul unui fişier principal, pot fi specificate domenii şi nume de maşini relative la acest domeniu. Un nume specificat în fişierul de configurare este considerat absolut dacă se termină cu un punct („.")> altfel este considerat ca fiind relativ la origine. Originea poate fi referită utilizând caracterul „@".

Informaţiile conţinute de un fişier principal sunt divizate în înregistrări de resursă (RR). Acestea sunt reprezentate în următorul format:

| [ domeniu ] [ ttl ] [ clasă ] tip data

Câmpurile sunt separate prin tab-uri sau spaţii. O intrare poate continua pe mai multe linii. Comentariile încep cu „; ".

domeniu numele domeniului la care se aplică intrarea. Dacă nu estespecificat, este considerat ca fiind domeniul din precedenta înregistrare;

ttl informaţiile sunt memorate o perioadă limitată de timp, dupăcare sunt şterse din cache. Acest timp de expirare este denumit TTL (Time To Live) şi este exprimat în secunde. Este un număr zecimal, format din maxim 8 digiţi. Dacă nu este specificat, este considerat ca fiind valoarea câmpului minim din înregistrarea SOA precedentă;

clasă clasa de adrese; trebuie să fie IN. Dacă nu este specificată, esteconsiderată clasa din înregistrarea precedentă;

tip tipul înregistrării. Poate fi: A, SOA, PTR sau NIS;data conţine informaţiile asociate înregistrării. Formatul acestui

câmp depinde de tipul înregistrării.

Tipul înregistrării poate fi:

SOA Descrie o zonă de autoritate (Start Of Authority). Semnalează căînregistrările ce urmează conţin informaţii autoritare pentru

Page 225: Administrarea Sistemelor Linux

Setări avansate ale sistemului 189

domeniu. Toate fişierele principale incluse de directiva primary trebuie să conţină o înregistrare SOA pentru această zonă. Câmpul data conţine următoarele câmpuri:• origine: numele absolut al maşinii care serveşte ca server

DNS primar pentru acest domeniu;• contact: adresa de e-mail a persoanei care administrează

domeniul, având semnul „@" înlocuit cu „.";• serial: un număr reprezentând versiunea fişierului de

descriere a zonei, în zecimal. Acest număr trebuieincrementat de fiecare dată când sunt modificate informaţiiîn /onă. O convenţie des utilizată este de a folosi datamodificării plus un număr format din două cifre semnificândcă s-au făcut modificări în timpul zilei respective. Acestnumăr serial este utilizat de serverele DNS secundare pentrua sesiza modificările de informaţii;

• interval_actualizare: intervalul de timp la care se faceverificarea zonei de către serverele secundare, exprimat însecunde. Este un număr zecimal cu maxim 8 digiţi. Pentrureţele unde aceste informaţii se modifică rar, poate fi deordinul zilelor;

• interval_reîncercare: intervalul de timp la care se reîncearcăverificarea zonei de către serverele secundare dacă aceastaeşuează, exprimat în secunde. Valoarea sa este în mod normal de ordinul a l oră;

• timp _expir are: timpul după care serverele secundare trebuiesă renunţe la toate informaţiile despre zonă dacă nu au reuşitsă contacteze serverul primar, exprimat în secunde, în modnormal este de circa l lună;

• minim: valoarea TTL implicită pentru înregistrările care nu ospecifică. Aceasta specifică durata maximă de timp cât alteservere DNS pot memora înregistrarea în cache. Dacă nu seproduc frecvent modificări, valoarea sa poate fi de l săptămână.

A Asociază o adresă IP cu un nume de maşină. Pentru fiecarenume de maşină trebuie să existe doar o singură înregistrare de tip A. Numele de maşină specificat este cel oficial sau autorizat {canonical). Toate celelalte nume de maşină sunt considerate pseudonime şi pot fi specificate cu ajutorul înregistrării de tip CNAME (vezi infra).

NS Specifică serverul primar şi toate serverele secundare ale zonei.Câmpul data conţine numele serverului DNS.

CNAME Asociază un pseudonim cu numele autorizat al unei maşini.

Page 226: Administrarea Sistemelor Linux

190 Administrarea şi configurarea sistemelor Linux

Page 227: Administrarea Sistemelor Linux

PTR Asociază nume din domeniul in-addr.arpa cu nume de maşină.Este utilizat pentru asocierea inversă (reverse mapping) a adreselor IP cu nume de maşină. Numele de maşină trebuie să fie cel autorizat.

MX Stabileşte un agent de poştă electronică (mail exchanger).Sintaxa este:

[ domeniu ] [ ttl ][ clasă ] MX preferinţă maşină Un agent de transport care trimite un mesaj către domeniu încearcă toate maşinile care au o înregistrare MX, până când mesajul este transmis cu succes, în ordinea crescă-toare a câmpului preferinţă.

Fişierul /var/named/named.ca este redat mai jos:

Acest fişier conţine informaţii despre serverele DNS rădăcină necesare pentru a iniţializa cache-ul de servere DNS

Acest fişier este disponibil la serviciile de înregistrare InterNIC ca FTP anonymous pe serverul ftp.rs.internic.net în fişierul /domain/named.root

formerly NS.INTERNIC.NET

Page 228: Administrarea Sistemelor Linux

.ROOT-SERVERS.NET.

formerly NS1.ISI.EDU

.ROOT-SERVERS.NET.

formerly C.PSI.NET

.ROOT-SERVERS.NET.

formerly TERP.UMD.EDU

.ROOT-SERVERS.NET.

formerly NS.NASA.GOV

.ROOT-SERVERS.NET.

formerly NS.ISC.ORG

F.ROOT-SERVERS.NET.

3600000 IN NS3600000 A

3600000 3600000

3600000 3600000

3600000 3600000

3600000 3600000

3600000 3600000

A.ROOT-SERVERS.NET. 198.41.0.4

B.ROOT-SERVERS.NET. 128. 9.0.107

C.ROOT-SERVERS.NET. 192.33.4.12 '

D.ROOT-SERVERS.NET. 128.8.10.90

E.ROOT-SERVERS.NET. 192.203.230.10

F.ROOT-SERVERS.NET. 192.5.5.241

NS

NS

NS

NS

NS A

Page 229: Administrarea Sistemelor Linux

Setări avansate ale sistemului 191

Page 230: Administrarea Sistemelor Linux

formerly NS-NIC.DDN.MIL

Page 231: Administrarea Sistemelor Linux

3600000 NS G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4.ROOT-SERVERS.NET.

formerly AOS.ARL.ARMY.MIL

Page 232: Administrarea Sistemelor Linux

.ROOT-SERVERS.NET.

formerly NIC.NORDU.NET

3600000 NS H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53

Page 233: Administrarea Sistemelor Linux

.ROOT-SERVERS.NET.

temporarily housed at

NSI (InterNIC)

3600000 .ROOT-SERVERS.NET. 3600000

housed in LINX, operated by RIPE NCC

3600000 .ROOT-SERVERS.NET. 3600000

temporarily housed at ISI (IANA)

3600000 .ROOT-SERVERS.NET. 3600000

housed in Japan, operated by WIDE

3600000 NS I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17

NS J.ROOT-SERVERS.NET. A 198.41.0.10NS K.ROOT-SERVERS.NET. A 193.0.14.129NS L.ROOT-SERVERS.NET. A 198.32.64.12

Page 234: Administrarea Sistemelor Linux

M. ROOT-SERVERS.NET. End of File

3600000 NS M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33

Page 235: Administrarea Sistemelor Linux

Fişierul/var/named/localhost.zone:

Page 236: Administrarea Sistemelor Linux

$TTL 86400 $ORIGIN localhost. @ 1D IN SOA

1D IN NS

1D IN A

@ root (l3H15M1W1D )

@

127.0.0.1

; numărul serial; interval actualizare; interval reîncercare; timp expirare; minim

Page 237: Administrarea Sistemelor Linux

192 Administrarea şi configurarea sistemelor Linux

Page 238: Administrarea Sistemelor Linux

Fişierul /var/named/named. local:

Page 239: Administrarea Sistemelor Linux

$TTL 86400@ IN SOA

NS

PT

R

delta.nemeş is.ro.20010824018H4HIM

1D )

delta.nemesis.ro.

localhost.

root.delta.nemesis.ro.; numărul serial; interval actualizare; interval reîncercare; timp expirare; minim

Page 240: Administrarea Sistemelor Linux

Fişierul/var/named/nemesis.ro.zone:

$TTL 1D @

IN SOA nemesis . ro . 2001083002 1D 2H 1W 1D )

root.nemesis.ro. ( ; numărul serial ; interval actualizare ; interval reîncercare ; timp expirare ; minim

IN NS ns. nemesis. ro.

IN MX 10 mail .nemesis . ro.

nemesis . ro . IN A 192 78

.124

. 135

ns IN A 192 7 .124.

135 delta IN A 192 7 .124

. 135

WWW IN A 192 7 .124.

135

ftp IN A 192 7

8 .124.

135 mail IN A 192 7 .124

. 135

Page 241: Administrarea Sistemelor Linux

7. Serverul HTTP

Un server HTTP este un daemon care acceptă conexiuni conforme protocolului HTTP, răspunzând cererilor recepţionate de la clienţi. Protocolul HTTP (HyperText Transfer Protocol) este un protocol de tip cerere-răspuns, bazat pe TCP/IP, destinat pentru transferurile informaţiilor hipermedia. Serverul cel mai utilizat în sistemele de operare UNIX este Apache.

Conform ultimelor statistici realizate de Netcraft Inc. (http:// www.netcraft.com/survey), din luna februarie 2002, efectuate asupra a circa 38 milioane de site-uri, serverul Web cel mai folosit este Apache, ocupând 58,43% din piaţă.

Pentru a furniza servicii HTTP, trebuie ca pachetul apache să fie instalat, iar daemonul httpd pornit.

Apache este un sistem modular, alcătuit dintr-un server de bază şi mai multe module, care sunt încărcate dinamic într-un mod similar cu funcţionarea modulelor din nucleul Linux.

Serverul Apache poate fi configurat cu ajutorul interfeţei grafice apacheconf (meniul System :: Apache Configuration Tool).

Fişierul de configurare principal este httpd.conf şi este localizat de obicei în directorul /etc/httpd. Mai există două fişiere de configurare, access.conf şi srm. conf, care au fost însă înlăturate începând cu versiunea 1.3.4.

Fişierul de configurare conţine câte o directivă pe fiecare linie, acestea putând fi continuate pe linia următoare adăugând la sfârşitul acesteia caracterul „\". Comentariile încep cu „#". Directivele din fişierul de configurare principal se referă la configurările globale ale serverului. Pentru a aplica anumite aspecte ale serverului doar unei zone din server, directivele trebuie incluse în cadrul secţiunilor: <Directory>, <DirectoryMatch>, <Files>, <FilesMatch>, <Location> sau <LocationMatch>. Acest lucru poate fi realizat şi prin plasarea unui fişier denumit .htaccess în directorul în care se doreşte modificarea comportamentului serverului, conţinând directivele dorite.

De asemenea, Apache are posibilitatea de a servi mai multe site-uri simultan, altfel spus, găzduire virtuală (virtual hosting). Directivele pot fi specificate în cadrul secţiunii <virtualHost>, caz în care se vor referi doar la un anumit site.

Principalele directive care pot fi utilizate în fişierele de configurare sunt:

Page 242: Administrarea Sistemelor Linux

194 Administrarea şi configurarea sistemelor Linux

Identificarea serverului

ServerName Stabileşte numele serverului, utilizat pentru a crea URL-urile. Dacă nu este specificat, se stabileşte în mod automat din numele oficial al maşinii (care nu este întotdeauna numele dorit; de exemplu, numele oficial al maşinii poate fi peak.biosfarm.ro, dar se doreşte a fi www.biosfarm.ro).

UseCanonicaJName Dacă este setat pe Yes, Apache va utiliza ServerName şi Port pentru a construi un nume autorizat pentru server. Dacă este setat pe No, va fi utilizat numele şi portul furnizate de către client (dacă serverul se află într-un intranet, spre exemplu, şi utilizatorul apelează www/dir, acesta va fi direcţional către www.biosfarm.ro/dir/ dacă acest parametru este Yes. Dacă este No, el va fi direcţionat corect către www/dir/).

ServerAdmin Stabileşte adresa de e-mail pe care serverul o introduce în mesajele de eroare trimise clientului.

ServerSignature Adaugă la sfârşitul documentelor generate de server (mesaje de eroare etc.) un mesaj de identificare. Poate fi On (activare), Off (dezactivare) sau Email (include şi conţinutul ServerAdmin în mesaj), implicit: Off.

Locaţiile fişierelor

ServerRoot Specifică directorul în care se găsesc fişierele de configurare şi jurnalizare ale serverului, în general: /etc/httpd.

DocumentRoot Specifică directorul în care se găsesc documentele HTML. Serverul va adăuga calea specificată de client la acest director, în general: /var/www/htmi.

UserDir Stabileşte numele directorului în care se află paginile HTML aleutilizatorilor. Dacă numele începe cu „/", se consideră că este o specificaţie de director (spre exemplu, dacă UserDir este public html, Cererea URL-ului http://www.biosfarm.ro/ -dragos va corespunde directorului ~dragos/public_html. Dacă UserDir este /usr/htmi, URL-ul de mai sus va corespunde directorului /usr/html/dragos/public_html). Implicit: public Jttml.

Page 243: Administrarea Sistemelor Linux

Setări avansate ale sistemului 195

Page 244: Administrarea Sistemelor Linux

Crearea proceselor

User Specifică utilizatorul sub care rulează serverul. Acesta nutrebuie să poată accesa fişiere care nu trebuie să fie vizibile şi nu trebuie să poată executa cod care nu are legătură cu serverul httpd. Poate fi un nume de utilizator sau un identificator de utilizator. In general este apache.

Group Specifică grupul sub care rulează serverul. Similar cu User.ServerType Stabileşte modul de execuţie al serverului. Are în general

valoarea standalone, semnificând că serverul rulează ca daemon. Valoarea inetd semnifică faptul că serverul va porni atunci când sistemul primeşte o cerere HTTP. Implicit: standalone.

MaxClients Stabileşte numărul maxim de cereri simultane acceptate. Implicit: 256.

MaxSpareServers Specifică numărul maxim de servere libere (care nu gestionează momentan nici o cerere). Implicit: 10.

MinSpareServers Specifică numărul minim de servere libere. Implicit: 5.StartServers Specifică numărul de servere ce vor fi lansate la pornirea

daemonului. Implicit: 5.

Page 245: Administrarea Sistemelor Linux

Configurarea reţelei

BindAddress Stabileşte de pe ce adresă vor fi acceptate cereri. Poate fi oadresă IP, un domeniu sau caracterul „*", specificând toate adresele IP ale maşinii. Implicit: „*".Specifică portul pe care vor fi acceptate conexiuni. Implicit: 80. Permite acceptarea cererilor pe mai multe adrese IP şi porturi. Valoarea este de forma [ adresă IP : ] port.

Configurarea jurnalelor

Serverul Apache generează două jurnale: primul, localizat în genere în /var/iog/httpd/access_iog, înregistrează cererile de accesare primite de către server, iar al doilea, localizat de obicei în /var/iog/httpd/error_iog, memorează erorile apărute în decursul rezolvării cererilor (pagini inexistente, erori de conexiune etc.).

Port Listen

Page 246: Administrarea Sistemelor Linux

196 Administrarea şi configurarea sistemelor Linux

Page 247: Administrarea Sistemelor Linux

LogLevel Stabileşte nivelul de jurnalizare. Sunt disponibile următoareleniveluri:• emerg: serverul nu este funcţional;• alert: trebuie luată imediat o decizie;• crit: condiţie critică;• error. erori;• warn: atenţionări;• notice: condiţii normale dar semnificative;• info: nivel informaţional;• debug: mesaje de depanare.

CustomLog Stabileşte parametrii jurnalizării cererilor recepţionate de către server. Are formatul CustomLog fişier format. Fişier reprezintă numele fişierului în care va fi scris jurnalul (relativ la ServerRooi), iar format reprezintă fie un format de jurnalizare definit cu directiva LogFormat (vezi infra), fie explicit formatul, încadrat între ghilimele.

LogFormat Are formatul LogFormat descriere [ nume ]. Dacă nume nu este specificat, această directivă stabileşte formatul jurnalului care va fi aplicat în directivele TransferLog care urmează. Dacă nume este specificat, defineşte formatul ca descriere. Câmpul descriere poate conţine caractere, caracterele de control stil C, „\n" (linie nouă) şi „\t" (tab), şi directive de tip „%". Directivele principale recunoscute sunt următoarele:• %a: adresa IP a clientului;• %A: adresa IP locală;• %B: datele trimise, mai puţin header-e\e HTTP;• %b: similar cu %B, cu excepţia faptului că generează

caracterul „-" în loc de „O" când nu sunt trimise date;• %c: starea conexiunii după ce s-a primit răspunsul: „X" -

conexiunea a fost întreruptă înainte ca răspunsul să fiecomplet; „-" - conexiunea poate rămâne deschisă dupătrimiterea răspunsului; „+" - conexiunea va fi închisă dupătrimiterea răspunsului;

• %{var}e: conţinutul variabilei de mediu var;• %f. numele fişierului accesat;• %h: numele maşinii-client;• %H: protocolul folosit în cerere;• %{cămp}i: conţinutul liniei câmp din cadrul header-u\u'\ din

cerere;• %m\ metoda folosită în cerere;• %{câmp}o: conţinutul liniei câmp din cadrul header-u\u\

din răspuns;

Page 248: Administrarea Sistemelor Linux

Setări avansate ale sistemului 197

Page 249: Administrarea Sistemelor Linux

• %p: portul la care răspunde serverul;• %P\ identificatorul procesului copil care a răspuns cererii;• %q: şirul de întrebare (începând cu „?");• %r: prima linie a cererii;• %s: starea;• %t: timpul sistemului, în formatul standard;• %{format}t: timpul sistemului, în formatul specificat (vezi

mân 3 strftime);• %T\ durata de răspuns la cerere, în secunde;• %u: utilizatorul de pe maşina-client;• %U: URL-uI solicitat, mai puţin şirul de întrebări;• %v: numele autorizat al serverului (ServerName);• %V: numele serverului (UseCanonicalName).Astfel, formatul standard, CLF (Common Log Format), este: „%h %1 %u %t \"%r\" %>s %b".

TransferLog Stabileşte fişierul în care va fi scris jurnalul, relativ la ServerRoot. în mod uzual: /var/iog/httpd/access_iog.

ErrorLog Specifică numele fişierului în care vor fi jurnalizate erorileapărute. Dacă numele nu începe cu „/", va fi considerat ca fiind relativ la DocumentRoot. Dacă numele are forma syslog:clasă, jurnalizarea se va face prin intermediul serviciului syslog, utilizând clasa specificată. In mod uzual: /var/iog/httpd/ error_log.

HostNameLookups Jurnalizează numele maşinilor (dacă pot fi determinate) în loc de adresele IP. Va conduce la creşterea traficului. Implicit: Off.

Directiva <Directory>

Directivele <Directory> şi </Directory> se utilizează pentru a grupa mai multe directive care se aplică doar pentru un anumit director, în cadrul numelui directorului specificat pot fi utilizate şi caracterele wildcard „?" şi „*".

Direc t iva <Di rec to ryMatch>

Este similară cu <Directory>, cu excepţia faptului că acceptă expresii regulate.

Page 250: Administrarea Sistemelor Linux

198 Administrarea şi configurarea sistemelor Linux

Directiva <Files>

Directivele <Fiies> şi </Files> se utilizează pentru a grupa mai multe directive care se aplică doar pentru un anumit fişier, în cadrul numelui fişierului specificat pot fi utilizate şi caracterele wildcard „?" şi „*".

Directiva <FilesMatch>

Este similară cu <Fiies>, însă acceptă şi expresii regulate.

Directiva <Location>

Această directivă oferă posibilitatea controlului accesului după URL. Este similară cu <Fiies>. Pot fi utilizate şi caractere wildcard.

Directiva <LocationMatch>

Este similară cu <Location>, însă acceptă şi expresii regulate.

Controlul accesului

Allow frorn Specifică maşinile cărora li se permite accesarea unei anumite zone din server. Poate fi un nume de maşină, un sfârşit de nume de maşină (de exemplu, infoiasi.ro), o adresă IP sau un început de adresă (spre exemplu, 192.71.30), sau o pereche adresă IP / mască de reţea. Poate fi şi all, adică toate maşinile.

Deny Specifică maşinile care nu au acces la o anumită zonă dinserver. Valoarea all semnifică „nici o maşină".

Order Stabileşte ordinea în care directivele Allow şi Deny sunt evaluate.AuthUserFile Specifică numele unui fişier care conţine lista de utilizatori şi

parole utilizată pentru autentificare (de exemplu, /etc/httpd/users). Dacă nu începe cu „/", este considerat relativ la ServerRoot. Fiecare linie conţine un nume de utilizator urmat de caracterul „:", apoi parola criptată. Parolele pot fi modificate cu ajutorul programului htpasswd.

Page 251: Administrarea Sistemelor Linux

Setări avansate ale sistemului 199

AuthGroupFile Specifică numele unui fişier care conţine lista de grupuri. Fiecare linie conţine un nume de grup urmat de caracterul „:", apoi lista de utilizatori care fac parte din grup, separaţi prin spaţiu.

AuthName Descrierea zonei supuse autentificării.AuthType Specifică tipul autentificării, în implementarea actuală este

valid doar Basic.Require Selectează ce utilizatori pot accesa o anumită zonă. Sunt

posibile trei sintaxe:• Require user listăjutilizatori: doar utilizatorii specificaţi pot

accesa zona;• Require group listă_grupuri\ doar utilizatorii care sunt

'. membri ai grupurilor specificate pot accesa zona;• Require valid-users: toţi utilizatorii prezenţi în fişierul

specificat de directiva AuthUserFile sau toţi utilizatoriimembri ai grupurilor din fişierul specificat deAuthGroupFile pot accesa zona.

Găzduire virtuală

Există două metode de implementare a găzduirii virtuale: prima bazată pe nume şi a doua bazată pe adrese IP. Maşinile virtuale bazate pe adresă utilizează adresa 1P a conexiunii pentru a determina maşina virtuală corectă. Astfel, pentru fiecare maşină trebuie alocată o adresă separată IP. In cazul găzduirii virtuale bazate pe nume, determinarea maşinii virtuale se face pe baza numelui acesteia. Astfel, mai multe maşini pot utiliza aceeaşi adresă IP.

Găzduirea virtuală bazată pe nume este mai simplu de implementat şi este recomandată utilizarea acesteia. Găzduirea bazată pe adresă trebuie utilizată doar în una din situaţiile:

- trebuie suportaţi clienţi HTTP vechi, care nu recunosc maşinile virtuale;sunt necesare conexiuni sigure de tip SSL;sunt utilizate sisteme de operare care nu pot diferenţia maşinile decât dacăau adrese IP diferite.

Găzduirea virtuală bazată pe nume

Pentru a utiliza serviciul de găzduire virtuală, trebuie mai întâi stabilite adresa IP şi portul pentru serverul care va accepta cereri pentru respectiva maşină virtuală, cu ajutorul directivei NameVirtualHost. în mod normal se utilizează toate adresele IP pe care le utilizează httpd (vezi directivele BindAddress şi Listeri), precum şi toate porturile pe care serverul aşteaptă cereri (vezi directiva Port), folosind valoarea „*". Se stabileşte apoi un bloc <virtuaiHost> ... </virtualHost>. Ca parametru, directiva <virtuaiHost> trebuie să primească aceeaşi valoare utilizată la directiva

Page 252: Administrarea Sistemelor Linux

200 _____________________ Administrarea şi configurarea sistemelor Linux ________________________

NameVirtualHost. Blocul astfel declarat trebuie să conţină cel puţin directivele ServerName, care să primească drept parametru numele maşinii virtuale, şi DocumentRoot, care să specifice în ce director se află conţinutul respectivei maşini. Iată un exemplu:

NameVirtualHost *

<VirtualHost *> ServerName www.dragos.ro DocumentRoot /usr/web/dragos </VirtualHost>

De asemenea, pentru fiecare maşină virtuală pot fi stabilite mai multe nume, utilizând directiva ServerAlias. Astfel, dacă se introduce declaraţia:

| ServerAlias dragos.ro *.dragos.ro

cererile pentru maşinile din domeniul dragos. ro vor fi rezolvate de maşina virtuală www.dragos.ro. Pot fi folosite caracterele wildcard „*" şi „?". Evident, şi înregistrările DNS pentru serviciul named trebuie să fie corect configurate pentru ca adresele *. dragos. ro să poată fi rezolvate.

Găzduirea virtuală bazată pe adresă IP

Pentru utilizarea acestui tip de găzduire, maşina trebuie configurată fie pentru a avea mai multe conexiuni fizice la reţea, fie pentru a avea mai multe interfeţe virtuale, având adrese IP diferite.

Serverul Apache poate fi configurat în două moduri:- să execute câte un daemon pentru fiecare maşină virtuală. Pentru aceasta,

se utilizează directiva Listen pentru a stabili ce adresă IP va fi asociatădaemonului;

- să execute un singur daemon pentru toate maşinile virtuale. Pentru aceasta,se utilizează directiva VirtualHost descrisă mai sus.

Prezentăm în cele ce urmează un fragment dintr-un fişier de configurare Apache:

# localizarea fişierelor de configurare şi a jurnalelor ApacheServerRoot /etc/httpd

# admite conexiuni persistenteKeepAlive On

# numărul maxim de cereri în timpul unei conexiuni persistente# O = infinitMaxKeepAliveRequests 100

Page 253: Administrarea Sistemelor Linux

Setări avansate ale sistemului 201

# numărul minim de servere libereMinSpareServers 3# numărul maxim de servere libereMaxSpareServers 10# numărul de servere lansate la pornirea daemonuluiStartServers 5# numărul maxim de clienţi conectaţi simultaniMaxClients 150

# portul pe care serverul acceptă conexiuniListen 80

t utilizatorul respectiv grupul sub care va rula daemonul User apache Group apache

# adresa e-mail a administratorului WebServerAdmin [email protected] numele oficial al serverului ServerName www.biosfarm.ro

# locaţia în care se află paginile WebDocumentRoot /var/www/htmlt numele directorului în care se află paginile Web ale# utilizatorilorUserDir public_html

# numele fişierului conţinând informaţiile privind controlul# accesuluiAccessFileName .htaccess

# determină numele maşinilor de pe care provin cererileHostnameLookups On

# locaţia fişierului jurnal pentru eroriErrorLog /var/log/httpd/error_log# nivelul jurnalizăriiLogLevel warntt formatul mesajelorLogFormat "%h %1 %u %t \"%r\" %>s %b \"%(Referer}i\" \"%{UserAgent}i\"" combinedl locaţia fişierului jurnalCustomLog /var/log/httpd/access_log combined

# locaţia scripturilor CGIScriptAlias /cgi-bin/ "/var/www/cgi-bin/"<Directory "/var/www/cgi-bin">AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory>

Page 254: Administrarea Sistemelor Linux

8. Serverul FTP

FTP (File Transfer Protocol) este unul dintre cele mai vechi servicii Internet şi reprezintă cel mai popular mod de transfer al fişierelor de pe un calculator pe altul. Implementări de aplicaţii-client şi server FTP există practic pe toate platformele din lume.

Există în principal două tipuri de server FTP: server privat, care permite transferul de fişiere doar utilizatorilor de pe respectivul server, sau server public, care permite transferul de fişiere şi utilizatorilor „anonimi" (care nu sunt utilizatori înregistraţi ai serverului). De cele mai multe ori, serverele din Internet sunt configurate să satisfacă ambele variante.

Implementarea de server utilizată în distribuţiile Red Hat şi Mandrake este wu-ftpd, dar există şi multe alte implementări (proftpd etc.). Pentru a oferi servicii FTP, trebuie ca pachetul wu-ftpd să fie instalat.

Serverul wu-ftpd jurnalizează cererile de accesare FTP de obicei în fişierul/var/log/xferlog.

Fişierul principal de configurare este /etc/ftpaccess. Acesta poate fi modificat fie prin intermediul interfeţei grafice kwuftpd, din meniul System :: FTP D Editor în Red Hat, respectiv Configuration :: Networking :: FTP D Editor în Mandrake, fie manual:

Page 255: Administrarea Sistemelor Linux

Setări avansate ale sistemului 203

Page 256: Administrarea Sistemelor Linux

Figura 8.1. Programul kwuftpd

Acest fişier conţine opţiuni, câte una pe fiecare linie. Sunt permise comentarii, care încep cu „#"• Cele mai importante opţiuni sunt:

Opţiuni generale

daemonaddress adresă Limitează daemonul FTP să primească cereri doar de pe adresa IP specificată.

Controlul accesului

class clasă listâjipuri_utilizatori listăjnaşiniDefineşte o clasă (sau categorie) de utilizatori care pot accesa serverul FTP, cu numele clasă. Elementele listăJipuri_utili-zatori se separă prin virgulă şi pot lua una dintre valorile:• anonymous: utilizatorul nu trebuie să fie înregistrat pe

server, va fi utilizat numele anonymous;• guest: utilizatorul trebuie să fie înregistrat pe server, dar

sesiunea FTP va avea acelaşi comportament cu cea anonimă;• real: utilizatorul trebuie să fie înregistrat pe server.

Page 257: Administrarea Sistemelor Linux

204 ____________________ Administrarea şi configurarea sistemelor Linux ______________________

Câmpul listăjnaşini defineşte numele maşinilor de pe care se permite accesul. Pot fi utilizate şi caractere wildcard. Caracterul „!" în faţa numelui înseamnă negaţie. Dacă numele începe cu „/", el semnifică numele unui fişier care conţine lista de maşini.

deny maşină fişierjnesajRefuză accesul de pe maşina specificată, furnizând clientului mesajul conţinut m fişier jnesaj.

ftte-limit [ raw ] in \ out \ total nr [ clasă ]Limitează numărul maxim de fişiere de date care pot fi transferate de către utilizatorii din clasa specificată. Limita se poate referi la fişierele primite (in), cele trimise (out) sau total transferate (total). Parametrul opţional raw aplică limitarea la toate fişierele transferate, nu doar la cele de date. Dacă clasă nu este specificat, limitarea se va aplica tuturor claselor care nu au stabilită nici o limită.

data-limit [ raw ] in \ out \ total cant [ clasă ]Similară cu file-limit, dar se referă la cantitatea de informaţii transferate, în octeţi.

limit-time * \ anonymous \ guest nrjninuteLimitează durata unei sesiuni FTP. Utilizatorii reali nu sunt niciodată limitaţi.

guestserver listăjnaşiniStabileşte de pe ce maşini este permis accesul anonim. Dacă listăjnaşini este vidă, nu permite accesul nici unei maşini.

Urnit clasă nr listăjnomente fişier jnesajImpune anumite limite clasei de utilizatori specificată: numărul maxim de utilizatori la un moment dat, nr, intervalele de timp în care este permis accesul (-1 însemnând „oricând"). Va fi furnizat clientului mesajul conţinut în fişierul fişier jnesaj.

host-Hmit clasă nr listă jnomente fişier jnesajSimilar cu opţiunea Urnit, însă se referă la limita pe o maşină-client.

noretrieve [ absolute \ relative ] [ class^clasă ] [ user=utilizator ] listăJişiere Nu permite preluarea fişierelor specificate pentru clasa, respectiv utilizatorul specificat.

allow-retrieve [ absolute \ relative ] [ class=clasă ] [ user=utilizator ] listăjîşiere Permite preluarea fişierelor specificate pentru clasa, respectiv utilizatorul specificat.

loginfails nr Stabileşte numărul de intrări eşuate după care sesiunea FTP va fi închisă. Implicit: 5.

chmodyes \ no tipurijutilizatoriPermite sau nu tipurilor de utilizatori specificaţi să modifice d rep tur i l e de acces a l f i ş i e re lo r . E lemente le d in tipuri_utilizatori pot fi anonymous, guest, real şi class=clasă.

Page 258: Administrarea Sistemelor Linux

Setări avansate ale sistemului 205

ilelete yes \ no tipuri_utilizatoriPermite sau nu tipurilor de utilizatori specificaţi să şteargă fişiere.

overwriteyes no tipuri ^utilizatoriPermite sau nu tipurilor de utilizatori specificaţi să suprascrie fişiere.

renameyes \ no tipurijutilizatoriPermite sau nu tipurilor de utilizatori specificaţi să redenumească fişiere.

upload [ absolute \ relative] [ class=c\asă ] [ «*er=utilizator ] [ - ] director_rădâcină director yes \ no f proprietar grup drepturi_acces [ dirs \ nodirs ] [ drepturi_acces_director ] [ proprietarjdirector \ grup_director ]Permite sau nu trimiterea (upload) de fişiere către server, în directorul director. Dacă operaţiunea este permisă, fişierul va avea ca proprietar proprietar, ca grup grup şi drepturile de acces drepturi_acces. Cuvintele-cheie dirs şi nodirs permit sau nu crearea de noi subdirectoare (implicit este permisă). Acestea vor avea ca proprietar proprietar_director, ca grup grup_director şi drepturile de acces drepturi_acces_director.

throughput director_rădăcină subdirector listă Jişiere octeţi_pe_secundă factorjnultiplicare listăjadreseDefineşte o restricţie pentru rata de transfer al anumitor fişiere. Lista de fişiere este listăjişiere, care se găsesc în directorul director_rădăcină, subdirectorul subdirector. Câmpul octeţi_pe_secundă defineşte rata maximă de transfer, iar factorjnultiplicare reprezintă un număr cu care rata de transfer va fi multiplicată după fiecare transfer. Şirul oo pentru rata de transfer semnifică inexistenţa limitei. Un factor de multiplicare de l sau „-" înseamnă fără multiplicare. Câmpul listă_adrese reprezintă lista de nume de maşină sau adrese la care se referă restricţia, separate prin virgulă. Pot fi utilizate şi caractere wildcard.

deny-uid interval_identificatorideny-gid interval_identificatori

Specifică ce utilizatori, respectiv grupuri nu pot accesa serviciul FTP.

allow-uid intervaljdentificatoriallo w-gid interval_identificatori

Specifică ce utilizatori, respectiv grupuri pot accesa serviciul FTP.

Page 259: Administrarea Sistemelor Linux

206 Administrarea şi configurarea sistemelor Linux

restricted-uid interval_identificator i restricted-gid interval_identificator i

Specifică ce utilizatori, respectiv grupuri nu au acces la fişieredin afara directorului home.

unrestricted-uid interval'^identificatori unrestricted-gid interval ^identificator i

Specifică ce utilizatori, respectiv grupuri au acces la fişiere dinafara directorului home.

Mesaje informaţionale

greeting full \ brief\ tersegreeting text mesaj

Stabileşte nivelul mesajelor trimise către client înainte de autentificarea utilizatorului: full este valoarea implicită şi reprezintă numele serverului şi versiunea serverului FTP; brief trimite doar numele serverului, iar terse trimite doar textul „FTP server ready". Opţiunea recomandată este brief. Parametrul mesaj specifică mesajul care va fi trimis.

signofffull \ brief \ tersesignofftext mesaj

Stabileşte nivelul mesajelor trimise către client după încheierea sesiunii FTP: full este valoarea implicită şi reprezintă numele serverului şi volumul de informaţii transferat; brief doar numele serverului, iar terse doar mesajul de „rămas-bun". Parametrul mesaj specifică mesajul care va fi trimis.

hostname numeSpecifică numele serverului FTP care va fi trimis clientului.

email nume Defineşte adresa de e-mail a administratorului FTP.message fişier tip [ listă_clase ]

Specifică un fişier al cărui conţinut va fi trimis clientului laautentificare sau la schimbarea directorului curent. Astfel,parametrul tip poate lua valoarea LOGIN sau CWD=director,unde director semnifică noul director. Parametrul listd_clasespecifică lista de clase de utilizatori pentru care va fi trimismesajul.în cadrul fişierului pot fi folosite următoarele directive:• %T: timpul local;• %C: directorul curent;• %E: adresa de e-mail a administratorului FTP;• %R: adresa maşinii-client;• %L\ adresa maşinii locale;

Page 260: Administrarea Sistemelor Linux

Setări avansate ale sistemului

• %U: numele utilizatorului;• %M: numărul maxim de utilizatori din această clasă;• %N: numărul de utilizatori din această clasă conectaţi

momentan;• %b: limita de blocuri ocupate;• %H: limita de timp pentru spaţiu pe disc excesiv;• %h: limita de timp pentru număr excesiv de fişiere;• %xu\ cantitatea de date trimise către server;• %xd: cantitatea de date recepţionate de la server;• %xR: raportul %xu / %xd;• %xc: cantitatea de date care mai poate fi transferată;• %xT: limita de timp, exprimată în minute;• %xE\ timpul scurs de la conectare, exprimat în minute;• %xL: timpul de conectare rămas la dispoziţie;• %xU: limita de fişiere ce pot fi trimise (upload);• %xD: limita de fişiere ce pot fi recepţionate (download).

readim fişier tip [ listă_clase ]Specifică un fişier despre care serverul va notifica clientul că există şi că a fost modificat ultima oară la o anumită dată, atunci când se autentifică sau la schimbarea directorului curent. Astfel, parametrul tip poate lua valoarea LOGJN sau CWD=director, unde director semnifică noul director. Parametrul listă clase specifică lista de clase de utilizatori pentru care va fi trimis mesajul.

Jurnalizarea

log commands [ tipuri ^utilizatori ]Activează jumalizarea comenzilor apelate de utilizatori, pentru tipurile specificate (anonymous, guest şi real). Dacă lista nu este specificată, Jurnalizarea comenzilor va fi activată pentru toate tipurile de utilizatori.

log transfers tipurijutilizatori directiveActivează Jurnalizarea fişierelor transferate de către tipurile specificate de utilizatori. Directive este o listă de tipuri de transferuri efectuate: inbound (transferuri de fişiere către server) şi outbound (transferuri de fişiere de Ia server).

log security tipuri ^utilizatoriActivează Jurnalizarea violării regulilor de securitate pentru tipurile de utilizatori.

Page 261: Administrarea Sistemelor Linux

208 ____________________ Administrarea şi configurarea sistemelor Linux _______________________

log sysloglog syslog+xfrelogRedirecţionează jurnalul către sistemul syslog (prima variantă). A doua variantă direcţionează jurnalul atât către syslog, cât şi către fişierul-jurnal. logfilefişier Specifică fişierul-jurnal. Implicit: /var/iog/xferiog.

Iată un fişier de configurare /etc/f tpaccess:

# Nu permite conectarea prin FTP a utilizatorilor specialideny-uid %-99 %65534-deny-gid %-99 %65534-allow-uid ftp allow-gid ftp

# Clasele de utilizatoriclass all real,guest,anonymous *

# Adresa de e-mail a administratorului FTPemail ftpadmin0ftp.nemesis.ro

# Acceptă maxim 5 încercări de introducere a paroleiloginfails 5

# Mesajele trimise clientului FTPmessage /welcome.msg loginmessage .message cwd=*

# Acceptă compresia on-the-fly (în timpul transferului)compress yes alltar yes all

# Nu permite utilizatorilor anonimi execuţia de comenzipericuloasechmod no guest,anonymousdelete no anonymousoverwrite no anonymousrename no anonymous

# Opţiunile de jurnalizarelog transfers anonymous,guest, real inbound,outbound

# Dacă fişierul /etc/shutmsg există, nu acceptă conexiuni# A se consulta mân ftpshut pentru detaliishutdown /etc/shutmsg

# Solicită utilizatorilor anonimi adresa e-mail ca parolăpasswd-check rfc822 warn

Page 262: Administrarea Sistemelor Linux

9. Expedierea şi recepţionarea de mesaje:sendmail

Ca şi serviciul FTP, serviciul de poştă electronică este unul dintre primele servicii oferite de Internet. Un sistem de poştă electronică este alcătuit din următoarele trei componente:

- Agenţi utilizator (clienţi de poştă electronică, MUA = Mail User Agent),programe care permit utilizatorilor să citească, să emită şi să gestionezemesajele. Programele cele mai folosite în Linux sunt pine, mult, Kmail,Evolution, Netscape Messenger, Mazilia Mail etc.

- Agenţi de transport (MTA = Mail Transport Agent), programe responsabilepentru acceptarea mesajelor primite şi livrarea acestora la destinaţia finală.sendmail este agentul de transport tradiţional din mediile UNIX.

- Agenţi de distribuţie (MDA = Mail Distribution Agent), programe caredirecţionează mesajele primite către căsuţa poştală a utilizatorului destinatar.

Sistemul de poştă electronică din Linux/UNIX utilizează directorul /var/spool/maii pentru a stoca mesajele recepţionate de către utilizatori şi /var/spool/mqueue pentru a stoca mesajele expediate de către utilizatori, aflate în aşteptare, urmând a fi procesate de către agentul de transport. Fişierul-jurnal este în general localizat în /var/log/mailiog şi înregistrează cererile de expediere, mesajele primite, precum şi erorile apărute în urma acestor operaţiuni.

Cea mai importantă componentă a sistemului de poştă electronică este agentul de transport. In acest capitol ne vom ocupa de configurarea programului sendmail.

Pentru a oferi serviciul de transport al mesajelor, trebuie ca pachetul sendmail să fie instalat, iar daemonul sendmail să fie pornit. Dacă se doreşte modificarea fişierului de configurare sendmail.mc, trebuie instalat şi pachetul sendmail-cf.

Configurări generale

Fişierul /etc/sysconfig/sendmaii conţine două directive:

DAEMON stabileşte dacă sendmail rulează ca daemon. Dacă maşina nuprimeşte mesaje, poate fi setat pe No. QUEUE stabileşte

intervalul de timp la care este procesată coada de mesaje.

Page 263: Administrarea Sistemelor Linux

210 Administrarea şi configurarea sistemelor Linux

De exemplu:

DAEMON=yes QUEUE=lh

Controlul accesului

Controlul accesului se configurează prin intermediul fişierului /etc/mail/access. Acesta conţine mai multe reguli, câte una pe fiecare linie. Pot avea formatul:

user@maşină regulămaşină regulă|

domeniu regulă

După cum se observă, regulile se pot aplica unui mesaj trimis de un utilizator de pe o anumită maşină sau mesajelor trimise de pe o anumită maşină sau domeniu. Câmpul regulă poate lua valorile:

OK acceptă mesajul dacă alte reguli 1-ar refuza, de exemplu atuncicând domeniul nu poate fi rezolvat; RELAY acceptă mesaje

către domeniul specificat sau dinspre domeniulspecificat pentru a fi retransmise (relayed) de serverul SMTP;

REJECT refuză livrarea mesajului.

# acceptă retransmiterea mesajelor de pe maşina localălocalhost.localdomain RELAYlocalhost RELAYRELAY

# acceptă retransmiterea mesajelor din domeniul localbiosfarm.ro RELAY

t refuză mesajele provenite de la o anumită adresă[email protected] REJECT

După fiecare modificare a acestui fişier trebuie executată următoarea comandă, pentru reconstruirea bazelor de date:

| makemap hash /etc/mail/acccess.db < /etc/mail/access

Definirea pseudonimelor

Pseudonimele (alias-ur\\e) reprezintă nume echivalente pentru utilizatorii din sistem. Pot fi folosite fie pentru a redirecţiona mesajele către altă adresă (de

Page 264: Administrarea Sistemelor Linux

Setări avansate ale sistemului 211

exemplu, \vebmaster să fie echivalent cu sabin) sau a trimite un mesaj către mai multe adrese. Pseudonimele se configurează în fişierul /etc/mail/aliases (în versiunile mai vechi desendmail, /etc/aliases), în formatul:

| pseudonim: utilizator

Un exemplu:

webmaster: dragosoffice: biosfarmsales: mirela

După modificarea acestui fişier, trebuie reconstruită baza de date similar cu cea pentru controlul accesului.

Configurarea reţelei

Fişierul /etc/maii/local-host-names stabileşte numele echivalente pentru maşina locală. Poate fi folosit pentru a defini o listă de maşini în reţeaua locală, pentru care maşina locală serveşte ca destinaţie MX (Metil eXchanger):

biosfarm.ro măil.biosfarm.roI

Configurarea /etc/sendmail.mc

Fişierul /etc/sendmail.cf are o structură complexă şi prezintă multe opţiuni. Configurarea acestuia nu se face direct, ci prin intermediul unui fişier de configurare simplificat, procesat de preprocesorul numit m4. Acest fişier este /etc/maii/sendmaii.mc. Acesta conţine mai multe reguli, câte una pe fiecare linie. Regulile pot fi de mai multe tipuri şi trebuie să apară în fişierul de configurare de preferat în următoarea ordine:

VERSIONWCversiune')Defineşte versiunea sistemului.OSTYPE(\<iistem') Declară tipul sistemului de operare. Această regulă

trebuie obligatoriu specificată.DEFINECvariabilă',\'aloare') Defineşte variabilă, având valoarea specificată. FEATUREC opţiune') Activează o anumită opţiune. MAILER (program) Declară un program folosit ca agent de distribuţie.

Page 265: Administrarea Sistemelor Linux

212 Administrarea şi configurarea sistemelor Linux

Locaţiile fişierelor

ALIAS_FILE Stabileşte locaţia fişierului de pseudonime. Implicit:/etc/mail/aliases. QUEUE_DIR Stabileşte

directorul care conţine cozile de mesaje.Impliciţi /var/spool/mqueue.

PROCMAIL_MAILER_PA THStabileşte locaţia programului procmail (un program care permite filtrarea mesajelor). în general,/usr/bin/procmail.

Agenţi de distribuţie

Se stabileşte cu ajutorul regulii MAILER. Sunt recunoscuţi următorii agenţi de distribuţie: local, smtp şi procmail. în mod normal sunt activate toate trei. Este important de notat aici că declaraţia pentru smtp trebuie să preceadă declaraţia pentru procmail.

Opţiuni

use_cwjlle activează utilizarea fişierului /etc/mail/locai-host-names, descris mai sus;

smrsh utilizează SMRSH (SendMail Restricted SHell) în loc de/bin/sh. Implicit: /usr/bin/smrsh;

relay_based_on_MX activează posibilitatea de a permite retransmiterea bazatăpe înregistrările MX ale destinatarului;

acceptjunqualified_senders acceptă mesajele chiar dacă adresa expeditoruluinu este corectă (de exemplu, nu include numeledomeniului). Nu recomandăm activarea acestei opţiuni.

Vezi şi comentariul de la opţiunea următoare; accept_unresolvable_domains acceptă mesajele provenite din domenii ce nu

pot fi rezolvate. Nu recomandăm activarea acesteiopţiuni, deoarece aceasta asigură un nivel de protecţie

împotriva atacurilor de tip spam; blacklistj-ecipients permite blocarea primirii de mesaje pentru anumiţi

utilizatori destinatari sau anumite maşini; confDEF_USER_ID defineşte utilizatorul implicit, sub forma uid:gid. în

general: 8:12; confTO_QUEUEWARN stabileşte timpul de staţionare a unui mesaj în coada de

aşteptare după care se trimite expeditorului un mesaj deatenţionare. Implicit: 4h;

Page 266: Administrarea Sistemelor Linux

Setări avansate ale sistemului 213

confTO_QUEUERETURN stabileşte timpul de staţionare a unui mesaj în coadade aşteptare după care acesta este trimis înapoi

expeditorului. Implicit: 5d\ confQUEUE_LA specifică nivelul minim de încărcare a maşinii peste care

mesajele sunt introduse în coada de aşteptare, fără a fitrimise; confREFUSE_LA specifică nivelul minim de

încărcare a maşinii peste carenu sunt acceptate noi mesaje.

Reguli speciale

DAEMON_OPTIONSCPort=port, Addr=adresă, Name=MTA')Specifică adresa şi portul pe care sendmail va accepta cereri.

După modificarea fişierului /etc/maii/sendmaii.mc trebuie generat fişierul de configurare /etc/sendmaii.cf apelând comanda:

| m4 /etc/mail/sendmail.mc > /etc/sendmail.cf

Evident, daemonul sendmail trebuie repornit pentru ca modificările să aibă efect.

Prezentăm în cele ce urmează un fişier /etc/mail/sendmail .mc:

include('/usr/share/sendmail-cf/m4/cf.m4')VERSIONID('linux setup for Red Hat Linux')dnlOSTYPE("linux1)dnl utilizatorul implicitdef ine (' conf DEF_USER__ID' , '"8:12 ' ' ) dnldnl locaţia programului procmaildefine('PROCMAIL_MAILER_PATH', Vusr/bin/procmail')dnldnl locaţia fişierului conţinând pseudonimedefine("ALIAS_FILE', '/etc/aliases')dnldnl locaţia fişierului pentru statisticidefine('STATUS_FILE', '/etc/mail/statistics')dnldnl timpul de staţionare a unui mesaj în coadă după care setrimitednl expeditorului un mesaj de atenţionaredefine("confTO_QUEUEWARN', ' 4h')dnldnl timpul de staţionare a unui mesaj în coadă după care estetrimisdnl înapoi expeditoruluidefine('confTO_QUEUERETURN', ~5d')dnldnl nivelul minim de încărcare a maşinii peste care mesajele suntdnl introduse în coada de aşteptare, fără a fi trimisedefine(vconfQUEUE_LA', ' 1 6 ' )dnldnl specifică nivelul minim de încărcare a maşinii peste care nudnl sunt acceptate noi mesajedefine("confREFUSE_LA', ' 1 8 ' ; dnldnl locaţia shell-ului SMRSH

Page 267: Administrarea Sistemelor Linux

214 Administrarea şi configurarea sistemelor Linux

Page 268: Administrarea Sistemelor Linux

FEATURE('smrsh','/usr/sbin/smrsh')dnlFEATURE('mailertable', "hash -o /etc/mail/mailertabie.db')dnlFEATURE('virtusertable',"ha s h -o /etc/mail/virtusertable.db')dnldnl permite redirecţionarea mesajelorFEATURE(redirect)dnlFEATURE(always_add_domain)dnlFEATURE(use_cw_file)dnlFEATURE(use_ct_file)dnlFEATURE(local_procmail,' ' , 'procmail -t -Y -a $h -d $u')dnlFEATURE(~access_db','hash -o /etc/mail/access.db')dnlFEATURE('blacklist^recipients')dnlEXPOSED_USER('root')dnlFEATURE('relay_based_on_MX')dnlMAILER(smtp)dnlMAILER(procmail)dnl

Page 269: Administrarea Sistemelor Linux

10. Configurarea jurnalelor sistemului:syslog

Daemonul syslog oferă atât aplicaţiilor, cât şi nucleului Linux posibilitatea de jurnalizare a mesajelor generate (mesaje de eroare, de atenţionare, de depanare etc.). Mesajele pot fi trimise către maşina locală sau către maşini aflate la distanţă.

Pentru utilizarea serviciului syslog, trebuie instalat pachetul sysklogd, iar serviciul syslogd trebuie să fie pornit.

Fişierul de configurare este /etc/syslog.conf. Acesta conţine mai multe reguli, câte una pe fiecare linie. Sunt acceptate şi comentarii, care trebuie să înceapă cu caracterul „#". O linie poate fi continuată pe linia următoare prin adăugarea la sfârşit a caracterului „\" Fiecare regulă conţine două câmpuri, unul selector şi unul de acţiune, separate prin spaţii sau tab-uri.

Selectorii

Câmpul selector este alcătuit, la rândul său, din două părţi, clasa şi prioritatea, separate prin caracterul „.".

Clasa poate fi: auth, authpriv, erou, daemon, kern, Ipr, mail, news, syslog, user, uucp, localO ... local?. Aceasta specifică sistemul care a generat mesajul.

Prioritatea este unul dintre următoarele cuvinte-cheie (în ordine ascendentă): debug, info, notice, warning, err, crit, alert, emerg, panic. Aceasta specifică severitatea mesajului. Toate mesajele având o anumită prioritate sau mai mare sunt jurnalizate în conformitate cu acţiunea specificată. Pot fi utilizate şi caracterul special „*" (care înseamnă toate clasele, respectiv toate priorităţile) şi none, adică fără prioritate pentru clasa specificată.

Pot fi specificate mai multe clase având aceeaşi prioritate, separate prin virgulă. De asemenea, pot fi specificaţi mai mulţi selectori pentru o singură acţiune, separaţi prin caracterul „;".

Acţiunile

Câmpul ce descrie acţiunea reprezintă destinaţia jurnalului. Sunt posibile urmă-toarele destinaţii:

Page 270: Administrarea Sistemelor Linux

216 Administrarea şi configurarea sistemelor Linux

- Fişiere obişnuite: numele fişierelor trebuie să includă calea completă,începând cu caracterul „/". Dacă numele începe cu caracterul „-", nu se vamai face scrierea pe disc (fsync) după fiecare mesaj, putând îmbunătăţiperformanţa sistemului.

- Terminale, de exemplu /dev/consoie sau /dev/ttyio.- Maşină aflată la distanţă: permite transmiterea mesajelor către o maşină care

rulează daemonul syslog. Aceasta se realizează prin caracterul „@" urmat denumele maşinii pe care vor fi transmise mesajele.

- Listă de utilizatori: permite trimiterea mesajelor critice către anumiţiutilizatori, care vor apărea pe terminalul curent al acestora. Separareautilizatorilor din listă se face prin virgulă.

- Toţi utilizatorii intraţi în sistem, printr-un asterisc „*".

Semnale

Daemonul syslog reacţionează la următoarele semnale:

SIGHUP Reciteşte fişierul de configurare şi iniţializează syslogd.SIGTERMSIGINTSIGQUIT Termină execuţia daemonului.

Iată un exemplu:

# jurnalizează toate mesajele având prioritate mai mare decât info# nu jurnalizează mesajele provenite de la sendmail, de la# sistemul de autentificare şi nici sistemul localO*.info;mail.none;authpriv.none;loca10.none /var/log/messages *.info;mail.none;authpriv.none;localO.none /dev/tty9

# jurnalizează mesajele provenite de la sistemul de autentificareauthpriv.* /var/log/secureauthpriv.* /dev/tty9

# jurnalizează toate mesajele provenite de la sendmailmail. *

/var/log/maillogmail.* /dev/ttylO

# jurnalizează mesajele PostgreSQL (dacă acesta a fost configurattt să utilizeze clasa localO) . Nu apelează fsync.localO.* -/var/log/pgsqllocalO.* /dev/tty!2

# jurnalizează mesajele provenite de la o aplicaţie de tip ERP# către o altă maşină

Page 271: Administrarea Sistemelor Linux

Setări avansate ale sistemului 217

Iocal6.* Szeus

# jurnalizează mesajele critice*.emerg /dev/tty9*.emerg /var/log/messages

Configurarea opţiunilor generale syslogd se poate face prin intermediul fişierului /etc/sysconf ig/syslog. Sunt permise următoarele două directive:

SYSLOGD_OPTIONS=„ opţiuni"Stabileşte opţiunile syslogd. Opţiunile cele mai importante sunt: -m nr specifică intervalul de timp la care vor fi generate mesaje

informative MARK (pentru a semnala că serviciulfuncţionează). Valoarea O dezactivează generarea acestormesaje; -r permite jurnalizarea mesajelor provenite

de pe altămaşină; -x dezactivează determinarea adresei (prin

cereri DNS)pentru mesajele provenite de pe alte maşini. Lista completă de opţiuni

poate fi găsită în mân 8 syslogd. KLOGD_OPTIONS=„ opţiuni"Stabileşte opţiunile klogd (daemonul care jurnalizează mesajele provenite de la nucleu). Lista de opţiuni poate fi găsită în mân 8 klogd.

Pentru exemplificare, prezentăm un fişier /etc/sysconf ig/syslog:

# Opţiuni syslogdSYSLOGD_OPTIONS="-m O -r -x"# Opţiuni klogdKLOGD OPTIONS="-2"

Page 272: Administrarea Sistemelor Linux

11. Execuţia de proceduri automate: serviciul cron

Serviciul cron (numit uneori şi Vixie Cron) este un daemon, creat de Paul Vixie, care execută comenzi în mod programat, la anumite momente de timp.

Pentru a utiliza serviciul cron trebuie instalate pachetele vixie-cron şi crontabs, iar serviciul crond să fie pornit.

Daemonul cron „se trezeşte" la fiecare minut, verifică conţinutul directoarelor:- cron.d: scripturi speciale cron;- cron. houriy: scripturi care vor fi executate din oră în oră;- cron. daiiy: scripturi care vor fi executate zilnic;- cron. weekiy: scripturi care vor fi executate săptămânal;- cron.monthly: scripturi care vor fi executate lunar

şi execută scripturile aflate în ele. Se configurează prin intermediul fişierului /etc/crontab. Acesta conţine instrucţiuni de forma „execută această comandă la momentul specificat". Dacă variabila de mediu MAILTO este definită şi nu este vidă, utilizatorului specificat în aceasta îi va fi trimis un mesaj conţinând ieşirea standard a scriptului.

Scripturile vor fi executate de sub utilizatorul care este proprietarul acestora, în cadrul scripturilor pot fi utilizate comentarii, care trebuie să înceapă cu caracterul „#". Pot fi definite şi variabile de mediu, de forma nume=vaioare.

Serviciul cron jurnalizează acţiunile executate (lansarea în execuţie a scripturilor) în genere în fişierul /var/iog/cron.

Fiecare linie din /etc/crontab are forma:

| specificaţie__timp utilizator script

unde:specificaţie Jimp conţine următoarele cinci câmpuri:

• minut, putând lua valori între O şi 59;• oră, putând lua valori între O şi 23;• zi din luna, putând lua valori între l şi 31;• lună, putând lua valori între l şi 12 sau nume de lună;• zi din săptămână, putând lua valori între O şi 7 (O = duminică) sau nume de

zile.utilizator este utilizatorul sub care vor fi executate scripturile; script este locaţia scriptului care va fi executat.

Page 273: Administrarea Sistemelor Linux

Setări avansate ale sistemului 219

Page 274: Administrarea Sistemelor Linux

Un câmp poate lua valoarea „*", semnificând orice valoare. De asemenea, sunt permise intervale de numere, separate prin „-" (de exemplu 8-10), şi liste de valori sau intervale, separate prin virgulă (de exemplu 8-12,14,20). Poate fi utilizată şi divizarea valorilor, adăugând la interval caracterul „/" şi factorul de divizare (spre exemplu, 8-20/2 înseamnă între orele 8 şi 20, din două în două ore).

Un fişier uzual /etc/crontab este furnizat mai jos:

SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/

# run-parts1* * * * root run-parts /etc/cron.hourly24 * * * root run-parts /etc/cron.daily22 4 * * O root run-parts /etc/cron.weekly42 4 l * * root run-parts /etc/cron.monthly

După cum se poate remarca, scripturile din directorul cron.houriy vor fi executate la fiecare oră şi l minut, cele din cron.daily - în fiecare zi la ora 4 şi 2 minute, cele din cron.weekly - în fiecare duminică la ora 4 şi 22 de minute, iar cele din cron.monthly-în ziua de l a fiecărei luni, la ora 4 şi 42 de minute. Toate scripturile vor fi executate de sub utilizatorul root.

Pe lângă sistemul cron, pot fi folosite şi serviciile anacron şi at, care prezintă funcţiuni similare.

Page 275: Administrarea Sistemelor Linux

12. Sistemul de autentificare PAM

Sistemul de autentificare PAM (Pluggable Authentication Modules) permite administratorului de sistem să stabilească politicile de autentificare fără a interveni asupra programelor de autentificare. Acest sistem constă dintr-un set de biblioteci care oferă o interfaţă comună pentru programele care necesită proceduri de autentificare. De cele mai multe ori nu sunt necesare configurări speciale pentru PAM, întrucât la instalarea pachetelor acestea sunt realizate automat.

Fişierele de configurare PAM se găsesc în directorul /etc/pam.d. Fiecare serviciu are propriul fişier. Fiecare linie din aceste fişiere conţine cinci elemente: numele serviciului, tipul modulului, câmpul de control, locaţia modulului şi argumente.

PAM defineşte patru tipuri de module pentru a controla accesul la un anumit serviciu:

auth furnizează autentificarea propriu-zisă (în general solicitarea şi apoiverificarea parolei);

account verifică dacă utilizatorului îi este permis accesul (dacă contul nu a expirat etc.);

password setează parolele;session este folosit după ce utilizator a fost autentificat, pentru a efectua

anumite operaţiuni necesare (montarea directorului home a utiliza-torului etc.).

Aceste module pot fi suprapuse (stacked) sau plasate unul lângă altul, astfel încât să fie utilizate mai multe module. Ordinea unei stive de module este importantă în cadrul procesului de autentificare, pentru că face mai uşor administratorului să impună mai multe condiţii pentru a permite autentificarea utilizatorilor.

Fiecare modul generează un rezultat care semnalizează succesul sau eşecul execuţiei sale. Câmpul de control stabileşte modul de interpretare a acestui rezultat. Câmpul de control decide cât de important să fie considerat tipul respectiv de modul în vederea acordării accesului la respectivul serviciu. Există patru tipuri de câmpuri de control:

required: modulul trebuie să returneze succes pentru ca autentificarea să fie permisă. Dacă rezultatul este negativ, utilizatorul nu este informat până când toate celelalte module nu au fost executate;

Page 276: Administrarea Sistemelor Linux

Setări avansate ale sistemului 221

Page 277: Administrarea Sistemelor Linux

requisite:

sufficienf.

opţional:

modulul trebuie să returneze succes pentru ca autentificarea să fiepermisă. Dacă rezultatul este negativ, utilizatorul este informatimediat;modulul este ignorat dacă rezultatul este negativ. Dacă modululreturnează succes şi nici un modul marcat required nu a eşuat, numai este verificat nici un modul de acest tip;aceste module nu sunt esenţiale pentru succesul sau eşeculautentificării.

Page 278: Administrarea Sistemelor Linux

#%PAM-1.0authauthauthaccountpasswordpassworduse_authoksession

requiLeci required required

required

/ liij/security/pam_securetty. so /lib/security/pam_unix.so shadow nullok /'- ' b/,---:Curi ty/pam_nologin. so /Iii'./ oecurity/pam_unix. so /lib/security/pam_cracklib.so /lib/security/pam_unix.so shadow nullok

/lib/security/pam_unix.so

Page 279: Administrarea Sistemelor Linux

Vom descrie în continuare modulele cele mai importante:

pam_access

Furnizează posibilitatea de control al accesului. Se configurează prin intermediul fişierului /etc/security/access.conf. Numele acestui fişier de configurare poate fi modifîcat-cu ajutorul argumentului accessfiie=fi?ier. Este structurat pe linii, fiecare conţinând trei câmpuri, separate prin caracterul „:":

| permisiune : utilizatori : origini

unde:

permisiune poate fi caracterul „+" pentru acordarea permisiunii sau „-" pentrurefuzarea acesteia; utilizatori este o listă de utilizatori, grupuri

sau cuvântul-cheie ALL (toţiutilizatorii), la care se referă regula; origini este o listă de

maşini, domenii (începând cu „."), adrese IP saucuvântul-cheie ALL (orice maşină), la care se referă regula.

In cadrul listelor pot fi utilizate şi cuvintele-cheie EXCEPT (exceptând o anumită valoare) şi LOCAL (maşina sau domeniul local). De exemplu:

# refuză accesul utilizatorilor (mai puţin lui dragos şi lui sabin)t de pe maşinile din afară-:ALL EXCEPT dragos sabin:ALL EXCEPT LOCAL

Page 280: Administrarea Sistemelor Linux

222 Administrarea şi configurarea sistemelor Linux

pam_cracklib

Furnizează diferite modalităţi de verificare a parolelor. Acest modul solicită utilizatorului o parolă, o verifică pentru a nu fi cuvânt de dicţionar şi verifică îndeplinirea anumitor reguli. Acceptă următoarele argumente:

retry=nr stabileşte numărul de reîncercări de introducere a parolei. Implicit:

i;difok=nr specifică numărul de caractere din vechea parolă care nu trebuie să

fie prezente în noua parolă. Implicit: 10. în plus, dacă jumătate din caracterele din noua parolă sunt diferite, aceasta va fi acceptată;

minlen=nr dimensiunea minimă a parolei plus unu. Implicit: 9. în plus faţă de această valoare, va fi acordat un credit de +1 pentru fiecare tip diferit de caracter (alt caracter, caractere mari, mici şi cifră);

dcredit=nr creditul maxim pentru folosirea cifrelor în cadrul parolei. Implicit: 1;

ucredit=nr creditul maxim pentru folosirea caracterelor mari. Implicit: /;lcredit=nr creditul maxim pentru folosirea caracterelor mici. Implicit: 7;ocredit=nr creditul maxim pentru folosirea caracterelor diferite. Implicit: 1.

pam_deny

Refuză acceptul necondiţionat.

pam_ftp

Dacă numele utilizatorului este ftp sau anonymous, este verificată adresa e-mail introdusă ca parolă.

pam_limits

Acest modul stabileşte anumite limite asupra resurselor sistemului. Se configurează prin intermediul fişierului /etc/security/limits.conf. Utilizatorul root nu este afectat de limitele definite. Numele fişierului de configurare poate fi modificat cu ajutorul argumentului conf=fişier.

Fiecare linie din fişierul de configurare descrie o limită pentru un utilizator, în următorul format:

| domeniu tip obiect valoare

unde:

domeniu poate fi un utilizator, un grup (cu sintaxa @grup) sau caracterul tip poate lua una dintre valorile:

Page 281: Administrarea Sistemelor Linux

Setări avansate ale sistemului 223

o hard\ limitele sunt stabilite de nucleul Linux şi nu pot fi încălcate;o soft: limite care pot fi modificate de utilizator, în plaja limitelor

stabilite de nucleu;o -: ambele tipuri de limite;

obiect poate lua una dintre valorile:o core: limitează dimensiunea segmentului de program (KB);o data: limitează dimensiunea segmentului de date (KB);o fsize: limitează dimensiunea fişierelor (KB);o nofile: limitează numărul de fişiere deschise simultan;o stack. limitează dimensiunea stivei (KB);o nproc: limitează numărul de procese executate simultan;o maxlogins: limitează numărul de intrări în sistem;o priority: prioritatea cu care vor fi executate procesele.o -: nu impune nici o limită.

Un exemplu:

|@student - maxlogins 3Sstudent hard nprocs 20

pamJUstfîlePermite acordarea / refuzarea accesului, în urma verificării unor obiecte specificate într-un fişier. Acceptă următoarele argumente:

onerr=succeed \failStabileşte valoarea returnată de modul în caz de eroare: succes,

respectiv eşec. sense=allow \ deny

Stabileşte semnificaţia regulii: acordă sau refuză accesul. file^fişier Specifică locaţia fişierului care conţine numele obiectelor cu

care se face verificarea. item=user \ tty \ rhost \ ruser \ group \ shell

Specifică tipul obiectelor conţinute de fişier. apply=utilizator \ @grup

Aplică regula utilizatorului, respectiv a grupului specificat.

pam_nologin

Furnizează autentificarea în funcţie de existenţa fişierului /etc/noiogin. Dacă acesta există, accesul va fi refuzat, exceptând utilizatorul root.

pam_pwdb

Permite autentificarea pe baza verificării parolei. Recunoaşte următoarele argumente:

Page 282: Administrarea Sistemelor Linux

224 Administrarea şi configurarea sistemelor Linux

nullok Permite şi parole vide.mdS Criptarea parolelor se face prin metoda MD5.

pam_rhosts_auth

Permite autentificarea stil .rhosts.

pam_securetty

Permite accesul utilizatorului root numai de pe terminalele specificate în fişierul/etc/securetty.

pam_time

Acest modul permite restricţionarea utilizatorilor în funcţie de momentul intrării în sistem. Se configurează prin intermediul fişierului /etc/security/time.conf, care este alcătuit din mai multe seturi de reguli. Regulile au următorul format:

| servicii; terminale; utilizatori; momente_timp

unde:servicii este lista de servicii la care se aplică regula;terminale este lista de terminale la care se aplică regula;utilizatori este lista de utilizatori pentru care se aplică regula. Lista de

utilizatori este o înşiruire de directive separate prin caracterul „&" (şi logic) sau „ i " (SAU logic). Fiecare directivă poate conţine cel mult un caracter wildcard „*" şi poate începe opţional cu caracterul „!" (negare);

momente timp este lista de momente de timp în care se aplică regula. Fiecare element este un interval de date/timp (de exemplu, MoFr înseamnă de luni până vineri, Mol800-2030 înseamnă luni de la ora 18 până la 20:30).

De exemplu: | ssh;tty* &

ttyp*;dragos;MoSu0700-1800

va accepta utilizatorul dragos prin serviciul ssh în toate zilele săptămânii, dar numai între orele 07:00 şi 18:00.

pam_unix

Furnizează serviciul obişnuit de autentificare prin parolă. Sunt permise următoarele argumente:

Page 283: Administrarea Sistemelor Linux

Setări avansate ale sistemului 225

nullok Acceptă şi parole vide.mdS Criptarea se face prin metoda MD5.shadow Parolele sunt stocate în sistemul shadow (în /etc/shadow).

Mai multe informaţii despre sistemul PAM pot fi obţinute apelând comandamân pam.

Page 284: Administrarea Sistemelor Linux

13. Ajustarea parametrilor nucleului: sistemul de fişiere /proc

Directorul /proc conţine fişiere şi directoare virtuale care oferă informaţii privind starea sistemului, din punctul de vedere a! nucleului. De asemenea, pot fi configuraţi anumiţi parametri ai nucleului.

Pentru ca acest director să fie disponibil, el trebuie mai întâi montat, în mod normal automat la pornirea sistemului. Pentru aceasta, fişierul /etc/fstab trebuie să conţină următoarea linie:

| none /proc prcc defaults O O

Multe programe, cum ar fifree sau top, extrag informaţii din fişierele aflate în /proc, afişându-le într-un format util.

13.1. Informaţii furnizate prin directorul /proc

Directorul /proc conţine următoarele fişiere:

apm starea APM (Advanced Power Management);cmdline parametrii cu care a fost apelat nucleul Linux;cpuinfo informaţii despre procesorul sistemului;devices dispozitivele configurate din nucleu;dma canalele DMA (Direct Memory Access} utilizate;execdomains domeniile de execuţie suportate de nucleu. Acestea permit

execuţia şi altor fişiere binare decât cele Linux, cum ar fiSolaris sau FreeBSD;

ft> dispozitivele/rame biiffer (plăci video);filesystems tipurile de sisteme de fişiere suportate de către nucleu; interrupts întreruperile active, tipul acestora şi dispozitivele care le

utilizează;iomem zonele de memorie alocate de către dispozitive;ioports regiunile de porturi I/O utilizate de către dispozitive pentru

comunicaţii;isapnp plăcile Plug andPlay ISA din sistem;

Page 285: Administrarea Sistemelor Linux

Setări avansate ale sistemului 227

Page 286: Administrarea Sistemelor Linux

kcore reprezintă memoria fizică din sistem. Acest fişier binar nutrebuie vizualizat, deoarece poate cauza efecte stranii asupraterminalului;

kmsg mesajele generate de nucleu. Sunt utilizate de alte programe,cum ar fi klogd;

ksysms definiţiile de simboluri din cadrul nucleului, utilizate deprogramele de gestiune a modulelor pentru a face legătura cumodulele încărcate;

loadavg nivelul de încărcare a maşinii. Este utilizat de programuluptime',

locks fişierele blocate curent;mdstat configuraţiile RAID;meminfo utilizarea memoriei RAM şi a swap-ului;mise driverele înregistrate ca dispozitive mise (numărul major 10);modules modulele încărcate în memorie;mount sistemele de fişiere montate;mtrr MTRR-urile (Memory Type Range Register) utilizate;partitions partiţiile de pe discurile instalate în sistem;pci dispozitivele conectate la magistrala PCI a sistemului;slabinfo utilizarea memoriei la nivelul slab. Acesta este utilizat intern de

către nucleu pentru a aloca memorie;stat diverse statistici despre sistem;swaps dimensiunea şi utilizarea swap-ului;uptime timpul scurs de la pornirea sistemului;version versiunea de nucleu şi cea a compilatorului.

Directorul /proc conţine, de asemenea, următoarele subdirectoare:

directoarele de proces au ca nume identificatorul procesului. Fiecare director conţine următoarele fişiere:• cmdiine: linia de comandă cu care a fost pornit procesul;• cpu: informaţii despre utilizarea fiecărui procesor;• cwd: directorul curent pentru procesul în cauză;• environ: conţinutul variabilelor de mediu pentru proces;• exe: o legătură la fişierul executabil al procesului;• f d: descriptorii de fişier;• maps: mapările de memorie pentru executabilele şi

bibliotecile asociate procesului;• mem: memoria alocată de către proces;• root: o legătură către directorul-rădăcină al procesului;• stat: starea procesului;• statm: starea memoriei alocate de către proces;• status: starea procesului;

Page 287: Administrarea Sistemelor Linux

228 Administrarea şi configurarea sistemelor Linux

Page 288: Administrarea Sistemelor Linux

seif

bus

driver ide

irq net scsi

sys

sysvipc

tty

reprezintă o legătură simbolică către directorul corespunzătorprocesului executat curent;informaţii despre diversele magistrale din sistem. Conţinedirectoarele:• usb: informaţii despre dispozitivele conectate la magistrala

USB;• pci: informaţii despre dispozitivele PCI din sistem,folosit de diverse drivere, de exemplu rtc;informaţii despre dispozitivele IDE din sistem. Acest director va conţine mai multe subdirectoare, pentru canalele IDE (ideQ, idei), iar în acestea, subdirectoare pentru dispozitivele IDE (hda, hdc etc.). Fiecare subdirector pentru dispozitiv conţine fişierele:• cache: dimensiunea memoriei-tampon (cache) a dispoziti

vului;• capacity: dimensiunea dispozitivului, măsurată în blocuri

de câte 512 octeţi;• driver: driverul utilizat;• geometry: geometria fizică şi logică a dispozitivului;• media: tipul dispozitivului;• model: modelul dispozitivului;• settings: parametrii curenţi ai dispozitivului. Pentru

detalii, vezi paragraful următor;utilizat pentru a conecta IRQ-uri la anumite procesoare;diverşi parametri ai reţelei şi statistici;informaţii despre dispozitivele SCSI din sistem. Conţine:• scsi: lista tuturor dispozitivelor SCSI;• câte un director pentru fiecare driver SCSI;permite modificarea diferitor configurări ale nucleului. Pentrudetalii, vezi paragraful următor;informaţii despre resursele IPC System V, şi anume cozile demesaje (msg), semafoarele (sem) şi zonele de memorie comună(shm);dispozitivele configurate şi utilizate curent.

Page 289: Administrarea Sistemelor Linux

13.2. Ajustarea parametrilor nucleului

Este important de remarcat că modificarea parametrilor trebuie făcută cu atenţie, întrucât operaţiunea poate conduce la un comportament anormal sau chiar la blocarea sistemului şi pierderea de informaţii.

Page 290: Administrarea Sistemelor Linux

Setări avansate ale sistemului 229

Modificarea informaţiilor se face prin trimiterea acestora către fişierul în cauză, de exemplu echo "l" > /proc/sys/kernel/sysrq.

/proc/sys/fs conţine o serie de opţiuni şi informaţii despre sistemele de fişiere, după cum urmează:• dentry-state: starea cache-u\ui de directoare. Conţine şase

valori:• nr_dentry: numărul total de intrări în cache;• nr_unused: numărul de intrări neutilizate;• age_limit: numărul de secunde de când

directorul a fost eliberat şi poate fi reclamat;• want_pages: numărul de pagini solicitate;• dummyi: neutilizată;• duitmy2: neutilizată.

• file-max: numărul maxim de identificatori care vor fialocaţi de către nucleu;

• f ile-nr: numărul de identificatori de fişier alocaţi, numărulde identificatori utilizaţi şi numărul maxim de identificatori;

• super-max: numărul maxim de superblocuri;• super-nr: numărul de superblocuri utilizate.

/proc/sys/kernel conţine diverse fişiere de configurare care afecteazăfuncţionarea nucleului, astfel:• ctrl-alt-dei: permite folosirea combinaţiei ctri-Ait-

Del pentru repornirea sistemului (l pentru activare, O pentrudezactivare). Implicit: 0;

• domainname: numele domeniului;• hostname: numele maşinii;• modprobe: locaţia programului utilizat pentru încărcarea

modulelor. Implicit: /sbin/modprobe;• msgmax: mărimea maximă a mesajelor IPC. Implicit: 8192

octeţi;• msgmnb: dimensiunea maximă a unei cozi de mesaje.

Implicit: 16384;• msgmni: numărul maxim de identificatori de cozi de mesaje.

Implicit: 16;• osreiease: versiunea nucleului Linux. Nu poate fi

modificată;• ostype: tipul sistemului de operare, în mod normal Linux.

Nu poate fi modificată;• panic: numărul de secunde de la o cădere a nucleului

(kernel panic) până la repornirea sistemului. Implicit arevaloarea O, care dezactivează repornirea;

Page 291: Administrarea Sistemelor Linux

230 ____________________ Administrarea şi configurarea sistemelor Linux

• printk: defineşte modul de jurnalizare a mesajelor deeroare. Conţine patru valori:

• prioritatea minimă a mesajelor care vor fi trimise laconsolă (console loglevel);

• nivelul implicit al mesajelor care nu au stabilit unnivel;

• cea mai mică valoare a nivelului de jurnalizarepentru consolă;

• valoarea implicită a nivelului pentru consolă.Nivelurile de jurnalizare sunt următoarele:

• 0: panică a nucleului. Sistemul este inutilizabil;• 1: alertă a nucleului. Trebuie luată imediat o

decizie;• 2: condiţia nucleului este critică;• 3: condiţie generală de eroare;• 4: condiţie generală de atenţionare;• 5: condiţie normală dar semnificativă;• 6: mesaj informativ;• 7: mesaj de depanare.

• rtsig-max: numărul maxim de semnale în timp real POSIXpoate avea sistemul în coada de aşteptare. Implicit: 7024;

• rtsig-nr: numărul de semnale aflate în coada de aşteptarecurent. Nu poate fi modificată;

• sem• shmaii: dimensiunea maximă a memoriei comune ce poate

fi utilizată, în octeţi. Implicit: 2097152;« shmmax: dimensiunea maximă a segmentului de memorie

comună, exprimată în octeţi. Implicit: 33554432;• shînmni: numărul maxim de segmente de memorie comună.

Implicit: 4096;• sysrq: permite utilizarea combinaţiei de taste SysRq (System

Rec/uest Key), care este în general ctri+Ait+SysRq.Implicit: 0. Pentru mai multe informaţii privind SysRq, a seconsulta fişierul /usr/src/linux/Documentation/sysctl/sysrq.txt;

• threads-max: numărul maxim de fire de execuţie. Implicit:4095;

• version: data şi timpul compilării nucleului. Nu poate fimodificat.

/proc/sys/net conţine numeroase fişiere şi directoare privind protocoalele de comunicaţie. Pentru detalii, a se vedea fişierul

/usr/src/linux/Documentation/networking/ip-sysctl.txt.

Page 292: Administrarea Sistemelor Linux

Setări avansate ale sistemului 231

/proc/sys/vm permite configurarea sistemului de gestiune a memoriei virtuale. Conţine următoarele fişiere:• bdflush: controlează operarea daemonului bdflush (care

gestionează scrierea bufferelor pe disc). Conţine 9 câmpuri:• nf ract: numărul maxim de buffere nescrise (dirty

buffers), exprimat în procente. Implicit: 40;• dummyi: neutilizată;• dummy2: neutilizată;• dummyS: neutilizată;• interval: intervalul minim de timp la care

daemonul kupdate se va trezi şi va scrie bufferelepe disc. Valoarea este exprimată în jiffies (numărde tacturi de ceas), care este în general 100 pesecundă. Implicit: 5 secunde;

• age_buffer: durata maximă de timp (în jiffies)după care bufferele vor fi scrise pe disc. Implicit:30 secunde;

• nf ract_sync: procentul de buffere nescrise înaintede activarea bdflush. Implicit: 60;

• dummy4: neutilizată;• dummy5: neutilizată;

• kswapd: valori referitoare la daemonul de swap, kswapd (acestaeste un daemon intern al nucleului), după cum urmează:

• tries_base: numărul maxim de pagini pe carekswapd va încerca să le elibereze într-o singurăîncercare. Cu cât această valoare este mai mare, cuatât nucleul va fi mai agresiv în eliberarea depagini. Implicit: 572;

• tries_min: numărul minim de încercări făcute dekswapd de a elibera pagini. Implicit: 32;

• swap_ciuster: numărul de pagini pe care kswapdva încerca să le scrie într-o încercare. Implicit: 8;

• overcommit_memory: dacă este diferită de zero, permitenucleului să nu facă verificarea standard dacă există destulămemorie disponibilă înainte de a o aloca;

• page-cluster: numărul de pagini citite într-o încercare.Implicit: 4;

• pagetabie cache: controlează numărul de tabele de paginimemorate pentru fiecare procesor în parte:

• valoarea minimă de tabele. Implicit: 25;• valoarea maximă de tabele. Implicit: 50;

Mai multe informaţii despre aceste fişiere se găsesc înfişierul/usr/src/linux/Documentation/sysctl/vm.txt.

Page 293: Administrarea Sistemelor Linux
Page 294: Administrarea Sistemelor Linux

232 Administrarea şi configurarea sistemelor Linux

Page 295: Administrarea Sistemelor Linux

/proc/ide/canal/dispozitiv/settings permite modificarea parametrilor asociaţi fiecărui dispozitiv IDE. Aceasta se face prin comenzide genul echo "opţiune: valoare" > settings. Opţiunile

principale sunt:• current_speed: viteza maximă de rotaţie, valabilă doar

pentru unităţi CD-ROM;• fiie_readahead: cantitatea de informaţii pe care

dispozitivul o va citi în avans;• idc_sc3i: permite tratarea dispozitivului ca pe unul SCSl

(doar pentru unităţi CD-ROM, util pentru unităţi deinscripţionare);

• io_32bit: activează transferurile de date pe 32 biţi;• max_kb_per_request: dimensiunea maximă a cererii;• using_dma: foloseşte DMA (Direct Memory Access) pentru

transferurile de date.Spre exemplu, comanda echo "using_dma:l" > /proc/ide/0/ hda/settings va activa transferurile de date prin intermediul DMA.

13.3. Utilizarea sysctl

Modificarea parametrilor descrişi în paragraful precedent poate fi realizată şi prin intermediul interfeţei grafice sysctlconfig (meniul System :: Sysctlconfig în Red Hat) sau a programului sysctl:

Page 296: Administrarea Sistemelor Linux

Setări avansate ale sistemului 233

Fişierul de configurare al programului sysctl este /etc/syscti.conf, care conţine opţiuni şi valorile acestora, în formatul opţiune=vaioare. Lista tuturor opţiunilor posibile poate ft afişată apelând comanda sysctl -a.

Un fragment dintr-un posibil fişier /etc/sysctl. conf este redat în continuare:

kernel.sysrq = l kernefl.sem = 250 32000 32 128IDupă cum se poate observa, caracterul „/" (separatorul de director) este înlocuit

cu,,.".Fişierul de configurare va fi citit la pornirea sistemului din scriptul

/etc/rc.d/rc.sysinit. Pentru a produce modificări la un moment dat, poate fi utilizată o comandă de genul:

| sysctl -w kernel.sysrq="l"

Page 297: Administrarea Sistemelor Linux

Partea a IV-a

SECURIZAREA SISTEMULUI LINUX

Page 298: Administrarea Sistemelor Linux

1. Securizarea sistemului

Orice maşină conectată în permanenţă la Internet este vizibilă atât utilizatorilor care pot accesa resursele publice ale sistemului, cât şi persoanelor rău-voitoare care pot încerca să întreprindă acţiuni nedorite, aşa-numiţii crackeri. Acest capitol prezintă atât tipurile de atacuri care pot fi îndreptate împotriva maşinilor Linux, precum şi metodele de prevenire a acestora. Subiectul fiind extrem de vast, acest capitol trebuie considerat ca un îndrumar conţinând idei generale, urmând a fi dezvoltat într-o lucrare viitoare.

1.1. Atacuri

Există numeroase tipuri de atacuri care pot fi efectuate asupra sistemului. Acestea pot proveni de la distanţă sau chiar de pe propria maşină. Atacurile pot fi:

- atacuri de tip DOS (Denial Of Service), care degradează sau dezafecteazăanumite servicii ale sistemului;

- atacuri în vederea obţinerii de privilegii asupra sistemului;- atacuri în vederea copierii sau distrugerii de informaţii.

în cele ce urmează vom prezenta modalităţile principale de atac şi soluţii de prevenire şi stopare a acestora.

Bomba e-mail

Un asemenea atac constă în trimiterea repetată a unui mesaj, eventual de dimensiune mare. Aceasta duce la enervarea destinatarului şi la umplerea spaţiului disponibil pe disc, precum şi la încetinirea traficului prin reţea.

Poate fi stopat prin introducerea în fişierul /etc/mail/access din cadrul sendmail a unei directive de refuzare a mesajelor provenite de pe maşina respectivă. Această soluţie nu rezolvă însă problema traficului prin reţea.

Spam

Acesta nu este propriu-zis un atac, ci o modalitate de a trimite mesaje nesolicitate, în general conţinând reclame, foarte răspândită în ultima vreme, în general, adresa expeditorului este falsă (pentru a nu fi descoperit), astfel că acest tip de atac poate fi prevenit dezactivând opţiunea accept_unresolvable_domains în fişierul/etc/mail/sendmail.mc.

Page 299: Administrarea Sistemelor Linux

238 Administrarea şi configurarea sistemelor Linux

Dacă adresa expeditorului este corectă, se poate încerca contactarea administratorului maşinii de pe care a fost trimis mesajul sau introducerea unei directive de refuzare a mesajelor provenite de pe respectiva maşină (în/etc/mail/access).

înscrierea pe liste de discuţii

Reprezintă înscrierea unei adrese e-mail pe una sau mai multe liste de discuţii fără ca persoana căreia îi aparţine adresa să fi cerut explicit acest lucru. Nu există soluţii rapide pentru stoparea acestor atacuri, ci doar trimiterea de cereri de dezabonare.

Programe de tip „cal troian"

Acestea sunt programe rău intenţionate, care se „deghizează" sub forma unor executabile obişnuite, în prezent, cea mai cunoscută formă a acestui gen de programe o constituie aplicaţiile denumite black \vido\v („văduva neagră"), care sunt folosite pe WWW şi care pot bloca sau deteriora browserele Web. De asemenea, profitând de bug-urile prezente în aceste browsere, aceste programe pot eventual să copieze sau să deterioreze informaţii de pe calculatorul-client.

De asemenea, un alt tip de „cal troian" „la modă" este scriptul CGI prost proiectat, de multe ori intenţionat. Astfel, scripturile CGI nu trebuie să poată accesa informaţii confidenţiale de pe maşina pe care rulează, administratorul trebuind să verifice aceste scripturi.

Atacuri SYN flood

Reprezintă trimiterea unui volum foarte mare de cereri de conexiune către o maşină, ducând la supraîncărcarea traficului şi imposibilitatea de a răspunde la alte cereri. Este cauzat de crearea unui număr mare de conexiuni deschise doar pe jumătate. Deoarece fiecare conexiune deschisă trebuie prelucrată până în starea sa finală (în acest caz, depăşirea timpului maxim admis, timeout), sistemul va fi temporar blocat.

Poate fi prevenit compilând nucleul cu următoarea opţiune activată:

| IP: TCP syncookie support (disabled per default)

Buffer overflow

Datorită unor erori de programare, se poate ca anumite programe să aloce un spaţiu predefinit de memorie pentru stocarea unor informaţii. Atunci când apare o depăşire a acestui spaţiu de memorie, informaţiile ce depăşesc zona sunt stocate la o altă adresă. Prin manevrarea adreselor la care ajung, aceste date suplimentare pot produce executarea unor comenzi sub utilizatorul root.

Page 300: Administrarea Sistemelor Linux

Securizarea sistemului Linux 239

Acest tip de atac nu poate veni însă din afara maşinii, ci din interiorul ei. Nu poate fi prevenit. Pe măsură ce asemenea erori sunt descoperite, sunt generate actualizări ale programelor.

Scanarea reţelei

Atacul constă în monitorizarea informaţiilor care circulă printr-o interfaţă de reţea (e.g. cu tcpdump), pentru a detecta eventualele parole transmise necriptat prin reţea. Conectarea prin serviciul telnet, spre exemplu, este nesigură, deoarece parolele nu sunt criptate, putând fi determinate cu uşurinţă chiar şi de pe altă maşină, legată în aceeaşi reţea.

1.2. Sfaturi privind securizarea sistemului

Idei generale

Siguranţa fizică a sistemului

Prima regulă pentru asigurarea securităţii sistemului o constituie instalarea maşinii într-un loc sigur, unde să nu fie expusă contactului cu persoane neautorizate. Acestea nu trebuie să aibă posibilitatea sau timpul necesar pentru a înlătura carcasa, a modifica configuraţia hardware, a opri şi apoi reporni maşina (eventual în mod single), a înlocui sau copia informaţiile de pe discuri sau inocula programe răuvoitoare („cai troieni"), în orice caz, administratorul nu trebuie să uite sesiuni (terminale) deschise.

De asemenea, mediile de stocare a salvărilor de siguranţă trebuie să fie şi ele stocate într-un loc închis, fără posibilitate de acces (e.g. un seif).

Sistemul poate fi protejat împotriva atacurilor de la consolă (cum ar fi repornirea sistemului în mod single) prin stabilirea unei parole de pornire în cadrul încărcătorului de boot.

Salvările de siguranţă

După cum menţionam şi în partea II, cap. 11, se recomandă salvarea periodică cel puţin a fişierelor importante şi, dacă este posibil, a întregului conţinut al sistemelor de fişiere:

• fişierele de configurare ale sistemului;• imaginea nucleului Linux, precum şi fişierul de configurare a acestuia

(.config);• fişierele-jurnal ale sistemului (directorul /var/iog, precum şi altele, dacă

este cazul);• mesajele utilizatorilor (/var/spool/maii);

Page 301: Administrarea Sistemelor Linux

240 ____________________ Administrarea şi configurarea sistemelor Linux ______________________

- bazele de date (/var/lib/pgsql, /var/lib/mysql CtC.);

- directoarele home ale utilizatorilor.

Drepturile de acces ale fişierelor importante

Trebuie acordată o atenţie sporită drepturilor de acces la fişierele importante:- fişiere de configurare ale diverselor servicii instalate în sistem. Astfel,

eventualele persoane răuvoitoare nu vor putea vizualiza sau modificaconfiguraţia acestor servicii (cum ar fi, de exemplu, configurările fire-wo//-ului). A se consulta Anexa 2 pentru drepturile de acces sigure aleacestor fişiere;

- fişiere-jurnal (/og-uri). Utilizatorii cu gânduri „necurate" nu trebuie să poatăconsulta ftşierele-jurnal ale sistemului, cu atât mai mult a le modifica. Dinaceste fişiere pot fi determinate părţile slabe ale unor servicii, putându-seapoi profita de acestea;

- executabile care nu trebuie să poată fi apelate de către utilizatorii obişnuiţi,precum şi alte fişiere importante (spre exemplu, baze de date PostgreSQL,MySQL etc.).

O atenţie deosebită trebuie acordată executabilelor cu atributul SUID (care au alt proprietar/grup decât cele ale utilizatorului care le apelează).

Execuţia daemonilor

Se recomandă ca numai daemonii utilizaţi curent să ruleze pe sistem. Mai mulţi daemoni înseamnă o încărcare mai mare a sistemului, precum şi un nivel de vulnerabilitate mai mare.

De asemenea, mare parte a daemonilor (care oferă diverse servicii) nu trebuie executaţi sub root, ci sub utilizatori speciali (de exemplu, daemonul HTTP rulează sub utilizatorul apache).

Scripturile CGI

Scripturile CGI nu trebuie executate ca root. Acestea trebuie plasate într-un singur director, în care nu se va permite accesul utilizatorilor, iar modificările asupra scripturilor trebuie monitorizate.

Porturile

Anumite servicii pot fi accesate prin reţea, de pe alte maşini. Pentru aceasta, ele aşteaptă conexiuni pe anumite porturi (e.g. serverul HTTP pe portul 80). De asemenea, există intefeţe grafice pentru configurare care primesc cereri pe un anumit port (e.g. samba-swat pe portul 901). Aceste porturi pot constitui puncte vulnerabile ale sistemului (datorită bug-urilor care pot exista în aceste programe), putând fi detectate de la distanţă cu ajutorul scanerelor.

Page 302: Administrarea Sistemelor Linux

Securizarea sistemului Linux 241

Aceste porturi trebuie protejate fie prin configurarea respectivelor servicii să accepte conexiuni doar de pe o anumită interfaţă de reţea, considerată sigură (e.g. reţeaua locală), fie prin configurarea unuifirewall care să nu permită accesarea din exterior a porturilor în cauză.

Accesul utilizatorului root în sistem

Accesul utilizatorului root în sistem este permis numai de pe consolele specificate în fişierul /etc/securetty. Nu se recomandă permiterea accesului cu root decât de pe consolele sistemului (tty*). Accesul de la distanţă (cu telnet sau ssh) poate fi făcut cu un utilizator obişnuit, iar apoi folosită comanda su.

Siguranţa parolelor

în primul rând, este recomandată utilizarea sistemului shadow şi criptarea parolelor prin MD5. De asemenea, fişierele /etc/shadow şi /etc/gshadow nu trebuie să poată fi accesate de către utilizatori, trebuind să aibă următoarele drepturi de acces:

/etc/passwd 644 /etc/group 644 /etc/shadow . 400 /etc/gshadow 400

în al doilea rând, o cerinţă importantă pentru păstrarea securităţii sistemului este ca toţi utilizatorii să aibă parolă. Este obligatorie, de asemenea, stabilirea unei parole iniţiale pentru utilizator, care de preferinţă va trebui să fie schimbată de către acesta la prima intrare în sistem.

în al treilea rând, pot fi modificate regulile pentru stabilirea parolelor (lungimea, complexitatea minimă, timpul de expirare) prin intermediul PAM. Acestea trebuie să fie cât mai stricte, iar utilizatorii trebuie obligaţi să şi le schimbe periodic. Verificarea după dicţionar (/usr/share/dict) a parolelor este de asemenea importantă, pentru ca probabilitatea de a fi determinate cu un spărgător de parole să fie cât mai mică. Se recomandă folosirea periodică a unui spărgător de parole pentru a verifica siguranţa acestora. A se consulta şi lista de reguli de stabilire a parolelor din partea II, cap. 6, care trebuie comunicate utilizatorilor de către administratorul sistemului.

Utilizatorii

Lista utilizatorilor din sistem (/etc/passwd) trebuie verificată periodic, iar conturile neutilizate şterse. De asemenea, trebuie gestionaţi cu atenţie utilizatorii speciali, cum ar fi cei pentru acces PPP. Şi parolele acestora trebuie să urmeze regulile enumerate mai sus şi nu trebuie să aibă interpretor de comenzi.

Page 303: Administrarea Sistemelor Linux

242 Administrarea şi configurarea sistemelor Linux

Accesul de la distanţă

Chiar dacă telnet se dovedeşte a fi o metodă relativ sigură de accesare de la distanţă a maşinii, se recomandă utilizarea serviciului SSH, care foloseşte un sistem sigur, bazat pe chei de criptare. Aceasta previne scanarea reţelei (telnet trimite informaţiile în clar prin reţea, inclusiv parola utilizatorului) şi interceptarea sesiunii telnet.

De asemenea, pentru transferul de fişiere între maşini este bine să se utilizeze tot SSH, în speţă programul sftp, în loc de FTP, din aceleaşi motive enumerate mai sus.

Trebuie evitată utilizarea sistemelor de acces privilegiate, dacă aceasta este posibil:

- acces privilegiat la nivel de maşină - permite acordarea de încredereanumitor maşini, de pe care utilizatorii se pot conecta fără ca parola să fiesolicitată, şi se realizează prin intermediul fişierului /etc/hosts.equiv. Nueste indicată folosirea acestui mod de acces datorită riscurilor la care maşinaeste expusă. De asemenea, acest fişier nu trebuie să conţină în nici un caz olinie conţinând doar caracterul „+", acesta acordând accesul privilegiatoricărui calculator;

- acces privilegiat la nivel de utilizator - permite acordarea de încredereanumitor utilizatori, conectaţi de pe anumite maşini, şi se realizează prinintermediul fişierului .rhosts, plasat în directorul home a utilizatorului.Accesul privilegiat nu trebuie utilizat niciodată pentru root, pentru caretrebuie întotdeauna solicitată o parolă, în directorul utilizatorului root nutrebuie să existe fişierul .rhosts! Nu este indicată nici utilizarea acestuimod de acces privilegiat, fiindcă expune sistemul la riscuri suplimentare.Administratorul va trebui să monitorizeze periodic existenţa acestui fişier îndirectoarele utilizatorilor.

Firewall-uri

\Jnfire\vall este un sistem de filtrare a pachetelor de date care intră în / ies din calculator.

Maşinile legate direct la Internet trebuie să aibă configurat un firewall pentru a bloca accesul din exterior la serviciile care se doresc a fi protejate, acolo unde se poate. Trebuie avut în vedere însă faptul că nu există firewall perfect, precum şi faptul că un firewall nu previne atacurile din interiorul reţelei sau de pe sistemul local. Modul de configurare a unui firewall este prezentat în capitolul următor.

Scanerele

Recomandăm folosirea periodică a unui program de scanare, pentru a depista eventualele puncte slabe ale securităţii sistemului. Un scaner este un program care „atacă" porturile şi serviciile TCP/IP şi înregistrează răspunsul venit de la ţintă.

Page 304: Administrarea Sistemelor Linux

Securizarea sistemului Linux 243

Dacă s-a configurat unfîrewall, scanarea trebuie, evident, efectuată de pe o maşină din afara reţelei locale.

Scanerele care pot fi folosite sunt nmap (existent în distribuţia Red Hat), NSS (Network Security Scanner) sau SATAN. Vezi Anexa 4 pentru a afla locaţiile de unde pot fi obţinute aceste programe.

Bug-uri în programe

Programele pot conţine bug-uri (adică erori de proiectare, de programare etc.). Pot conţine bug-uri atât nucleul, cât şi daemonii, precum şi toate celelalte programe de pe calculator. Bug-urile pot fi puncte slabe care pot constitui ţinte pentru atacurile cracker-ilor.

Recomandăm administratorului de sistem abonarea la liste de discuţii privind securitatea (e.g. bugtraq) şi urmărirea apariţiei de actualizări ale pachetelor de programe.

Serviciile oferite de către sistem

Această secţiune analizează modul de protecţie a fiecărui serviciu de reţea oferit de sistem.

SSH- SSH poate fi configurat să primească conexiuni doar de pe o anumită

interfaţă de reţea, prin intermediul parametrului ListenAddress;- dacă nu se doreşte posibilitatea de conectare din exterior la maşină, portul

SSH (de obicei 22) trebuie protejat în cadrul firewall-u\u\;- utilizatorii care se pot conecta prin SSH pot fi stabiliţi utilizând directiva

AllowUsers;- trebuie evitată utilizarea autentificarea prin .rhosts;- parametrii RSAAuthentication şi PasswordAuthentication trebuie să aibă

valoarea Yes;- parametrul PermitRootLogin trebuie setat pe No.

telnet Este bine ca serviciul telnet să fie dezactivat sau, dacă se doreşte totuşi utilizarea acestuia în cadrul reţelei locale, să fie protejat în cadrul firewall-u\u\.

FTP- nici folosirea serviciului FTP nu este indicată, decât dacă trebuie oferit

serviciul de FTP anonim;- poate fi limitat să primească cereri doar de pe o anumită interfaţă de

reţea, prin intermediul opţiunii daemonaddress;- trebuie acordată atenţie sporită definirii de clase de utilizatori.

NFS Trebuie stabilită cu atenţie lista de maşini care pot monta sisteme defişiere, în /etc/exports.

Page 305: Administrarea Sistemelor Linux

244 Administrarea şi configurarea sistemelor Linux

HTTP- porturile şi interfeţele de reţea pe care serverul HTTP acceptă conexiuni

pot fi configurate utilizând opţiunile BindAddress, Port şi Listen;- trebuie acordată o atenţie sporită fişierelor sau directoarelor care nu

trebuie să poată fi accesate de către toţi utilizatorii.sendmail

- opţiunile accept_unqualified_senders şi accept_unresolvable_domains nutrebuie să fie setate, pentru a oferi protecţie împotriva atacurilor de tipspam;

- portul, respectiv interfaţa de reţea de pe care sendmail va primi cereri potfi configurate cu ajutorul directivei DAEMON_OPTIONS.

Samba- maşinile care pot accesa resursele SMB pot fi stabilite prin intermediul

directivei hosts allow;- interfeţele de reţea pe care sunt acceptate cereri SMB pot fi stabilite cu

ajutorul directivelor bind interfaces only şi interfaces;- nu trebuie activat sistemul de autentificare tip .rhosts (opţiunea use

rhosts trebuie să fie No);- trebuie acordată atenţia cuvenită configurării utilizatorilor.

PostgreSQL, MySQL- dacă nu sunt utilizate decât local, trebuie dezactivate conexiunile din

exterior;- dacă sunt permise conexiuni din exterior, lista de maşini de pe care

acestea sunt acceptate trebuie configurată cu atenţie;- trebuie acordată o atenţie sporită configurării utilizatorilor.

xfs- dacă serverul de fonturi xfs este utilizat doar local, directiva no-listen

trebuie să aibă valoarea tcp;- portul pe care xfs acceptă conexiuni (de regulă 7100) trebuie protejat în

cadrul firewall-u\u\.syslog

- dacă syslog nu trebuie să jurnalizeze mesaje primite de la alte maşini,trebuie eliminat parametrul -r;

- în cazul în care se doreşte jurnalizarea mesajelor de pe alte maşini,trebuie configurat fîrewall-u\ pentru a limita ce maşini au acces laserviciile syslog (portul 514, utilizând protocolul UDP).

cron Conţinutul scripturilor, precum şi utilizatorii sub care rulează acestea trebuie verificate cu atenţie.

Page 306: Administrarea Sistemelor Linux

2. Configurarea unui firewall: iptables

Un firewall este un sistem folosit pentru prevenirea accesului din exterior în reţeaua internă. Acest sistem separă o reţea protejată de o reţea neprotejată, Internetul. Firewall-urile implementează reguli care filtrează atât pachetele de date recepţionate, cât şi cele trimise de către maşină. Astfel, sistemul sau reţeaua locală vor fi supuse unor riscuri mai mici, deoarece numai tipurile de pachete (utilizate de anumite protocoale sau servicii) dorite pot trece prin firewall.

Nucleul Linux oferă posibilitatea de a filtra sau redirecţiona pachetele de date, printr-un sistem denumit iptables. De asemenea, există posibilitatea de a modifica informaţiile despre sursa sau destinaţia pachetelor, procedură denumită NAT (Network Address Translation). Una dintre aplicaţiile sistemului NAT este posibilitatea deghizării pachetelor (masquerading). Deghizarea înseamnă că pachetele trimise de către sistemele aflate în reţea, care au ca gateway o anumită maşină, să pară trimise de maşina respectivă. Cu alte cuvinte, maşina pe post de firewall retrimite pachetele venite din reţea către exterior, făcând să pară că provin tot de la ea. Acest sistem este foarte util atunci când există o maşină care realizează legătura la Internet, o singură adresă IP alocată, şi mai multe calculatoare în reţea care au definite maşina respectivă ca gateway.

Nucleul defineşte trei tabele implicite de lanţuri prin care trec informaţiile, şi anume INPUT, OUTPUT şi FORWARD. Atunci când un pachet intră în sistem printr-o interfaţă de reţea, nucleul decide dacă pachetul este destinat maşinii locale (lanţul INPUT) sau către altă maşină (lanţul FORWARD). într-un mod similar, pachetele care pleacă dinspre maşina locală trec prin lanţul OUTPUT. Fiecare lanţ conţine mai multe reguli, care vor fi aplicate pachetelor de date care le tranzitează, în general, regulile identifică adresa de provenienţă şi adresa-destinaţie a pachetelor, precum şi protocolul şi serviciul asociate.

Atunci când un pachet corespunde unei reguli, asupra acestuia se va aplica o anumită acţiune - cu alte cuvinte, el are o anumită ţintă (target). Dacă o regulă specifică ţinta ACCEPT, pachetul nu mai este verificat cu celelalte reguli, ci este direcţional către destinaţie. Dacă regula specifică ţinta DROP, pachetul este „aruncat" - cu alte cuvinte, nu i se permite să ajungă la destinaţie -, netrimiţând nimic maşinii care 1-a expediat. Dacă regula specifică ţinta REJECT, pachetului nu i se permite să ajungă la destinaţie, însă este trimis un pachet de eroare expeditorului.

Page 307: Administrarea Sistemelor Linux

246 Administrarea şi configurarea sistemelor Linux

Nucleul Linux versiunea 2.4 implementează sistemul numit iptables, dar oferă suport şi pentru sistemul ipchains, utilizat în versiunea 2.2, precum şi pentru ipfwadm, utilizat în versiunea 2.0.

Pentru a include sistemul iptables în nucleu, acesta trebuie compilat cu opţiunile:

- Networking options- Network packet fiitering (replaces ipchains)

IP: Netfilter ConfigurationConnection tracking (required for masq/NAT)

- IP tables supportPacket fiiteringFull NAT

- Packet mangling- LOG target support

De asemenea, trebuie instalat pachetul iptables. Programul iptables serveşte la manipularea lanţurilor şi regulilor.

Regulile pot fi gestionate prin intermediul liniei de comandă, dar varianta recomandată este salvarea acestor reguli într-un fişier script, de regulă/etc/sysconfig/iptables.

Programul are următoarea sintaxă:

iptables -[ ADC ] lanţ regulă [ opţiuni }iptables - [ RI ] lanţ număr__regulă regulă [ opţiuni ]iptables -D lanţ număr_regulă [ opţiuni ]iptables -[ LFZ ] [ canal } [ opţiuni ]iptables -[ NX ] lanţiptables -P lanţ ţintă [ opţiuni ]iptables -E nume_vechi_lanţ nume_nou_lanţ

Sunt suportate următoarele opţiuni:

Comenzi

-A adaugă regula specificată la sfârşitul tabelei pentru lanţul specificat;-D şterge o anumită regulă (specificată prin numărul său) din lanţul

specificat;-E redenumeşte lanţul specificat;-F şterge toate regulile din lanţul specificat;-7 inserează o regulă în lanţ într-o anumită poziţie;-L afişează toate regulile din lanţul specificat;-N creează un nou lanţ, având numele specificat;-P stabileşte politica implicită pentru un anumit lanţ;-X şterge un anumit lanţ.

Page 308: Administrarea Sistemelor Linux

Securizarea sistemului Linux 247

Parametri

-t specifică tabela la care se va referi regula. Există trei tabele:- filter. este tabela implicită şi conţine lanţelurile INPUT, OUTPUT

şi FORWARD;-. nat: această tabelă este consultată atunci când se întâlneşte un

pachet care creează o nouă conexiune. Conţine următoarele lanţuri: PREROUTING (verifică pachetele atunci când sunt recepţionate), OUTPUT (verifică pachetele generate de maşina locală înainte de rutare) şi POSTROUTING (verifică pachetele la momentul ieşirii din maşină);

- mangle: este utilizată pentru verificarea specializată a pachetelor.Conţine două lanţuri predefinite: PREROUTING (verificăpachetele recepţionate înainte de rutare) şi OUTPUT (verificăpachetele generate de maşina locală înainte de rutare);

-d stabileşte adresa-destinaţie a pachetului. Poate fi un nume de maşină, adresă IP, adresă/mască de reţea sau adresa unei reţele;

-/' stabileşte interfaţa de reţea de intrare (se aplică doar lanţurilor INPUT sau FORWARD). In faţa numelui interfeţei poate fi folosit caracterul „i", însemnând că regula nu se va aplica la interfaţa specificată. Poate fi utilizat şi caracterul wildcard „+";

-j specifică ţinta pachetului dacă regula se potriveşte;-o specifică interfaţa de reţea de ieşire (se aplică doar lanţului OUTPUT sau

FORWARD);-p setează protocolul pentru regulă. Poate fi icmp, tcp, udp sau all (orice

protocol);-s stabileşte adresa-sursă a pachetului. Are aceeaşi sintaxă ca la -d;—aport setează portul-destinaţie pentru pachet. Poate fi utilizat fie un nume de

serviciu (e.g. http, smtp), conform /etc/services, fie un număr de port, fie un interval de porturi (e.g. 2000:2300). De asemenea, poate fi utilizat caracterul „i" în faţa portului, pentru a specifica faptul că regula nu se va aplica la portul respectiv;

—sport setează portul-sursă pentru pachet. Foloseşte aceeaşi sintaxă ca la -dport;

—syn determină ca regula să facă referire doar la pachetele TCP pentru iniţierea conexiunii, nu şi la pachetele de date. Este valabilă doar pentru protocolul TCP. Dacă este menţionat şi caracterul „i", regula va face referire la pachetele de date care nu folosesc la iniţierea conexiunii.

Ţinte

Ţinta poate fi numele unui lanţ conţinând reguli ce vor fi aplicate suplimentar pachetelor sau una dintre valorile:

Page 309: Administrarea Sistemelor Linux

248 Administrarea şi configurarea sistemelor Linux

Page 310: Administrarea Sistemelor Linux

ACCEPT

DROP

QUEUE

RETURN

LOG

REJECT

SNAT

pachetul nu mai este verificat cu celelalte reguli, ci este direcţionalcătre destinaţie;pachetul este „aruncat" - cu alte cuvinte, nu i se permite să ajungăla destinaţie -, netrimiţând vreun răspuns maşinii care 1-a expediat;pachetul este introdus într-o coadă, de unde va fi preluat de alteprograme pentru prelucrare;opreşte verificarea regulilor din lanţul curent. Dacă regula a fostapelată dintr-un alt lanţ, pachetul este returnat la regula de unde afost efectuată trimiterea, în caz contrar, va fi utilizată ţintaimplicită pentru lanţ curent;jurnalizează pachetele care se potrivesc cu această regulă, prinintermediul sistemului syslog;pachetului nu i se permite să ajungă la destinaţie, însă este trimisun pachet de eroare expeditorului;este valabilă doar în tabela nat, în lanţul POSTROUTING.Specifică faptul că adresa expeditorului pachetului trebuiemodificată. Acceptă o singură opţiune:

Page 311: Administrarea Sistemelor Linux

— to-source adresă_IP[ -adresă_IP :port-port]

Page 312: Administrarea Sistemelor Linux

DNAT care specifică adresa IP modificată sau un interval de adrese, respectiv un interval de porturi;este valabilă doar în tabela nat, în lanţurile PREROUTING şi OUTPUT, precum şi în cele apelate din aceste două lanţuri. Specifică faptul că adresa-destinaţie a pachetului trebuie modificată. Acceptă o singură opţiune:

— to-destination adresă_IP[ -adresă_IP ] [ :port-port]

Page 313: Administrarea Sistemelor Linux

care specifică adresa IP modificată sau un interval de adrese, respectiv un interval de porturi;

MASQUERADE este valabilă doar în tabela nat, în lanţurile POSTROUTING. Se utilizează doar pentru adrese IP atribuite dinamic; dacă adresa este statică, se utilizează lanţul SNAT. Acceptă o singură opţiune:

--to-ports port [-port]

care specifică un port-destinaţie sau un interval de porturi;

REDIRECT este valabilă doar în tabela nat, în lanţurile PREROUTING şi OUTPUT, precum şi în cele apelate din aceste două lanţuri. Modifică adresa IP destinaţie pentru a trimite pachetul către propria maşină (implicit 127.0.0.1). Acceptă o singură opţiune:

Page 314: Administrarea Sistemelor Linux

Securizarea sistemului Linux 249

--to-ports port[-port]

care specifică un port-destinaţie sau un interval de porturi.

Vom exemplifica în continuare configurarea unui firewall uzual, pentru o maşină care realizează legătura Internet dintr-o companie privată:

# admite sesiunile SSH efectuate de pe alte maşiniiptables -A INPUT -p tcp —dport ssh --syn -j ACCEPT# admite receptionarea de mesaje de pe alte maşiniiptables -A INPUT -p tcp —dport smtp --syn -j ACCEPT# admite cereri HTTP efectuate de pe alte maşiniiptables -A INPUT -p tcp —dport http —syn -j ACCEPT# acceptă cererile DNS (maşina este şi server DNS)iptables -A INPUT -p tcp --sport domain -j ACCEPTiptables -A INPUT -p udp —sport domain -j ACCEPT# acceptă orice fel de pachet provenit de pe interfaţa Ioiptables -A INPUT -i Io -j ACCEPT# de asemenea, acceptă pachetele provenite de pe interfaţa ethOiptables -A INPUT -i ethO -j ACCEPT# respinge toate celelalte tipuri de pacheteiptables -A INPUT -p tcp —syn -j REJECTiptables -A INPUT -p udp -j REJECT

în cele ce urmează vom prezenta configurarea unei maşini care serveşte ca gateway pentru o reţea de calculatoare care nu au adrese IP valide, prin sistemul de deghizare. Adresa 192.78.124.135 reprezintă adresa IP a interfeţei pppO (legătura dial-up la Internet), iar 10.0.0.0 reprezintă adresa reţelei locale de calculatoare (adrese IP invalide):

iptables -A POSTROUTING -t nat -s 200.0.0.0/255.255.255.0 -j SNAT -to-source 192.78.124.135I

Page 315: Administrarea Sistemelor Linux

3. Monitorizarea sistemului

Unul dintre punctele forte ale sistemelor UNIX (în speţă Linux) este posibilitatea de jurnalizare a evenimentelor. Aceste fişiere de jurnalizare trebuie analizate cât mai des posibil, de preferinţă zilnic. Jurnalele care trebuie verificate de către administratorul de sistem sunt:

/var/log/httpd/access_logjurnalul accesări lor HTTP

/var/log/httpd/error_logjurnalul erorilor generate de serviciul Apache

/var/log/samba/jurnalele Samba

/var/log/cronjurnalul serviciului cron

/var/log/mailiogjurnalul daemonului sendmail

/var/log/messagesalte mesaje generate de sistem, în special de către nucleu

/var/log/mysqld.logjurnalul MySQL

/var/log/pgsql

jurnalul PostgreSQL/var/log/secure

jurnalul accesărilor sistemului prin telnet şi SSH /var/iog/wtmp (prin intermediul comenzii last)/var/log/xferlog

jurnalul accesărilor FTP.

Page 316: Administrarea Sistemelor Linux

BIBLIOGRAFIE

Partea I. Instalarea sistemului Linux

1. ***, The Official Red Hat Linux x86lnstallation Guide, Red Hat Inc., Durham, 2001.2. ***, The Offlcial Red Hal Linux Reference Guide, Red Hat Inc., Durham, 2001.3. Steve Oualline, Descoperiţi sistemul Linux, Teora, Bucureşti, 1999.4. Naba Barkakati, Totul despre Red Hat Linux, Teora, Bucureşti. 2000.

Partea a II-a. Configurări de bază ale sistemului

1. ***, The Official Red Hat Linux Reference Guide, Red Hat Inc., Durham, 2001.2. ***, The Official Red Hat Linux Customization Guide, Red Hat Inc., Durham, 2001.3. ***, The Official Red Hat Linux Getting Started Guide, Red Hat Inc.. Durham, 2001.4. .flîleen Frisch, Essential System Administration, O'Reilly & Associates, Inc.,

Sebastopol, 1995.5. George Eckel, Chris Hare, Building a Linux Internet Server, New Riders Publishing,

Indianapolis, 1995.6. Grace Todino, John Strâng, Jerry Peek, învăţarea sistemului de operare UNIX, O'Reilly

& Associates, Inc., Sebastopol, 1993.7. Naba Barkakati, Totul despre Red Hat Linux, Teora, Bucureşti, 2000.8. Sabin Buraga, Victor Tarhon-Onu, Ştefan Tanasă, Programare Web în bash şi Perl,

Polirom, Iaşi, 2002.9. ***, FHSStandard: http : //www. pathname . com/fhs .10.***,XinetdHome Page', http: //www. xinetd. org.

Partea a IlI-a. Setări avansate ale sistemului

1. ***, The Official Red Hat Linux Reference Guide, Red Hat Inc., Durham, 2001.1. Olaf Kirch, Terry Dawson, Linux Network Administrator's Guide, 2"d Edition, O'Reilly

& Associates, Inc., 2000: http: //www. oreilly. corn/ catalog/linag2 .2. Gerhard Mourani, Securing and Optimizing Linux: RedHat Edition, OpenDocs

Publishing, 2000: http: / /www. openna. corn.2. Patrick A. Powell, LPRng-HOWTO, 2000: http: //www. Iprng. corn.3. ***, PostgreSQL Administrator's Guide, PostgreSQL Global Development Group,

2001: h t tp : / /www. postgresql .org .4. ***, MySQL Reference Manual, MySQL AB, 2001: http://www.mysql.com/

documentat ion.5. ***, Apache HTTP Server Version 1.3 Documentation, Apache HTTP Server

Documentation Project: http: //httpd. apache . org/docs .6. Andrew G. Morgan, The Linux-PAM System Administrator's Guide, 2001:

http://linux.kernel.org/morgan

Page 317: Administrarea Sistemelor Linux

252 Administrarea şi configurarea sistemelor Linux

Partea a IV-a. Securizarea sistemului Linux

1. ***, The Official Red Hat Linux Reference Guide, Red Hat Inc., Durham, 2001.2. ***, Securitatea în Internet, Teora, Bucureşti, 1999.3. Lars Klander, Anti-hacker. Ghidul securităţii reţelelor de calculatoare, ALL

Educaţional, Bucureşti, 1998.4. Sabin Corneliu Buraga, Tehnologii Web, Matrix Rom, Bucureşti, 2001.