Personal tools

Difference between revisions of "Securitatea sistemului de operare (Slackware)"

From linux360

Jump to: navigation, search
 
Line 23: Line 23:
 
Contul root trebuie folosit numai pentru operaţii de administrare a sistemului. Dacă doriţi să rulaţi temporar o aplicaţie cu drepturi de root, există 2 variante pentru a evita logarea directă ca root:
 
Contul root trebuie folosit numai pentru operaţii de administrare a sistemului. Dacă doriţi să rulaţi temporar o aplicaţie cu drepturi de root, există 2 variante pentru a evita logarea directă ca root:
 
*logarea temporară cu drepturi de root, prin comanda <tt>su</tt>, urmată de introducerea parolei de root, apoi de comanda <tt>exit</tt>;
 
*logarea temporară cu drepturi de root, prin comanda <tt>su</tt>, urmată de introducerea parolei de root, apoi de comanda <tt>exit</tt>;
*rularea unei aplicaţii cu drepturi de root, cu ajutorul <code>sudo</code>. Configurarea acestuia este destul de complicată şi există tendinţa de a permite tuturor aplicaţiilor să ruleze cu drepturi de root, ceea ce nu este indicat. Pentru configurarea sudo, editaţi fişierul /etc/sudoers.
+
*rularea unei aplicaţii cu drepturi de root, cu ajutorul <tt>sudo</tt>. Configurarea acestuia este destul de complicată şi există tendinţa de a permite tuturor aplicaţiilor să ruleze cu drepturi de root, ceea ce nu este indicat. Pentru configurarea sudo, editaţi fişierul /etc/sudoers.
  
 
Exemplu bun:
 
Exemplu bun:

Revision as of 00:37, 2 December 2006

Acest articol tratează aspectele elementare legate de securitatea unei staţii de lucru, pe care a fost instalată distribuţia Slackwarwe Linux 11.0. Regulile de bază explicate aici pot fi aplicabile şi în cazul altor distribuţii Linux, cu specificarea că s-ar putea să existe diferenţe în denumirea sau calea către unele fişiere de configurare menţionate în articol.

Atenţionare!

Acest articol conţine referiri la aplicaţii care, rulate "împotriva" unui alt calculator, sunt sau pot fi interpretate ca fiind:

  • scanare a unei reţele de calculatoare, în vederea descoperirii structurii şi serviciilor oferite de serverele acesteia;
  • scanare de porturi, în vederea descoperirii de porturi deschise sau filtrate de un firewall, a serviciilor rulate şi a eventualelor breşe de securitate / vulnerabilităţi;
  • încercare de obţinere ilegală de drepturi de acces, prin compromiterea conturilor.

Nimic din acest articol nu poate şi nu trebuie interpretat ca o încurajare pentru astfel de acţiuni.

Stabilirea parolelor conturilor

Pentru stabilirea corectă a parolelor conturilor (root sau utilizator) trebuie să aveţi în vedere următoarele:

  • Parola trebuie să aibă o lungime de cel puţin 6 caractere şi trebuie să conţină litere mari şi mici, combinate cu caractere alfa-numerice;
  • Parola nu trebuie să conţină numele proprii, date calendaristice sau expresii "din dicţionar", de genul: "user", "mylove", "badboy", etc.;
  • Parola trebuie schimbată periodic:
    • prin stabilirea unei "Expiry date" în momentul creării contului prin comanda adduser
    • prin comanda passwd sau passwd <nume_utilizator>
  • Parola trebuie memorată, nu scrisă pe birou, pe tastatură, pe suportul de cafea, pe o bucăţică de hârtie lipită de monitor, etc.;
  • Parola nu trebuie comunicată nimănui, mai ales prin telefon, e-mail sau alte mijloace de comunicaţii, indiferent dacă sunt sau nu securizate.

Parolele sunt memorate în fişierele /etc/passwd şi /etc/shadow. Există multe mituri legate de aceste fişiere şi parola de root. Adevărul este că, în marea majoritate a cazurilor, conturile au fost compromise datorită nerespectării regulilor elementare enumerate mai sus.

Folosirea contului root

Contul root trebuie folosit numai pentru operaţii de administrare a sistemului. Dacă doriţi să rulaţi temporar o aplicaţie cu drepturi de root, există 2 variante pentru a evita logarea directă ca root:

  • logarea temporară cu drepturi de root, prin comanda su, urmată de introducerea parolei de root, apoi de comanda exit;
  • rularea unei aplicaţii cu drepturi de root, cu ajutorul sudo. Configurarea acestuia este destul de complicată şi există tendinţa de a permite tuturor aplicaţiilor să ruleze cu drepturi de root, ceea ce nu este indicat. Pentru configurarea sudo, editaţi fişierul /etc/sudoers.

Exemplu bun:

%users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
%users  ALL=/opt/kde/bin/konqueror,/opt/kde/bin/k3b

Exemplu rău:

root	ALL=(ALL) ALL
gabriel ALL=(ALL) ALL

Actualizarea pachetelor

Menţinerea "up to date" a unui sistem Slackware este una dintre cele mai dificile sarcini. Nu mă refer la upgrade-urile obişnuite de pachete din versiunea curentă (care sunt opţionale), ci la cele cu menţiunea * security fix * din versiunea stabilă.

Închiderea serviciilor

Având în vedere că orice serviciu (server, daemon) deschide un port (filtrat sau nu de un firewall), serviciile care nu sunt necesare trebuie închise. Pentru a vedea ce servicii rulează pe calculatorul dumneavoastră rulaţi comanda: nmap localhost Iată un exemplu, pe o staţie de lucru virtuală:

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-01 20:41 EET
Interesting ports on localhost (127.0.0.1):
Not shown: 1668 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
37/tcp   open  time
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
113/tcp  open  auth
587/tcp  open  submission
631/tcp  open  ipp
854/tcp  open  unknown
953/tcp  open  rndc
6000/tcp open  X11

Nmap finished: 1 IP address (1 host up) scanned in 1.196 seconds

Scopul nostru este:

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2006-12-01 22:58 EET
All 1680 scanned ports on localhost (127.0.0.1) are closed

Nmap finished: 1 IP address (1 host up) scanned in 0.187 seconds

Acesta este calculatorul meu personal şi are: conexiune la Internet, intefaţă grafică, reţea virtuală în care sunt 3 calculatoare virtuale şi oricare dintre acestea pot accesa Internetul, cu toate că nu am nici un port deschis.

Pentru a închide toate porturile din exemplul de mai sus, urmaţi următorii paşi:

  • Pentru a vedea ce serviciu a deschis portul 854, rulaţi comanda:

netstat -teanlp

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode      PID/Program name
tcp        0      0 0.0.0.0:37              0.0.0.0:*               LISTEN     0          1556       1526/inetd
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN     0          1996       1588/sendmail: acce
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN     0          1358       1510/rpc.portmap
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN     0          3796       1949/X
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN     0          2035       1627/httpd
tcp        0      0 0.0.0.0:113             0.0.0.0:*               LISTEN     0          1559       1526/inetd
tcp        0      0 192.168.102.131:53      0.0.0.0:*               LISTEN     0          1587       1534/named
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN     0          1585       1534/named
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     0          1570       1530/sshd
tcp        0      0 0.0.0.0:854             0.0.0.0:*               LISTEN     0          1552       1520/rpc.statd
tcp        0      0 0.0.0.0:631             0.0.0.0:*               LISTEN     0          1959       1560/cupsd
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN     0          1995       1588/sendmail: acce
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN     0          1589       1534/named

Deci, 854 este folosit de rpc.statd, o implementare NSM (Network Status Monitor) pentru protocolul rpc.

  • Închideţi toate porturile deschise prin fişierul de configurare a serverului inetd, /etc/inetd.conf (comentaţi liniile);
  • Închideţi serverele (daemon-ii): sshd, bind, cups, dnsmasq, nfsd, rpc, sendmail prin comanda (exemplu pentru sendmail):

/etc/rc.d/rc.sendmail stop chmod 0644 /etc/rc.d/rc.sendmail

  • Restartaţi serverul inetd:

/etc/rc.d/rc.inetd stop /etc/rc.d/rc.inetd start

  • Pentru închiderea portului 6000/tcp (port pe care ascultă serverul X) editaţi linia 27 din fişierul /usr/X11R6/bin/startx şi restartaţi serverul X:

Original: serverargs="" Modificat: serverargs="-nolisten tcp"

În acest moment toate porturile sunt închise. Dacă doriţi rularea unui anumit server, acesta trebuie actualizat cu ultimul update, configurat corect, securizat (prin editarea unui fişier de configurare - de exemplu: /etc/ftpusers pentru serverul ftp, /etc/ssh/sshd_config pentru serverul sshd) şi filtrat prin firewall.

Implementarea unui firewall

Limitarea accesului

  • Configurarea fişierului /etc/hosts.allow
  • Configurarea fişierului /etc/hosts.deny
  • Cine este logat pe calculator

Programe specializate

Ce facem când e prea târziu?