Administrarea sistemelor Linux Cursul 8 Configurarea serviciilor sistemului – partea I Dragoş Acostăchioaie http://www.adt.ro
[email protected]
Serviciul SSH este un mod sigur de conectare intre sisteme cripteaza informatiile inainte de a fi trimise prin retea pentru autentificare utilizeaza un sistem de chei publice si private poate fi utilizat in locul serviciilor nesigure (sniffere...), cum ar fi telnet, FTP sau rlogin poate fi folosit si pentru a tunela alte servicii de retea Linux utilizeaza implementarea OpenSSH (www.isc.org) se recomanda instalarea unei versiuni cat mai recente
Utilizarea clientilor SSH conectarea la un sistem se face prin programul ssh ssh [ optiuni ] user@masina [ comanda ] optiuni: C – comprima datele c cifru – algoritmul de criptare folosit (des, 3des, blowfish, aes) daca se specifica o comanda, nu se deschide interpretor de comenzi transferul de fisiere intre doua sisteme: scp sursa user@masina:/home/user sftp (comenzi similare cu FTP)
Utilizarea clientilor SSH tunelarea serviciilor de retea: L port_local:masina:port_remote portul de pe masina locala va fi redirectionat catre portul aflat pe masina aflata la distanta R port_local:masina:port_remote portul de pe masina aflata la distanta va fi redirectionat catre portul de pe masina locala
Server SSH pentru a accepta conexiuni SSH trebuie sa ruleze daemonul sshd fisierul de configurare: /etc/ssh/sshd_config optiune valoare Port – portul la care sshd asteapta conexiuni (implicit 22) ListenAddress – adresa IP a interfetei de retea de pe care vor fi asteptate conexiuni PermitRootLogin – permite utilizatorului root sa intre in sistem (No) RhostsAuthentication – permite accesul privilegiat prin .rhosts (No) PasswordAuthentication – autentificarea se va face pe baza parolelor de acces PermitEmptyPasswords – permite folosirea de parole vide (No) AllowUsers – utilizatorii care pot intra in sistem (poate avea si sintaxa user@masina) DenyUsers – utilizatorii carora nu li se permite intrarea in sistem
Server SSH (continuare) AllowGroups – grupurile carora li se permite intrarea in sistem DenyGroups – grupurile pentru care nu se permite intrarea VerifyReverseMapping – verifica adresa masinii client (nume <> IP) LoginGraceTime – timpul de asteptare in care utilizatorul va fi deconectat daca autentificarea nu a avut succes (120) MaxAuthTries – numarul maxim de reincercari pentru fiecare autentificare StrictModes – verifica permisiunile directorului home inainte de a accepta intrarea in sistem Banner – specifica un fisier al carui continut va fi afisat dupa conectare SyslogFacility – stabileste clasa de jurnalizare utilizata de syslog (AUTHPRIV) LogInfo – nivelul de jurnalizarea utilizat de syslog (INFO)
Serviciul syslog daemonul syslog ofera aplicatiilor si nucleului Linux posibilitatea de jurnalizare a mesajelor generate mesajele pot fi: de eroare, de atentionare, de depanare etc. mesajele pot fi trimise catre fisiere sau catre alte sisteme care ruleaza daemonul syslog fisierele in care sunt stocate mesajelejurnal se afla in /var/log administratorul poate utiliza aceste fisierejurnal pentru: a determina problemele de functionare a serviciilor sistemului depista incercarile de atac impotriva sistemului utilizarea neautorizata a serviciilor serviciul corespunzator: syslogd fisierul de configurare: /etc/syslog.conf contine reguli, cate una pe fiecare linie, avand doua campuri, unul selector si unul de actiune, separate prin spatii sau taburi
Serviciul syslog (continuare) campul selector este alcatuit din doua parti: clasa si prioritatea, separate prin “.” clasa = sistemul care a generat mesajul: auth, authpriv, cron, daemon, kern, lpr, mail, news, syslog, user, local0...local7 caracterul “*” = toate clasele prioritatea = severitatea mesajului: debug, info, notice, warning, err, crit, alert, emerg (in ordine ascendenta) caracterul “*” = toate prioritatile “none” mesajele avand clasa specificata vor fi ignorate toate mesajele avand prioritatea specificata sau mai mare vor fi jurnalizate pot fi specificate mai multe clase avand aceeasi prioritate, separate prin virgula (fara a mai putea specifica si prioritatea)
Serviciul syslog (continuare) pot fi specificati mai multi selectori pentru o singura actiune, separati prin caracterul “;” actiunea reprezinta destinatia jurnalului: fisiere obisnuite – numele fisierelor trebuie sa includa calea completa (incepand cu “/”); mesajele vor fi adaugate la sfarsitul fisierului; daca incep cu “”, nu se va mai face scrierea imediata pe disc (fsync) dupa fiecare mesaj (pentru a imbunatati performanta sistemului) terminale (/dev/console, /dev/tty10) alta masina (care ruleaza syslogd), in formatul @masina lista de utilizatori – trimite mesajele catre anumiti utilizatori conectati, care vor aparea pe terminalul curent al acestora; separarea utilizatorilor din lista se face prin virgula (“*” = toti utilizatorii intrati pe sistem)
Serviciul syslog (continuare) trimiterea mesajului printrun pipe – executa un program in momentul receptionarii mesajelor, prin folosirea caracterului “|”, urmat de numele comenzii care va fi executata daca se doreste jurnalizarea mesajelor provenite de pe alte masini, trebuie folosit argumentul “r” la pornirea daemonului syslogd dupa modificarea fisierului de configurare trebuie trimis daemonului syslogd semnalul SIGHUP
Serviciul cron serviciul cron se utilizeaza pentru executia de proceduri automate executa comenzi in mod programat, la anumite momente prestabilite de timp daemonul cron se “trezeste” la fiecare minut, verificand in mod normal continutul directoarelor: cron.d – scripturi speciale cron cron.hourly – scripturi care vor fi executate din ora in ora cron.daily – scripturi care vor fi executate zilnic cron.weekly – scripturi care vor fi executate saptamanal cron.monthly – scripturi care vor fi executate lunar se executa scripturile aflate in aceste directoare fisierul de configurare: /etc/crontab contine instructiuni de executie a unei comenzi la un anumit moment
Serviciul cron (continuare) daca variabila de mediu MAILTO este definita si nu este vida, va fi trimis un email utilizatorului specificat, continand iesirea standard a tuturor scripturilor executate actiunile executate de cron sunt jurnalizate in general in /var/log/cron formatul fisierului crontab: specificatie_timp utilizator script specificatie_timp contine cinci campuri: minut, putand lua valori intre 0 si 59 ora, putand lua valori intre 0 si 23 zi din luna, putand lua valori intre 1 si 31 luna, putand lua valori intre 1 si 12 sau nume de luna zi din saptamana, intre 0 si 7 (0 = duminica) sau nume de zile
Serviciul cron (continuare) “*” = orice valoare sunt permise intervalele de numere (“”), liste de valori sau intervale (separate prin virgula) este permisa si divizarea valorilor (“/”) utilizator – utilizatorul sub care vor fi executate scripturile script – locatia scriptului care va fi executat utilizatorii isi pot defini propriile fisiere crontab, localizate in /var/cron/tabs/nume_utilizator utilizatorii care pot utiliza acest serviciu pot fi limitati prin intermediul /etc/cron.allow si cron.deny pot fi folosite si serviciile anacron si at