Rancid

From ICO wiki

Sissejuhatus

Rancid jälgib võrguseadmete(ruuterid, switchid) konfiguratsiooni, sealhulgas ka tarkvara ning riistvara(liidesed, kaardid, serial numbrid jms) ja salvestab nende muutused kasutades selleks CVS või Subversion't. Kasutades rancidit on võrguadministraatoril ülevaade võrguseadmetes tehtud muudatustest ning on säilitatud ka konfiguratsioonide koopiad, mida saab vajadusel taastamisel kasutada.
Rancid toimib üsna lihtsate protsesside jadana:

1. Logib igasse seadmesse, mis on kirjeldatud seadmete listis (router.db);
2. Sisestab erinevaid "show" käske mille tulemusena väljastatakse vajalik info;
3. Töötleb väljundit ja eemaldab mitteolulise info;
4. Vajadusel saadab toimunud muudatustest teavitus emaili etteantud aadressidele;
5. Salvestab muudatused muudatuste halduse süsteemi.

Hetkel on kõige uuem saadaolev rancid versioon 2.3.8. Versioonide uuendustega saab tutvuda siin.
Rancid on saadaval järgmistele operatsioonisüsteemidele:
-FreeBSD
-Linux
-OS X
-Solaris

Artikli kirjutamise hetke seisuga toetab rancid järgmiste tootjate võrguseadmeid: Cisco Anomaly Guard Module (AGM) Alteon WebOS switches, Arista Networks devices, Bay Networks (nortel), Cisco catalyst switches, Cisco content services switches, ADC-kentrox EZ-T3 mux, Force10, F5 BigIPs, Fortinet Firewalls, Foundry and HP procurve OEMs of Foundry, HP Procurve Switches, Hitachi Routers, Juniper Networks E-series, Juniper Networks, MRTd, MRV optical switches, Mikrotik routers, Netscreen firewalls, Lucent TNT, Extreme switches, Cisco IOS-XR boxes, Zebra routing software.

Eeldused

Artikli autor eeldab, et lugeja on tuttav linuxi käsurea käskudega ning omab mõningaid teadmisi võrgundusest.
Juhendi läbitöötamiseks on vajalik sobiva operatsioonisüsteemiga (vt. sissejuhatusest) masina ning ülalnimetatud tootja võrguseadme olemasolu.
Masinal peab olema instaleeritud veebiserveri tarkvara. Juhend on koostatud kasutades Ubuntu Linux Server't.

Eeltöö

Esimese asjana on rangelt soovitatav luua kasutaja nimega rancid kuna turvakaalutlustel tuleks vältida rakenduse käivitumist juurkasutaja õigustes.

adduser rancid --home /home/rancid

Eelnevaga loodi kasutaja rancid ning omistati talle ka kodukataloog. Selles kaustas saavad asuma hiljem ka kõik loodavad failid.

Installeerimine

Laeme alla rancidi viimase versiooni 2.3.8.

Pakime allalaetud fail lahti.

tar xvfz rancid-2.3.8.tar.gz

Seejärel on vaja instaleerida tööriista pakk, millega rancid kompileerida ja installeerida.

apt-get install build-essential

Nüüd oleme valmis rancidi installeerimiseks, selleks minge kausta, mille eelnevalt lahti pakkisite ning toimige järgnevalt:

./configure --prefix=/home/rancid
checkinstall

Eelnev installeerib rancidi kasutaja rancid kodukataloogi /home/rancid.
Kui käsk "checkinstall" ei ole sinu süsteemis saadaval või soovid selle kohta rohkem teada siis leiad infot siit.

Seadistamine

Alustame võrguseadmete gruppide loomisega. Looma peab vähemalt ühe grupi. Gruppide loomiseks peab seadistama faili /home/rancid/etc/rancid.conf

Lisades faili lõppu alloleva rea, luuakse grupp ruuterid, kus konfiguratsioone edaspidi hoidma hakatakse.

LIST_OF_GROUPS="ruuterid"

Kui hallata on suur hulk seadmeid siis on kasulik näiteks grupid luua vastavalt seadmete geograafilistele asukohtadele:

LIST_OF_GROUPS="Tallinn Tartu Paide Muud"

Gruppide nimed peavad olema eraldatud tühikutega.

Järgmiseks on vaja konfigureerida fail .cloginrc, milles hoitakse paroole võrguseadmetele ligipääsemiseks. Selle faili loomiseks tuleb fail cloginrc.sample ümbernimetada .cloginrc.

cp /home/rancid/share/rancid/cloginrc.sample /home/rancid/.cloginrc

Vaikimisi on .cloginrc failis süntaksi näiteid, mis sisaldavad erinevate tootjate(Cisco, Juniper...) ja ühenduste (telnet, ssh) võimalusi.
Oma näites kasutame telnet'i ligipääsemiseks Cisco switchile, mille ip aadress on 10.156.1.1.
Ava tekstiredaktoriga fail /home/rancid/.cloginrc. Jäta iga rea ette, mida sa ei soovi kasutada, kommentaari märk #. Lisa faili allolev rida, kus loogeliste sulgude sees olevad väärtused asenda võrguseadme paroolidega.

add password 10.156.1.1 {user_password} {enable_password}

Ole faili .cloginrc õigustega väga ettevaatlik kuna paroolid, mida fail sisaldab ei ole krüpteeritud. Paroolide kaitsmiseks on mõistlik faili õigused piirata.
Selleks muudame failile juurdepääsuõigused 600 peale, mis tähendab, et omanikul on lugemis ja kirjutamis õigused ning teistel ei ole mingeid õiguseid.
Järgmiseks tuleb muuta kausta /home/rancid ja selle alamkaustade ning failide omanikuks kasutaja rancid.

chmod 600 /home/rancid/.cloginrc
chown -R rancid:rancid /home/rancid

CVS arhitektuuri loomine

Kui sa veel ei ole siis logi sisse kasutajana rancid.

su rancid
rancid@linux#/home/rancid/bin/rancid-cvs

Võrguseadmete lisamine

Lisa seadmed gruppi. Selleks ava tekstiredaktoriga fail /home/rancid/var/rancid/"grupi_nimi"/router.db, kus "grupi_nimi" on eelnevalt loodud grupp.
Seadme lisamise süntaks on järgmine:
"IP_AADRESS või FQDN":"SEADME_TÜÜP":"STAATUS"
Näiteks:

10.156.1.1:cisco:up
10.156.1.28:cisco:up

Kontrolli kas faili /home/rancid/.cloginrc lisatud kasutaja andmed sobivad:

/home/rancid/bin/clogin 10.156.1.1

Edukas tulemus peaks olema taoline:

10.156.1.1
spawn telnet 10.156.1.1
Trying 10.156.1.1...
Connected to 10.156.1.1.
Escape character is '^]'.

User Access Verification

Password:
Router>enable
Password:
Router#

Käivitamine

Käivita rancid käsuga:

/home/rancid/bin/rancid-run

Logisid saad vaadata kaustast: /home/rancid/var/rancid/logs/

CvsWeb

Järgmiseks tuleb luua keskkond kus seadmete konfiguratsioonid ka veebikaudu nähtavad on.
Faili /etc/cvsweb.conf tuleb lisada juurkasutaja õigustes lisada rida, et luua uus CVS repositoorium. Selleks leia üles rida, mis algab "@CVSrepositories" ja lisa järgnev rõhutatud rida:

@CVSrepositories = (
#'local' => ['Local Repository', '/var/lib/cvs'],
<b>'My_Config' => ['My Config', '/home/rancid/var/CVS'],</b>
#'freeebsd' => ['FreeBSD', '/var/ncvs'],
#'openbsd' => ['OpenBSD', '/var/ncvs'],
#'netbsd' => ['NetBSD', '/var/ncvs'],
#'ruby' => ['Ruby', '/var/anoncvs/ruby'],
);

Kui kaust, mis sisaldab cvsweb'i ikoone ja css faile ei asu kaustas /var/www, tuleb lisada symbolic link.

ln -s /usr/share/cvsweb /var/www/cvsweb

Nüüd tuleks tulemust testida veebilehitsejas, pöördudes aadressile http://127.0.0.1/cgi-bin/cvsweb

Lisaks

Lisavõimalustena on võimalik seadistada rancid saatma ka e-kirju võrguseadmetes toimunud muudatustest etteantud e-maili aadressidele. Samuti on võimalik rancid seadistada võrguseadmete konfiguratsioonimuudatusi kontrollima automaatselt ning etteantud intervalli tagant, selleks kasutatakse crontab'i.
Nende võimalustega tutvumiseks loe allpool leiduvat kirjandust.

Kasutatud kirjandus

1. http://www.shrubbery.net/rancid/
2. http://openmaniak.com/rancid_tutorial.php

Autor

Meelis Kurnikov AK31
Aive Haavel AK31
Viimati redigeeritud 13.12.2012