User Tools

Site Tools


linux-admin:capitole:capitol-14

This is an old revision of the document!


14. Gestiunea serviciilor

TODO

Subiecte abordate

  • Menținerea timpului sistemului)
  • Menținearea jurnalelor sistemului)
  • (Configurarea de bază a Agenților de Transfer de Email)

Utilitare folosite

  • /etc/init.d/
  • update-rc.d
  • sysv-rc-conf
  • /etc/xinet.d/*
  • netstat
  • syslog.conf
  • syslogd
  • klogd
  • logger
  • journalctl
  • /etc/systemd/journald.conf
  • /var/log/journal
  • rsyslog and syslog-ng

Bune practici

  • TODO
  • TODO
  • TODO

Resurse utile

  • TODO
  • TODO

Slide-uri

Exerciții

Demo-uri Servicii

  • Folosiți comanda netstat pentru afișarea serviciilor de rețea ale sistemului
     netstat -tlpn 
    • Verificati in manual functionalitatea fiecarui argument.
  • Opriți, porniți și reporniți serviciul SSH, folosind /etc/init.d/cups și argumentele respectiv, start, stop, restart.
  • Instalați serverul web Apache2, folosind
     apt-get install apache2 
    • Folosiți netstat -tlpn pentru a afla pe ce port ascultă conexiuni serverul apache2.

Exercițiu Servicii

  1. Instalați și configurați sysv-rc-conf pentru a configura runlevel-urile în care rulează serviciul Apache2.
    • Pentru testare rulați comanda
      ls -l /etc/rcX.d/ | grep 'apache2'

      unde X este indicele runlevel-ului configurat folosind sysv-rc-conf (adică una dintre valorile 1, 2, 3, 4, 5, 6).

  2. Instalați xinetd.
  3. Activați în cadrul xinetd suportul pentru serviciul de echo (Hint: /etc/xinetd.d/echo)
    • Pentru verificare reporniți serviciul xinetd folosind comanda:
      sudo service xinetd restart
    • Dacă ați configurat totul cum trebuie, ar trebui ca serviciul local echo să ruleze și să asculte conexiuni. Puteți verifica folosind comenzi de forma:
      pgrep -f xinetd
      sudo netstat -tlpn
    • Comanda netstat vă va afișa că serviciul xinetd ascultă conexiuni pe portul 7, portul aferent serviciului echo. Puteți verifica maparea portului 7 la serviciul echo în următoarele moduri:
      • rulând comenzile
        sudo netstat -tlp
        sudo netstat -tlpn

        și văzând ca una folosește portul 7 cealaltă numele echo pentru serviciu.

      • rulând comanda
        cat /etc/services | grep -w echo
      • rulând comanda
        getent services echo
    • Ca să testați că serviciul merge, vă conectați la serviciu folosind clientul TCP netcat în forma de mai jos:
      nc localhost 7

      adică vă conectați pe sistemul local pe portul 7.

      • În continuare orice șir veți da va fi retransmis identic (echo – ecou) de server.
      • Ca să închideți conexiunea netcat dată de comanda de mai sus folosiți combinația de taste Ctrl+c.
  4. Activați în cadrul xinetd suportul pentru serviciul de telnet.
    • Instalați pachetul telnetd.
    • Folosiți dpkg -L telnetd pentru a localiza calea către executabilul aferent serviciului.
    • Creați fișierul /etc/xinetd.d/telnet dacă nu există.
    • După configurare reporniți serviciul xinited folosind comanda
      sudo service xinetd restart
    • Dacă ați configurat totul cum trebuie, ar trebui ca serviciul local telnet să ruleze și să asculte conexiuni. Puteți verifica folosind comenzi de forma:
      pgrep -f xinetd
      sudo netstat -tlpn
    • Comanda netstat vă va afișa că serviciul xinetd ascultă conexiuni pe portul 23, portul aferent serviciului telnet. Puteți verifica maparea portului 7 la serviciul echo în următoarele moduri:
      • rulând comenzile
        sudo netstat -tlp
        sudo netstat -tlpn

        și văzând ca una folosește portul 23 cealaltă numele telnet pentru serviciu.

      • rulând comanda
        cat /etc/services | grep -w telnet
      • rulând comanda
        getent services telnet
    • Serviciul telnet este un serviciu de conexiune la distanță necriptat. Nu este recomandat pentru conexiuni în afara rețelei locale, și poate nici atunci. Pentru a testa serviciul telnet, folosiți clientul telnet:
      telnet localhost

      În caz de succes veți primi un prompt de autentificare unde vă veți autentifica folosind username student și parolă student și apoi veți obține un prompt.

      • De la prompt și de la conexiunea telnet vă puteți deconecta folosind comanda exit sau combinația de taste Ctrl+d.
      • În caz de probleme cu conexiunea telnet puteți folosi combinația de taster Ctrl+] urmată de apăsarea tastei q și apoi de ENTER pentru a închide conexiunea.
    • În caz de probleme consultați fișierele de jurnalizare (/var/log/syslog).

Tutorial Logging

  • Instalati daemonul rsyslog:
     apt-get install rsyslog 
  • Instalati pachetul de documentație aferent:
     apt-get install rsyslog-doc 
  • Parcurgeți fișierul de configurare /etc/rsyslog.conf si observati diferite optiuni disponibile
     vim /etc/rsyslog.conf 
  • Utilitarul journalctl este utilizat pentru interogarea mesajelor generate de systemd:
    • Pentru a verifica ultimele 50 mesajele:
      journalctl -n 50
    • Pentru a verifica mesajele cu prioritate critică:
      journalctl -p “crit”

Exercițiu Logging

  1. Ce efect are prezența unui minus (-) în cadrul unei intrări de fișier de tip jurnal în fișierul de configurare?
  2. Adaugati în /etc/rsyslog.conf o intrare prin care TOATE mesajele din sistem sa fie înregistrate în /var/log/all_logs
    • Important: Nu creați fișierul de mână, îl va crea daemon-ul rsyslog la nevoie.
    • Pentru verificare reporniți daemonul rsyslog folosind comanda
      sudo service rsyslog restart

      și testați recepționarea de mesaje in fișierul /var/log/all_logs trimițând mesaje folosind comanda logger, precum

      logger -p mail.err "test"
  3. Folosind comanda logger, generați 5 mesaje de mail cu proritatea info, care să conțină textele "mail log 1" … "mail log 5", adică ceva de forma
    logger -p mail.info "mail log 1"
  4. Modificați /etc/logrotate.conf astfel încat fisierul /var/log/all_logs să fie rotit zilnic.
  5. Configurați rsyslog pentru a asculta conexiuni în rețea.
    • Urmăriți directivele de configurare secțiunea MODULES din /etc/rsyslog.conf.
    • Pentru a verifica faptul că serverul rsyslog ascultă conexiuni și pe UDP vom lista serviciile care ascultă conexiuni pe UDP folosind comanda
      netstat -ulpn

      Dacă e configurat cum trebuie, comanda de mai sus va afișa și numele serviciului rsyslog.

      • Portul pe care ascultă conexiuni este portul 514, lucru verificabil și prin rularea comenzilor
        netstat -ulp
        netstat -ulpn

        sau

        grep 'syslog' /etc/services

        sau

        getent services syslog
  6. Realizați un script care ia din /var/log toate fișierele de logging de un anumit nivel, primit ca argument (err, warn, debug, info și log), indiferent de facilitate, și le arhivează într-un fișier cu numele [NIVEL]_[DATA_CURENTA].tar.gz.
    • Pentru obținerea datei folosiți o construcție de forma
      date +"%Y-%m-%d"
    • Pentru căutarea fișierelor necesare folosiți o construcție de forma
      find /var/log -name "*.err*"

      unde err se poate înlocui cu nivelul de logging necesar.

    • Pentru arhivare/comprimare folosiți comanda
      tar -czf $nume-arhiva fisiere-de-arhivat ...

      unde $nume-arhiva este numele fișierului arhivă, iar fisiere-de-arhivat … reprezintă lista de fișiere de arhivat. Poate fi vorba de output-ul comenzii find.

    • Dacă fișierul arhivă deja există la începutul rulării scriptului, ștergeți-l.
    • Este nevoie să rulați comanda ca root pentru că aveți nevoie de privilegii pentru a lucra în directorul /var/log.
    • Pentru verificare, listați conținutul arhivei folosind comanda
      tar -tzf $nume-arhiva

      unde $nume-arhiva este numele fișierului arhivă.

linux-admin/capitole/capitol-14.1476290957.txt.gz · Last modified: 2016/10/12 19:49 by mihaic