03 Services Configuration




Sherbimet

Per te garantuar nje sistem te sigurte eshte e rendesishme qe te kontrollojme aksesin tek sherbimet. Sistemi mund te kete nevoje qe te lejoje akses te hapur per disa nga sherbimet per shembull httpd por duhet te mos lejoje kapjen e sherbimeve te tjera nga perdorues te paautorizuar. Si rregull nese serveri nuk do ta ofroje nje sherbim eshte mire qe ai te c'aktivizohet per te shmangur ndonje thyerje te mundshme te sigurise.

Ne kete leksion do te shpejgojme konceptin e "Niveleve te ekzekutimit " ose Run-Level, percaktimin e sherbimeve qe do te ekzekutohen ne sejcilin nga nivelet e ekzekutimit si edhe se si te konfigurojme sherbimet.

     

Nivelet e ekzekutimit, Run-Level

Nje nivel ekzektuimi eshte nje gjendje ( state ose mode) qe percaktohet nga sherbimet qe do te ekzekutohen ne ate nivel. Ka 7(shtate) nivele ekzekutimi te numeruar duke nisur nga 0


 Niveli i Ekzekutimit Pershkrimi
 0 Perdoret per te fikur sistemin. Ky nivel ekzekutimi eshte i rezervuar dhe nuk mund te ndryshohet.
 1 Perdoret per te ekzekutuar sistemin ne single user mode. Ky nivel ekzekurimi eshte i rezervuar dhe nuk mund te ndryshohet
 2 Si rregull nuk perdoret nga sistemi. Kete nevel ekzekutimi mund ta ndryshojme duke percaktuar cfare sherbimesh do te ekzekutohen ne te.
 3     Perdoret per te ekzekutuar sistemin ne multi user mode me interface tekstual.
 4 Si rregull nuk perdoret nga sistemi. Kete nevel ekzekutimi mund ta ndryshojme duke percaktuar cfare sherbimesh do te ekzekutohen ne te.
 5  Perdoret per te ekzekutuar sistemin ne multi user mode me interface grafik.
 6 Perdoret per te rindezur ( reboot ) sistemin. Ky nivel ekzekurimi eshte i rezervuar dhe nuk mund te ndryshohet







Per te pare ne cilin nivel ekzekutimi eshte duke u ekzekutuar sistemi mund te perdorim komanden runlevel, 


[root@localhost student]# runlevel
N 5
[root@localhost student]# 


Komanda me part tregon qe sistemi po ekzekutohet ne full multi user mode me nderfaqe grafike.

Niveli baze i ekzekutimit ( default run level ) mund te percaktohet duke modifikuar skedarin /etc/inittab


[root@localhost student]# cat /etc/inittab 

# Default runlevel. The runlevels used are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
id:5:initdefault:
[root@localhost student]# 

Skedari i mesiperm /etc/inittab percakton si nivel baze te ekzekutimit nivelin 5, multi user mode me nderfaqe grafike.

Per te ndryshuar nivelin baze te ekzekutimit mjfaton qe te editojme kete skedar me nje editor teksti.
Ndryshimi do te aplikohet kur sistemi te rindizet.

Ushtrim

1- Ndryshoni nivelin baze te ekzekutimit nga 5 ne 3 ( multiuser mode me nderfaqe tekst)
2- reboot makinen
3- logohuni ne sistem me perdoruesin root password: student
4 - Jeni ne text mode
5- hapni skedarin /etc/inittab me editorin nano ( nano /etc/inittab)
6- rivendosni nivelin e ekzekutimit 5 ( multi user mode me nderfaqe grafike )
7- reboot makinen
8- jeni ne graphic mode



Konfigurimi i sherbimeve


Per te konfiguruar sherbimet RedHat Linux ka disa mjete:

  1. Programi Grafik Service Configuration 
  2. Komanda ntsysv
  3. Komanda chkconfig

Programi grafik Service Configuration


Ndersa jemi ne moden grafike, Nga menuja kryesore klikojme System -> Administration -> Services


https://sites.google.com/a/ictedu.info/web/e-learning/redhat-linux-cource-custom/services/service%20configuration%20utility.PNG


Butoni Customize na lejon qe te percaktojme qe per sherbimin e selektuar te percaktojme ne cilat nivele ekzekutimi mund te ekzekutohet:

https://sites.google.com/a/ictedu.info/web/e-learning/redhat-linux-cource-custom/services/service%20configuration%20utility%20run%20levels.PNG


Tabela me poshte tregon gjendjet e mundshme te nje service

https://sites.google.com/a/ictedu.info/web/e-learning/redhat-linux-cource-custom/services/service%20statuses.PNG


Nje sherbim mund te jete enable dhe running , ose mund te jete enabled dhe not running.
Enabled ose Disabled percaktojne nese sherbimi eshte i lejuar per nivelin korrent te ekzekutimit , ndersa gjendja ( running, not running) percakton qe nese sherbimi eshte enabled eshte ene ekzekutim apo jo.

Komanda ntsysv

Komanda ntsysv ofron nje ndefaqe te thjeshte tekstuale per te percaktuar cili nga sherbimet do te ekzekutohet ne nje nivel ekzekutimi. 
Per ta therritur kete program shkruajme ntsysv ne linjen e komandes:

[root@localhost student]# ntsysv

dhe do te hapet programi pamja e te ciliet eshte e ngjashme me pamjen e meposhtme:


https://sites.google.com/a/ictedu.info/web/e-learning/redhat-linux-cource-custom/services/ntsysv.PNG
 

Si rregull ntsysv percakton sherbimet qe do te aktivizohen per niveln korrent te ekzekutimit.
Por eshte e mundur qe te therritet programi duke i percaktuar si argument nje nivel ekzekutimi duke percaktuar cilat sherbime do te aktivizohen ne ate nivel:

Sintaksa e komandes ne kete rast eshte

ntsysv --level runlevels

Per shembull mund te therrasim ntsysv qe te percaktoje sherbimet qe do te lejohen ne nivelet 3 dhe 5:

[root@localhost student]# ntsysv --level 35

do te hapte serish editorin por per nivelet 3 dhe 5.


Ne dallim nga Service Configuration utility , komanda ntsysv eshte disponibel edhe ne nivelin 3 te ekzekutimit ( text mode interface)

Ushtrim

Kalojeni sistemin ne nivelin e ekzekutimit 3 dhe therritni aty ntsysv per nivelet 3 dhe 5.



Komanda chkconfig


Komanda chkconfig qe na lejon te percaktojme ne cilin nivel ekzekutimi duam ta startojme nje sherbim te caktuar si edhe qe te listojme te gjithe sherbimet disponibel.
chkconfig eshte e ngjashme me ntsysv por nuk ofron nderfaqe grafike tekstuale.

Per shembull per te listuar  te gjithe sherbimet dhe nivelet ku ata jane te aktivizuar mund te perdorim opsioni list, si me poshte:

[root@localhost student]# chkconfig --list
NetworkManager 0:off 1:off 2:on 3:on 4:on 5:on 6:off
httpd           0:off 1:off 2:on 3:on 4:on 5:on 6:off
ip6tables       0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables       0:off 1:off 2:off 3:off 4:off 5:off 6:off
network         0:off 1:off 2:on 3:on 4:on 5:on 6:off
vsftpd         0:off 1:off 2:on 3:on 4:on 5:on 6:off
.............................................................................
xinetd         0:off 1:off 2:on 3:on 4:on 5:on 6:off

xinetd based services:
tftp:           on
...................................
[root@localhost student]# 

E njejta gje ndodh edhe nese therrasim vetem chkconfig.


Cdo rresht i rezultatit ka emrin e sherbimit dhe me pas vijon statusi i tij ne sejcilin nga nivelet e ekzekutimit (psh  0:off tregon qe ne nivelin 0 nuk eshte i aktivizuar)


mund ta filtrojme rezultatin vetem per ato sherbime qe interesohemi duke perdorur grep ose duke i kerkuar chkconfig te na jape informacion per nje sherbim te caktuar si opsion te komandes.


Shembull duke perdorur grep

[root@localhost student]# chkconfig --list | grep ftp
vsftpd         0:off 1:off 2:on 3:on 4:on 5:on 6:off
tftp:           on
[root@localhost student]# 


Shembull duke perdorur opsionet e komandes chkconfig

[root@localhost student]# chkconfig --list vsftpd
vsftpd         0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost student]# 

Aktivizimi i nje sherbimi
Komanda chkconfig e aktivizon nje sherbim ne nivelet 2,3,4,5 nese niveli nuk percaktohet ne menyre eksplicite ne opsionet e komandes.


Per te aktivizuar nje sherbim  ne nivelet 2,3,4,5 mund te perdorim chkconfig on

Shembulli me poshte c'aktivizon sherbimin vsftpd nga nivelet 2,3,4,5 dhe me pas e ri aktivizon ate ne keto nivele:

[root@localhost student]# chkconfig --list vsftpd
vsftpd         0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@localhost student]# chkconfig vsftpd off

[root@localhost student]# chkconfig --list vsftpd
vsftpd         0:off 1:off 2:off 3:off 4:off 5:off 6:off

[root@localhost student]# chkconfig vsftpd on

[root@localhost student]# chkconfig --list vsftpd
vsftpd         0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@localhost student]# 


Nese duam qe te aktivizojme ( ose c'aktivizojme nje sherbim ) ne ne nivel te caktuar atehere duhet te perdorim opsionin --level me nivelet per te cilat duam te aktivizojme sherbimin.

Shembulli me poshte fillimisht e caktivizon sherbimin vsftpd ne nivelin 5 dhe me pas e riaktivizon ate ne kete nivel:


Verifikojme qe sherbimi eshte i aktivizuar ne nivelet 3 dhe 5

[root@localhost student]# chkconfig --list vsftpd
vsftpd         0:off 1:off 2:on 3:on 4:on 5:on 6:off

E c'aktivizojme sherbimin ne nivelet 3 dhe 5

[root@localhost student]# chkconfig  vsftpd  off on --level 35

[root@localhost student]# chkconfig --list vsftpd
vsftpd         0:off 1:off 2:on 3:off 4:on 5:off 6:off

Verifikojme status in e sherbimit.

[root@localhost student]# service vsftpd status
vsftpd (pid 1730) is running...

Ndonese sherbimi eshte c'aktivizuar ne nivelin 5 ai eshte enede ne ekzekutim. Ne fakt konfigurimi qe kemi aplikuar do te aplikohet ne momentin qe rindizet makina.


[root@localhost student]# chkconfig  vsftpd  on on --level 35

[root@localhost student]# chkconfig --list vsftpd
vsftpd         0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost student]# 



Ushtrim
    • verifikoni qe sherbimi httpd eshte running.. 
    • C'aktivizoni sherbimin httpd per nivelin 5.
    • verifikoni statusin e sherbimi pas ketij veprimi
    • Rindizni makinen
    • Verifikoni statusin e sherbimit httpd.
    • Riaktivizoni sherbimin httpd ne nivelin 5.
    • startoni sherbimin me service http start.


Ekzekutimi i sherbimeve



Komanda service na mundeson qe te verifikojme statusin e ekzekutimit te nje sherbimi, te startojme , te stopojme dhe te ristarojme nje sherbim. 
Shembujt me poshte ilustojne keto funksione:


[root@localhost student]# service httpd status
httpd (pid  2464) is running...

[root@localhost student]# service httpd stop
Stopping httpd:                                            [  OK  ]

[root@localhost student]# service httpd status
httpd is stopped

[root@localhost student]# service httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [  OK  ]

[root@localhost student]# service httpd status
httpd (pid  2518) is running...


[root@localhost student]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain for ServerName
                                                           [  OK  ]


[root@localhost student]# service httpd status
httpd (pid  2553) is running...


[root@localhost student]#


Ndersa komanda service --status-all  shfaq gjendjen e te gjithe sherbimeve:

[root@localhost student]# service --status-all
iptables: Firewall is not running.
vsftpd (pid 1730) is running...
.......................................
xinetd (pid  1719) is running...
[root@localhost student]#