mp99
Numele forumului cat si aceasta descriere pot fi modificate accesind meniul ADMIN -> OPTIUNI
Nou pe simpatie:
Anna281 Profile
Femeie
24 ani
Iasi
cauta Barbat
26 - 45 ani
mp99InregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
mp99 / Aici se pot adauga subiecte despre Linux Unix FreeBSD / Securitate Pagini: 1  
#1
carter2408
Administrator
Postari: 36
In ultimele articole am aruncat o privire asupra procesului de creare a utilizatorilor si politicilor utilizatorilor. In acest articol, asi dori sa aruncam o privire asupra procesului de creare a politicii parolelor in FreeBSD.
Pentru ca un utilizator sa acceseze un sistem FreeBSD, ei trebuie sa dispuna de un cont de utilizator si sa cunoasca parola asociata acestui cont. Una din responsabilitatile administratorilor de sistem este sa creeze o politica a parolelor, corespunzatoare utilizatorilor din retea. Cind se creaza politica de parole, trebuie de luat in consideratie urmatoarele:
Care va fi lungimea minima a parolelor? De exemplu, sunt parolele vide (o idee rea) permise, sau parolele trebuie sa aiba o lungime minima?
Care caractere sunt permise in parole? De exemplu, poate o parola sa contina numai litere mici, sau trebuie sa fie o combinatie dintre litere mici, mari, numere si simboluri?
Care este data expirarii parolelor, adica cit de des trebuie sa fie fortati utilizatori sa-si schimbe parolele?
Doriti ca sistemul sa duca evidenta istoriei parolelor? Aceasta inseamna ca atunci cind un utilizator isi schimba parola, ei nu o pot schimba pe cea veche sau pe o parola pe care au utilizato de acum. Aceasta uneori se mai numeste unicitatea parolelor.
Doriti sa utilizati blocarea conturilor, daca da, dupa cite incercari esuate? Blocarea inseamna ca un utilizator nu va primi prompt-ul de login daca a gresit parola de un numar oarecare de incercari pe parcursul unei incercari de conectare.
De multe ori, administratorii vor avea o politica de parole pentru utilizatori simpli si una separata pentru utilizatorul root. De exemplu, este des intilnit faptul ca sunt necesare 6 caractere pentru parolelor utilizator simpli, dar sunte necesare 11 caractere pentru parola utilizatorului root. Puteti decide ca este dificult sa fortati utilizatorii sa utilizeze parole care necesita caractere mici, mari si simboluri, dar doresc sa mentina aceasta ca o cerinta pentru parola root-ului pentru a fi mult mai greu de o ghicit.
Sunt si elemente aditionale cind se creaza o politica de parole. Cind un cont de utilizator este creat, parola de asemenea este creata de administrator. Este recomandat ca utilizatorii sa schimbe imediat parolele dupa ce s-au conectat pentru prima data; aceasta va asigura ca nimeni nu cunoaste parola decit utilizatorul. Utilizatorii trebuie sa nu ofere nimarui parolele lor; retineti, chiar daca utilizatorul uita parola lui sau pleaca, dar este necesar acces la resursele lui, utilizatorul root are posibilitatea sa schimbe parola utilizatorului.
Atit timp cit utilizatorii sunt responsabili pentru crearea propriilor lor parole, este responsabilitatea administratorului sa educe utilizatorii ca ei sa faca deosebirea intre intre o parola "buna" si una "rea". Pentru oameni, este mai usor sa retina parolele care sunt identice cu numele de utilizator, numele real, porecla, numele cainelui etc. Dar din pacate, acestea toate sunt exemple de parole rele. Multe articole au fost scrise pentru a oferi exemple atit de parole bune si rele si care este necesitatea crearii parolelor bune. Aci se gaseste un astfel de articol.
Sa presupunem ca dorim sa implementam urmatoarea politica a parolelor:
Userii simpli trebuie sa aiba parola de minim 8 caractere.
Utilizatorul root trebuie sa aiba parola de minim 11 caractere.
Toti utilizatorii trebuie sa-si schimbe parolele la fiecare 30 de zile.
Utilizatorii trebuie sa aiba cel putin un simbol in parola lor.
Blocarea trebuie sa aiba loc dupa 5 incercari esuate.
Istoria parolelor nu trebuie sa permita utilizatorilor reutilizarea ultimilor 10 parole.
Utilizatorilor nu se permite sa utilizeze numele de utilizator in calitate de parola.
Unele din aceste masuri pot fi implementate prin editarea fisierului /etc/login.conf, iar altele necesita instalarea utilitelor sau utilizarea unui script. Sa incepem prin a vedea care parti din politica le putem implimenta prin intermediul fisierului /etc/login.conf. Deoarece acesta este un fisier nou pentru noi sa incepem prin colectarea informatiei despre el:
file /etc/login.conf  /etc/login.conf: C++ program text    ls -l /etc/login.conf  -rw-r--r--  1 root  wheel  6285 Nov 20 07:03 /etc/login.conf 
Seamana ca acest fisier este textul unui program in C++ si numai root-ul poate sa efectuieze schimbari in el.
whatis login.conf  login.conf(5) - login class capability database 
Dupa cum vedeti, /etc/login.conf este o baza de date; deci si sintaxa este un pic mai complicata. De asemenea, in calitate de baza de date, nu este de ajuns ca root-ul sa editeze acest fisier intr-un editor de texte. Daca au fost efectuate schimbari in acest fisier, baza de date trebuie innoita utilizind utilita cap_mkdb:
whatis cap_mkdb  cap_mkdb(1) - create capability database 
Sa aruncam o privire asupra sintaxei utilizata de aceasta baza de date. Deoarece este o baza de date cu clase, fiecare inregistrare contine informatii pentru o clasa. Bucatile de informatii sunt numite cimpuri, fiecare cimp contine o valoare si toate cimpurile sunt separate prin punct si virgula (. Pentru a face fisierul un pic mai usor de citit si redactat, fiecare cimp se afla pe un rind; dar, deoarece toate cimpurile sunt grupate logic pentru fiecare inregistrare, un slash (/) este utilizat pentru a indica ca mai exista informatie corespunzatoare inregistrarii in urmatorul rind. Deci, sintaxa fiecarei inregistrari se termina ca in exemplul de mai jos:
classname:\   :field_1=value:\   :field_2=value:\   :last_field=value: 
Notati ca fiecare cimp este incadrat intre doua puncte ( si ultimul cimp nu are slash (/), deoarece este ultima parte din inregistrare.
Sistemul Dvs. FreeBSD vine cu citeva clase predefinite, si fiecare clasa are cimpuri predefinite in baza de date /etc/login.conf. Prima clasa, default, este utilizata de toti utilizatori, cu conditia ca nu iati atasat altei clase cind le-ati creat contul. A doua clasa, root, este utilizata e conturile utilizatorilor care au UID-ul 0.
O alte clase predefinite sunt, xuser, staff, daemon, news si dialer. Fiecare din aceste inregistrari are un cimp care este acelasi pentru toate aceste inregistrari. Sa aruncam o privire asupra inregistrarii pentru xuser:
ls /etc/login.conf    user:\   :tc=default: 
Notati ca deoarece aici este numai un singur cimp, el nu se termina cu slash. tc= indica bazei de date sa substituie cimpul indicat in clasa default. Aceasta este, predefinit, daca includeti un utilizator in clasa "xuser", ei vor primi aceasti informatie ca si un utilizator din clasa "default". Daca doriti sa includeti utilizatorii in clase diferite, veti dori mai intii sa schimbati informatia disponibila pentru fiecare clasa.
Deci, ce tip de informatie este atasa fiecarui cimp? Sunt multe cimpuri predefinite si ele sunt impartite in patru tipuri de functii oferite de catre baza de date: limitarea resurselor, mediul, autentificarea si limitarea conturilor. Urmatorul tabel arata cimpurile posibile:
Numele  Tip  Note/Descrierea 
Limitarea resurselor 
cputime  time  Limita de utilizare a CPU-ului. 
filesize  size  Limita maxima a marimii fisierului. 
datasize  size  Limita maxima a marimii datelor. 
stacksize  size  Limita maxima a marimii stivei. 
coredumpsize  size  Limita maxima a "coredump"-ului. 
memoryuse  size  Limita marimii maxime a utilizarii "core memory". 
memorylocked  size  Limita maxima a marimii "locked-in core memory". 
maxproc  number  Numarul maxim de procese. 
openfiles  number  Numarul maxim de fisiere deschise per proces. 
sbsize  size  Marimea maxima permisa pentru socketbuffer. 
Mediu
charset  string  Seteaza variabila de mediu $MM_CHARSET la o valoare specificata. 
hushlogin  bool (false)  Identic cu existenta fisierului ~/.hushlogin. 
ignorenologin  bool (false)  Login-ul nu este interzis de nologin. 
lang  string  Seteaza variabila de mediu $LANG la o valoare specificata. 
manpath  path  Calea predefinita de cautare a manpages. 
nologin  file  Daca fisierul exista, el va fi aratat dupa care sesiunea va finisa. 
path  path (/bin /usr/bin)  Calea predefinita de cautare. 
priority  number  Nivelul de prioritate (nice) initial. 
requirehome  bool (false)  Este necesar un director home valid. 
setenv  list  O lista de variabile de mediu, separate prin ( si valorile corespunzatoare. 
shell  prog  Executarea unui shell diferite de cel specificat in fisierul password. Variabila de mediu SHELL va contine shell-ul specificat in fisierul password. 
term  string  Tipul predefinit de terminal, daca nu este posibil de determinat din alte surse. 
timezone  string  Valoare predefinita a variabilei de mediu $TZ. 
umask  number (022)  Umask initial. Trebuie intotdeauna sa se inceapa cu 0 (zero) pentru a se asigura interpretarea octala. 
welcome  file (/etc/motd)  Fisierul care contine mesajul de "welcome". 
Autentificare 
minpasswordlen  number (6)  Lungimea minima a parolei. 
passwd_format  string (md5)  Formatul criptarii pe care parole noi sau schimbate trebuie sa-l utilizeze. Valorile acceptate sunt "md5" si "des". Clientii NIS care utilizeaza un NIS server non-FreeBSD probabil trebuie sa utilizeze "des". 
mixpasswordcase  bool (true)  Daca passwd(1) va atentiona utilizatorul ca utilizeaza o parola formata numai din minuscule. 
copyright  file  Fisierul care contine informatie copyright aditionala. 
host.allow  list  Lista wildcard-urilor masinilor indepartate pe care utilizatorii din clasa le pot accesa. 
host.deny  list  Lista wildcard-urilor masinilor indepartate pe care utilizatorii din clasa nu le pot accesa. 
times.allow  list  Lista perioadelor de timp cind conectarile sunt permise. 
times.deny  list  Lista perioadelor de timp cind conectarile sunt permise. 
ttys.allow  list  Lista tty-urilor si ttygroup-urilor pe care utilizatorii din clasa le pot utiliza pentru acces. 
ttys.deny  list  Lista tty-urilor si ttygroup-urilor pe care utilizatorii din clasa nu le pot utiliza pentru acces. 
Limitele conturilor 
accounted  bool (false)  Initializeaza inregistrarea timpului sesiunilor utilizatorilor din grupa. 
autodelete  time  Timpul dupa expirare cind contul se autodistruge. 
bootfull  bool (false)  Initializeaza strategia "boot only if ttygroup is full" cind se termina sesiunile. 
daytime  time  Durata maxima de conectare pe zi. 
expireperiod  time  Time for expiry allocation. 
graceexpire  time  Grace days for expired account. 
gracetime  time  Additional grace login time allowed. 
host.accounted  list  List of remote host wildcards from which login sessions will be accounted. 
host.exempt  list  List of remote host wildcards from which login session accounting is exempted. 
idletime  time  Maximum idle time before logout. 
monthtime  time  Durata maxima de conectare pe luna. 
passwordtime  time  Utilizat de passwd(1) pentru a seta urmatoarea data de expirare a parolei. 
refreshtime  time  New time allowed on account refresh. 
refreshperiod  str  How often account time is refreshed. 
sessiontime  time  Maximum login time per session. 
sessionlimit  number  Maximum number of concurrent login sessions on ttys in any group. 
ttys.accounted  list  List of ttys and ttygroups for which login accounting is active. 
ttys.exempt  list  List of ttys and ttygroups for which login accounting is exempt. 
warnexpire  time  Advance notice for pending account expiry. 
warnpassword  time  Advance notice for pending password expiry. 
warntime  time  Advance notice for pending out-of-time. 
weektime  time  Durata maxima de conectari pe saptamina. 
unii termeni din tabel nu au fost tradusi in romana
Doua din aceste valori vor fi utile pentru noi in implementarea politicii de parole create de noi: minpasswordlen si passwordtime. Deoarece politica noastra are doua lungimi de parola diferite pentru utilizatori si pentru root, va trebui sa editam abmbele inregistrari "default" si "root". Sa aruncam o privire asurpa inregistrarilor predefinite din ambele clase:
more /etc/login.conf    # login.conf - login class capabilities database.  # Remember to rebuild the database after each   # change to this file:  #cap_mkdb /etc/login.conf  # This file controls resource limits, accounting   # limits and default user environment settings.  # $FreeBSD: src/etc/login.conf,v 1.34.2.2   #   2000/06/02 20:53:55 alfred Exp $    default:\         :copyright=/etc/COPYRIGHT:\         :welcome=/etc/motd:\         :setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:\         :path=/sbin /bin /usr/sbin /usr/bin /usr/games             /usr/local/sbin /usr/local/bin /usr/X11R6/bin ~/bin:\         :nologin=/var/run/nologin:\         :cputime=unlimited:\         :datasize=unlimited:\         :stacksize=unlimited:\         :memorylocked=unlimited:\         :memoryuse=unlimited:\         :filesize=unlimited:\         :coredumpsize=unlimited:\         :openfiles=unlimited:\         :maxproc=unlimited:\         :sbsize=unlimited:\         :priority=0:\         :ignoretime@:\         :umask=022:    # Root can always login  root:\         :ignorenologin:\         :tc=default: 
Notati ca utilizatorul root contrine acea inregistrare tc=, ceea ce inseamna ca el va utiliza totul predefinit, fara a fi necesar sa scrieti totul din nou. Singura diferenta este ca "root" are setat valoarea ignorelogin. Daca noi vom citi descrierea acestei valori in tabel, vom vedea ca ea inseamna ca accesarea sistemului de catre root nu poate fi prevenita de un fisier nologin, deci root-ul intotdeauna poate sa acceseze sistemul.
Acum, devenit superuser si, utilizind editorul de text preferat, adaugati urmatoarele rinduri in /etc/default.conf:
Sub inregistrarea default, puneti un \ la sfirsitul liniei umask, dupa care adaugati inca doua rinduri, in final trebuie sa arate in felul urmator:
:umask=022:\  :minpasswordlen=8:\  :passwordtime=30d: 
Observati ca noi am setat lungimea minima a parolei la 8 caractere si am setat data de expirare a parolei dupa 30 de zile. Acum, duceti-va la inregistrarea root, si adaugati intre rindul ignorelogin si tc= in felul urmator:
root:\   :ignorenologin:\   :minpasswordlen=11:\   :tc=default: 
Notati ca noi nu am repetat schimbarile pe care le-am efectuat in inregistrarea default. Noi trebuie numai sa adaugam o inregistrare penru informatia care este diferita, o lungime mai mare pentru lungimea minima a parolei root-ului.
Inainte de a salva fisierul, testati de doua ori sintaxa modificarilor efectuate. Dupa ce ati salvat fisierul dat, innoiti baza de date prin rularea urmatoarei comennzi:
cap_mkdb /etc/login.conf 
Sa vedem daca schimbarile noastre functioneaza. Ma voi login-a ca utilizatorul "genesis" si voi incerca sa parola mea pe una compusa din opt caratere:
login: genisis  Password:    passwd  Changing local password for genisis.  Old password:  New password:  Please enter a password at least 8 characters in length.  New password:  Retype new password:  passwd: updating the database...  passwd: done 
Seamana ca politica noastra functioneaza bine, deoarece utilizatorul simplu "genesis" poate crea parole cu lungimea de cel putine opt caractere.
ACum sa testam politica noastra daca functioneaza pentru contul root-ului; din nou voi incerca sa schimb parola cu una mai scurta:
su  Password:    passwd root  Changing local password for root.  New password:  Please enter a password at least 11 characters in length.  New password:  Retype new password:  passwd: updating the database...  passwd: done 
Daca nu ati receptionat acelasi rezultat, testati din nou daca nu sunt erori in fisierul /etc/login.conf si daca nu ati uitat sa refaceti baza de date utilizind comanda cap_mkdb.
Noi am acoperit mult material pentru o zi; vom continua sa implementam politica noastra de parole in unul din articolele urmatoare.              


_______________________________________


 
   
Pagini: 1  
Mergi la