OpenAudit LAMP serveril.: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Mleisber (talk | contribs)
Mleisber (talk | contribs)
No edit summary
 
(68 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:IT infrastruktuuri teenused]]
[[Category:IT infrastruktuuri teenused]]
= OpenAudit installeerimine LAMP serveril. =
= OpenAudit installeerimine LAMP serveril. =
'''...ARTIKKEL ALLES VALMIMISEL...'''


:Autor: Martin Leisberg
:Autor: Martin Leisberg
Line 13: Line 12:
=Sissejuhatus=
=Sissejuhatus=


Artikkel räägib rakendusest, mis võiks IT süsteemiadministraatorite mõningaid igapäevaseid tegevusi hõlbustada/kergendada. IT inimesed teavad reeglina kõik kui raske on hoida ajakohasena informatsiooni firmas oleva riistavara/tarkvara/litsentside/printerite jne kohta. Loomuliklut ei kehti see ütleme nii 10 masinaga firma vaatenurgast kuigi ka seal võib see tüütust piisavalt pakkuda. OS tasandil oskab rakendus infot korjata nii ''Micrsoft ''kui ''Linux'' baasil süsteemide kohta!
Artikkel räägib rakendusest [http://www.open-audit.org [openAudit]], mis võiks IT süsteemiadministraatorite mõningaid igapäevaseid tegevusi hõlbustada...kergendada. IT inimesed teavad reeglina kõik, kui raske on hoida ajakohasena informatsiooni firmas oleva riistavara/tarkvara/litsentside/printerite jne jne kohta. Loomuliklut ei kehti see ütleme nii 10 masinaga firma vaatenurgast, kuigi ka seal võib see tüütust piisavalt valmistada.




Siinkohal tutvustangi ühte võimalikku varianti, rakendust, mis korjab etteantud ulatuses infot nii riistavara, tarkvara, võrgu, ja palju muu kohta. Andmed salvestatakse kenasti andmebaasi ning kuvatakse kasutajale sõbralike veebilehtedena. Nimkes sellele vabavaralisel toredusel on ''[http://www.open-audit.org openAudit]. ''Lihtsalt õeldes saab võimalikult automaatselt kokku korjata väga suure enamuse meid huvitavast infost, meie süsteemis esinevate seadmete ja tarkvarede kohta, turvaliselt seda säilitada ning ise täiendada enda märkustega. Ligipääsetavus antud infole ühest kohast ning lihtsasti.
OpenAudit on rakendus, mis ütleb sulle täpselt '''mis''' on su võrgus, '''kuidas '''see seadistatud on ja '''millal''' on sellega muutused toimunud. Töötab nii ''Microsoft'' kui ka ''Linuxi ''platvormidel. Põhiolemuselt on tegemist informatsiooni andmebaasiga, millele esitatakse päringuid läbi lihtsa veebiliidese (veebileht). Info võrgu kohta saab baasi läbi ''Bash ''skripti ''(Linux) ''või läbi ''VBScript'i'' (''Microsoft'').Terve rakendus on kirjutatud kasutades ''PHP'd, bash'i ''ja ''vbscript'i. ''Nagu näha on tegemist nn ''„skriptimis“ ''keeltega, ei ole vaja mingit kompileerimist, muutes nii igaühel kohandamise ning vastavalt vajadustele seadistamise väga mugavaks.




Nende endi lehel on väga ilusasti üteldud ühe lausega: ''„OpenAudit on rakendus, mis ütleb sulle täpselt '''mis''' on su võrgus, '''kuidas '''see seadistatud on ja '''millal''' on sellega muutused toimunud!“''
''Windowsi ''baasil PC'de kohta saab pärida näiteks riistvara, tarkvara, operatsioonisüsteemi seadete, turvaseadete, IIS seadete, teenuste, kasutajate ja gruppide ning palju palju muu kohta. ''Linux'' baasil masinatest saab pärida suhteliselt samasugust informatsiooni. Võrguseadmete (printerid, ''switchid, ''ruuterid jne) kohta talletatakse IP aadressid, MAC aadressid, avatud pordid, seerianumbrid jne jne. Infot saab automaatselt genereerida veebilehe asemel alternatiivselt PDF raportile või CSV formaati.
 
 
OpenAuditit on võimalik seadistada meie võrku ja seadmeid skänneerima automaatselt. Soovitatakse teha üks skänn päevas seadmete kohta ning võrgu kohta iga paari tunni tagant (ilmselt liiga paranoialine arvamus, tarkvara autoritelt). Sellega tagame ajakohase info kui midagi on seadmetes või võrgus muutunud/muutumas.


=Eeldused=
=Eeldused=
* Riistvaralised ''standalone'' masinale:
* Riistvaralised ''standalone'' masinale:
::* 128 MB RAM
::* 128 MB RAM
::* 10 GB HDD
::* 10 GB HDD
Line 35: Line 36:
* Kasuks tuleb ''MySQL'i ''kasutamise oskus käsurealt.
* Kasuks tuleb ''MySQL'i ''kasutamise oskus käsurealt.
* Masin või seade kust käivitades on info korjamise skriptil ligipääs kõikidele auditisse tulevatele masinatele ning teistpidi on ligipääs ''OpenAudit ''masinasse korjatud andmete talletamiseks.
* Masin või seade kust käivitades on info korjamise skriptil ligipääs kõikidele auditisse tulevatele masinatele ning teistpidi on ligipääs ''OpenAudit ''masinasse korjatud andmete talletamiseks.
* ''root ''ligipääs ''Linux'' masinas või muud administreerimist ja installeerimist teha võimaldav kasutaja.
* Tulemüüris peab olema avatud http port (80).


=Teenuse üldkirjeldus=
=Teenuse üldkirjeldus=


Räägin nüüd ''OpenAudit'st'' pisut täpsemalt ja detailsemalt kui sissejuhatuses ja rohkem siin käsitlevast vaatenurgast. Antud funktsionaalsust on võimalik realiseerida erinevalt, räägin olukorrast kuidas mina seda tegin ja milleks see kasulik olla võiks.  
Lõpptulemusena on meil installitud ''Linuxi'' baasil masin, milles jookseb veebiserver, ''MySQL'' andmebaas ning nende kahe vahel PHP. Süsteemi toimimise juures mängivad väga suurt rolli 2 skripti: ühe seadistus näitab milline on meie võrk ehk kust skännitavaid seadmeid leida ning teine kirjeldab kuidas infot seadmetest koguda (''Linux'' ja MS platvorimide tarvis eraldi skriptid info kogumiseks).
 
 
Kuna minu lahendus on seadistatud infot korjama domeenist, on ka vastav skript, IT süsteemi kohta (all pool detailsemalt), seadistatud domeeni tarvis. Skript tuleb käivitada masinst ja õigustes, millel on kõikide teiste masinate puhul lubatud WMI ligipääs, ilma nende kahe kriteeriumita lihtsalt ole võimalik masina kohta infot koguda. Protsess näeb väja umbese järgmine: käivitub domeenikontrollerist auditeerimisskripti mis võtab endale ette ''ActiveDirectoryist'' masinate nimekirja ja hakkab neist ükshaaval infot koguma. Iga masina inspekteerimise lõpus saadetakse tema info ''Linuxi ''masinasse ning talletatakse ''MySQL'' baasi. Kui kogu masinapargi info baasis koos, saab sellele ligi ning andmeid pärida läbi kenade PHP lehtede, mida jooksutab samas masinas olev veebiserver. Skänneerimise hetkel peab olmea skänneeritav masin võrgus ning sisse lülitatud, vastasel juhul jäetakse host vahele (jääb temale eelmise skänni info) ning järgmine kord üritatakse uuesti ühenduda informatsiooni kogumiseks.
 
=Installeerimine=
 
Kuna enmus järgmistest käskudest on vaja sisestada konsooli ''root'' õigustes ning ''Ubuntu ''puhul on küllaltki tülikas iga käsu ette kirjutada ''sudo ''siis kasutame korraldust:
<pre>sudo -i</pre>
Peale korrektse parooli sisestamist on meil ''root ''õigustes konsool ning puudub vajadus ''sudo'' korraldusele käskude ees.
 
 
Uuenda repositooriumite nimekirja:
<pre>apt-get update</pre>
Uuenda süsteemi:
<pre>apt-get upgrade</pre>
Kui uuenduste hulgas oli ka uus ''kernel, ''tuleks peale uuendamist teha masinale restart!
 
 
Installi veebiserver:
<pre>apt-get install apache2</pre>
Installi MySQL server:
<pre>apt-get install mysql-server</pre>
''(mysql-server installi käigus küsitakse mysql-serverile root kasutaja parooli, sisesta see 2 korda vastavalt ekraanil olevatele korraldustele. Ära unusta seda parooli, seda on vaja hiljem openAudit lehe käivitamisel ning üldiseteks mysql administreerivateks tegevusteks.)''
 
Installi PHP:
<pre>apt-get install php5 php5-mysql</pre>
Installi SVN klient:
<pre>apt-get install subversion</pre>
 
=Konfigureerimine=
 
Seadistamise osas on iga etapi juures samuti oluline ''root'' kasutaja õigused. Kui ''root'' kasutaja õigused puuduvad on võimalik need saada käsuga:
 
<pre>sudo -i</pre>
 
== Nimelahenduse loomine ==
Tekitame oma masinale nimelahenduse, selleks kontrolli oma masina IP'd käsuga:
<pre>ifconfig</pre>
 
Lisa '''/etc/''hosts''''' faili read:
<pre>
127.0.0.1 audiitor.lan audiitor
<Masina IP> audiitor.lan audiitor
</pre>
 
Nüüd oleks mõistlik muuta ka masina nimi sobivaks, lisades selle faili '''''/etc/hostname:'''''
<pre>
echo audiitor > /etc/hostname
hostname audiitor
</pre>
 
Uue nime rakendamiseks logi korra ''root ''kasutajast välja:
<pre>logout</pre>
....ning uuesti ''root'' õigustesse tagasi:
<pre>sudo -i</pre>
 
Nimelahenduse töötamist saad kontrollida käsuga:
<pre>ping audiitor</pre>
...peab saama vastused õigelt IP'lt.
 
== Tulemüüris portide avamine ==
Kui tulemüürina on vaikimisi rakendatud ''Ubuntu'' sisse ehitatud ''UFW müüri, ''tuleb kontrollida milliseid protokolle serverile ligi lubatakse. Reegleid näeb käsuga (eeldusel et ''UFW ''teenus on rakendatud):
 
<pre>ufw status</pre>
 
Kui nimekirjas ei ole '''http '''(''80/tcp'')''' '''ega '''SSH '''(''22'') lubavaid reegleid saab need lisada:
<pre>ufw allow http</pre>
<pre>ufw allow ssh</pre>
 
Kui on soov kasutada krüpteeritud liiklust ('''https://''') veebilehe ja kliendi vahel, tuleb lubada port 443:
<pre>ufw allow https</pre>
''(https:// tuleb openAudit lehel eraldi sisse lülitada, vaikimisi ei ole!)''
 
== Veebiserveri seadistamine ==
 
Restardi veebiserver:
<pre>service apache2 restart</pre>
 
Loo kataloog '''''/var/www/audiitor'':'''
<pre>mkdir /var/www/audiitor</pre>
 
Pane veebiserverile nimi, selleks lisa rida faili '''''/etc/apache2/apache2.conf. '''''Viisakas oleks kirjutada rea ''ServerRoot "/etc/apache2" ''alla''''':'''''
<pre>ServerName web.audiitor.lan</pre>
 
Kopeeri kaustast '''/etc/apache2/sites-available/ '''''default'' konfiguratsioon ning loo sellest '''audiitor '''nimeline koopia:
<pre>cp -v /etc/apache2/sites-available/default /etc/apache2/sites-available/audiitor</pre>
 
Ava '''audiitor '''konfiguratsioonifail lemmik tekstiredakotoriga:
<pre>vim /etc/apache2/sites-available/audiitor</pre>
...ning muuda järgnevaks:
<pre>
<VirtualHost *:80>
 
        ServerAdmin webmaster@audiitor.lan
        ServerName audiitor.lan
        DocumentRoot /var/www/audiitor
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/audiitor>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        </Directory>
 
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>
 
        ErrorLog /var/log/apache2/audiitor.error.log
 
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog /var/log/apache2/audiitor.access.log combined
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
 
</VirtualHost>
</pre>
 
 
Korrektseks toimimiseks keelame veebiserveril ''default'' lehe:
<pre>a2dissite default</pre>
...ja lubame lehe '''audiitor:'''
<pre>
a2ensite audiitor
service apache2 reload
service apache2 restart
</pre>
 
Kontrolliks võib vaadata kausta /etc/apache2/sites-enabled sisu:
<pre>ls -l /etc/apache2/sites-enabled/</pre>
...mille sisuks peab olema:
<pre>audiitor -> ../sites-available/audiitor</pre>
 
== OpenAudit failid ==
OpenAudit rakenduse failid asuvad SVN repositooriumis ''sourceforge.net ''lehel. Kõige uuemate failide allalaadimiseks oma masinasse tuleb kasutada varem installitud SVN klienti.
 
 
Loo kataloog kuhu failid serverist laadida:
<pre>mkdir OAfiles</pre>
 
Lae SVN'ist uusimad töötavad (stabiilsed) failid loodud kataloogi:
<pre>svn co https://open-audit.svn.sourceforge.net/svnroot/open-audit ./OAfiles/</pre>
 
Kopeeri veebilehele vajalikud failid SVN trunkist saidi juurikasse:
<pre>cp -vR OAfiles/trunk/* /var/www/audiitor/</pre>
 
Muudatuste rakendamiseks:
<pre>service apache2 restart</pre>
 
== OpenAudit veebi käivitamine ==
Mine ''browsergia'' loodud saidi aadressil:
<pre>http://audiitor.lan</pre> või <pre>http://<ServeriIP></pre>
''(Pöördudes veebiserveri poole nime alusel ja mitte masinast kus veebiserver asub, tuleb teha pöörduvasse masinasse nimelahendus hosts faili. Vastates seal nime ning IP.)''
 
Järgi veebilehel kuvatavaid instruktsioone installatsiooni lõpetamiseks.
 
Peale keele valikut raporteeritakse kahe faili puudumisest või õiguste puudumisest. Veebilehitsejas näeb olukord välja selline:
<table align="center">
<tr><td>[[Image:Web.include_config.audit.config.png|600px|Failide loomine]]</td></tr>
</table>
Neid kahte faili ('''''include_config.php''''' ja '''''scripts/audit.config''''') ei eksisteeri, nende loomiseks ja korrektseteks õigusteks tuleb konsoolis (audiitor serveris) sisestada järgmised käsud:
<pre>
touch /var/www/audiitor/include_config.php
chmod 646 /var/www/audiitor/include_config.php
touch /var/www/audiitor/scripts/audit.config
chmod 646 /var/www/audiitor/scripts/audit.config
</pre>
 
Vajuta veebilehel '''''retry''''', enam ei tohiks nende failidega probleemi olla. Peale ''continue'' vajutades vali: '''''I have Root access to database '''''ning ''Submit. ''
 
 
Järgmisel lehel jäta täidetud väljad nii nagu need on ning sisesta ''MySQL'' serveri root parool (määrasid ''mysql-server'' installi käigus). Alternatiivina võib kasutada ka mõnda muud ''mysql'' kasutajat kui mõni selline loodud on. Selleks tuleb vahetada siis ka kasutajanimi vastavaks.
 
 
Jälgi juhiseid ekraanil ning ongi kõik, ''openAudit ''server on valmis infot vastu võtma. OA avaleht näeb välja selline kui ei ole veel andmeid baasis:
<table align="center">
<tr><td>[[Image:Web.OA.avaleht.png|600px|Failide loomine]]</td></tr>
</table>
 
 
 
OpenAudit server on nüüd installitud ja valmis. Järgmisena tuleb seadistada skriptid mis infot korjama ning saatma hakkavad.
 
== Audiitor skriptid ==
Järgmisena valmista ette skriptid masinapargi skännimiseks. Vajalikud failid on ''audiitor'' veebiserveri kataloogis:
 
<pre>
/var/www/audiitor/scripts/audit.config
/var/www./audiitor/scripts/audit.vbs
</pre>
....kopeeri need 2 skripti lokatsiooni kust hiljem neid käivitama hakkad. Näiteks domeenikontroller või mingi masin millel on ligipääs teistele domeeniseadmetele.
 
=== Audit.vbs ===
Otsi üles alljärgnev lõik ning seadista oma serverile vastavaks
<pre>
this_config_url = "%host_url%"
if (left(this_config_url,1) = "%") then
this_config_url = "http://''<ServeriIP>''/list_export_config.php"
end if
</pre>
...ehk '''config_url''' muutujas tuleb õigeks määrata serverinimi (''<ServerIP>'' asemele oma masina IP või nimi). NB kui on sisse lülitatud ''https:// ''siis tuleb ka URL alguses http:// asemele https://! Kui ei ole kindel oma audiitorserveri nimelahendamises teiste masinate poolt on mõistlik sinna kirjutada audiitori IP.
 
=== Audit.config ===
Tegemist on skriptiga mis kirjeldab audiitor masinale milline domeen välja näeb ja kuidas seda skaneerida. Täpsemalt saab lugeda selle [http://www.open-audit.org/phpBB3/viewtopic.php?f=6&t=1464 skripti loomise kohta siit] ning lahti seletatult [http://www.open-audit.org/phpBB3/viewtopic.php?f=6&t=1393 muutujate tähendused skriptis.]
 
Välja võiks näha see umbes nii, asendades mõned süsteemile omased väärtused (''<ServeriIP>, <domain> jne.'') vastavalt olukorrale :
<pre>
'
' Standard audit section
'
audit_location = "r"
verbose = "y"
 
audit_host="http://''<ServeriIP>''"
 
online = "yesxml"
strComputer = ""
ie_visible = "n"
ie_auto_submit = "y"
ie_submit_verbose = "n"
 
ie_form_page = " http://''<ServeriIP>''//admin_pc_add_1.php"
 
non_ie_page = " http://''<ServeriIP>''//admin_pc_add_2.php"
 
input_file = ""
 
'
' Email authentication
'
'
 
email_to = ""   
email_from = ""
'email_sender = "Open-AudIT"
email_server = ""                      ' IP address or FQDN
email_port = "25"                      ' The SMTP port
email_auth = "1"                      ' 0 = Anonymous, 1 = Clear-text Authentication, 2 = NTLM
email_user_id = ""                    ' A valid Email account in user@domain format
email_user_pwd = ""                    ' The SMTP email password
email_use_ssl = "false"                ' True/False
email_timeout = "60"                  ' In seconds
send_email = "false"                  ' True/False - Enable/Disable email sending
 
audit_local_domain = "y"
'
' Set domain_type = 'nt' for NT4 or SAMBA otherwise leave blank or set to ldap
domain_type = "ldap"
 
local_domain = "LDAP://''<domain>''"
 
 
'
' Example Set Domain name for NT ONLY for LDAP use the above format
' NOTE This is Case Sensetive. See the example below.
'
'local_domain = "WinNT://IEXPLORE"
'local_domain = "WinNT://<domainname>"
'
 
hfnet = "n"
Count = 0
number_of_audits = 5
script_name = "audit.vbs"
monitor_detect = "y"
printer_detect = "y"
software_audit = "y"
uuid_type = "uuid"
'
' Nmap section
'
nmap_tmp_cleanup = true                        ' Set this false if you want to leave the tmp files for analysis in your tmp folder
nmap_subnet = "''<subnet>''"                    ' The subnet you wish to scan
nmap_subnet_formatted = "''<xxx.xxx.xxx.xxx>''" ' The subnet padded with 0's
nmap_ie_form_page = "https://<ServeriIP>//admin_nmap_input.php"
nmap_ie_visible = "n" 
nmap_ie_auto_close = "y"
nmap_ip_start = 1
nmap_ip_end = 254
nmap_syn_scan = "y"      ' Tcp Syn scan
nmap_udp_scan = "y"      ' UDP scan
nmap_srv_ver_scan = "y"  ' Service version detection.
nmap_srv_ver_int = 9    ' Service version detection intensity level. Values 0-9, 0=fast
</pre>
 
Skriptide käivitamiseks loo .''bat'' või .''cmd'' fail samasse kataloogi kus skriptid ise asuvad ning sinna kirjuta:
<pre>cscript audit.vbs</pre>
Käivita loodud ''.bat ''fail mis käivitab skriptid, tuues kaasa auditeerimise. Kui skriptid on oma töö lõpetanud (''cmd'' aknad kadunud) võib minna [http://audiitor.lan/ http://audiitor.lan] ning seal korjatud infot juba ilusal, struktureeritud kujul näha. NB! Tegemist on hetkel ainult MS platvormil töötava skriptiga, ''Linux ''skännimiseks on eraldi failid.
 
= Varundamine ja taastamine. =
Varundamist vajavad järgmised asjad, ''MySQL ''baas, veebilehe konfiguratsioonifailid (kui on millegipärast oluline veebirakenduse versioon siis kogu veebilehe failid), veebiserveri konfiguratsiooni failid, tulemüüri reeglid, ''Mysql-server ''konfiguratsiooni failid'','' audiitor-skriptid, logifailid. Need nimetatud komponendid tuleb kopeerida turvalisse asukohta ning siis vajadusel sealt tagasi taastada.
 
== MySQL baas ==
Baasi haldamiseks ning varundamiseks võib kasutada näiteks '''phpMyAdmin’'''i. Baasi nimi on ''openaudit.''
Installimiseks:
<pre>apt-get install phpmyadmin</pre>
Installeeritud ''phpmyadmin’i'' saad kasutada pöörudes veebiserveri poole:
<pre>http://audiitor.lan/phpmyadmin</pre>
...sisse logimiseks kasuta ''mysql ''kasutajat. ''Mysql-serveri''  installimisel aktiveerisid ''mysql root'' kasutaja, kasuta parooli mis sa installi käigus sisestasid ning kasutaja nimi on ''root.''
 
Teine võimalus on käsurealt teha baasist koopia ning see kusagile turvalise kohta panna. Baasi kopeerimiseks:
<pre>mysqldump -u root -p openaudit > openaudit.bak.sql</pre>
Taastamiseks käsurealt tuleb see fail uuesti baasiks kopeerida:
<pre>mysql -u root -p openaudit < openaudit.bak.sql</pre>
 
== Veebiserveri konfiguratsioon ja veeb ==
Konfiguratsiooni failidest on tarvis varundada:
<pre>
/etc/apache2/apache2.conf
/etc/apache2/sites-available/audiitor
</pre>
Veebilehe sisulistest failidest võiks talletada kasutaja eelistusi hoidvat faili:
<pre>/var/www/audiitor/include_config.php</pre>
Kuna mahud pole suured võib varundada kogu ''audiitor ''kataloogi sisu, mis tähendab terve veebilehe varundamist.


Taastamiseks kopeeri needsamad failid samadesse kohtadesse tagasi.


Auditeerimiseks vajalikud elemendid (veebiserver ja andmebaas) installin täiesti eraldiseisvale masinale, mille operatsioonisüsteemiks '''Ubuntu Server 10.04 LTS.''' Võimalik on infot koguda käsitsi, käivitades erinevates masinates skript manuaalselt (minnes auditi veeblehele ning sealt käivitades). Automatiseerides olukorda, käivitatakse skript tsentraalses masinas, mis siis etteantud reeglite järgi kõik seadmed läbi käib (käivitajaks võib olla ka seesama ''linuxi ''baasil server). Minu konfiguratsioonifailid on seadistatud domeenimasinaid uurima st skriptid käivitatakse kesksest masinast ning läbi uuritakse domeenis eksisteerivad ''hostid'', millisete leidmise parameetrid on konfiguratsioonifailis kirjas. Info korjamiseks kasutatakse piisavate õigustega domeenikasutajat.
== Tulemüüri reeglide varundamine ==
Kirjuta käiva tulemüüri reeglid faili:
<pre>iptables-save > iptables.conf</pre>
...varunda loodud fail turvaliselt.


Taastamisel loe reeglid uuesti failist reaalsesse müüri:
<pre>iptables-restore < iptables.conf</pre>


On 2 põhilist skriptifaili, üks nendest sisaldab infot kuidas ja milliseid andmeid masinatest koguda. Teine on skript mis ''kirjeldab'' auditeeritavat ''ala'' ehk räägib esimesele skriptile kuskohast ja kuidas masinaid leida. Kui on leitud masin, kogutud info siis viimase asjana saadetakse need andmed tagasi audiitor serverile (meie Ubuntu). Server võtab andmed vastu ning talletab need vastavalt struktuurile andmebaasi. Minu lahenduse korral asub ka audiitor serveris veebiserver. Selle vahendatud PHP lehtede kaudu saame sellesama informatsiooni kätte meeldivate veebilehtedena. Skriptide käivitamise asukohaks valisin primaarse domeenikontrolleri.  
== MySQL serveri konfiguratsioonifailid ==
Kui on tehtud mingisuguseid spetsiifilisi või täiendavadi häälestusi, tuleks varundada kataloog:
<pre>/etc/mysql</pre>
...kõige olulisemad on sellest kaustast failid ''debian.cnf ''ning ''my.cnf. ''Varundamisel tõsta need peale ''mysql-server'' installimist samasse kataloogi tagasi.


== MySQL serveri konfiguratsioonifailid ==
Loomulikult on väga mõistlik varundada ka meie süsteemile seadistaud nn audiitor-skriptid:
<pre>
audit.vbs
audit.config
</pre>


Kõik see tagab meile suhteliselt adekvaatse ning ''up-to-date'' andmed masinapargi kohta. Kindluse mõttes võib enne andmete pärimist lasta käia skriptidel üle võrgu, et saada viimane informatsioon. Tegelikult on olemas veel skripte mida üksteise järgi käivitatakse. Antud arktikkel kajastab ainult ''Microsoft Windows'' masinate andmete kogumist aga samas saab lisada veel skripti mis kogub andmeid ''Unix/Linux'' baasil masinatest ning ka skripti mis uurib võrku ja porte ning IP aadresse ning võrku detailsemalt, koostades sellest eraldi andmed. Need samad skriptid on võimalik panna järjest käivituma st üks kutsub oma töö lõpus välja järgmise jne! Olenevalt meie masinapargu suurusest ning kaasatud skriptide arvust võib audiitormasinal info kogumine aega võtta.
== Logid ==
Olenevalt vajadusest tuleks regulaarselt varundada ning säilitada ka logisid. Tihedus ja detailsus määra vastavalt nõutule või vajadusele. Logid mida varundada võiksid olla järgmised:
<pre>
/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/apache2/audiitor.access.log
/var/log/apache2/audiitor.error.log
/var/log/mysql/error.log
/var/log/ufw.log
</pre>


=Lingid=
=Lingid=
#[http://www.open-audit.org OpenAudit ametlik veebileht]
#[http://www.open-audit.org OpenAudit ametlik veebileht]
#[http://www.open-audit.org/phpBB3/ OpenAudit kommuuni foorumid]
#[http://www.open-audit.org/phpBB3/ OpenAudit kommuuni foorumid]
#[http://ubuntuforums.org/ Ubuntu Foorumid]

Latest revision as of 21:24, 25 November 2010

OpenAudit installeerimine LAMP serveril.

Autor: Martin Leisberg
Versioon: 1.0
Loodud: 26.09.2010
mleisber@itcollege.ee

Sissejuhatus

Artikkel räägib rakendusest [openAudit], mis võiks IT süsteemiadministraatorite mõningaid igapäevaseid tegevusi hõlbustada...kergendada. IT inimesed teavad reeglina kõik, kui raske on hoida ajakohasena informatsiooni firmas oleva riistavara/tarkvara/litsentside/printerite jne jne kohta. Loomuliklut ei kehti see ütleme nii 10 masinaga firma vaatenurgast, kuigi ka seal võib see tüütust piisavalt valmistada.


OpenAudit on rakendus, mis ütleb sulle täpselt mis on su võrgus, kuidas see seadistatud on ja millal on sellega muutused toimunud. Töötab nii Microsoft kui ka Linuxi platvormidel. Põhiolemuselt on tegemist informatsiooni andmebaasiga, millele esitatakse päringuid läbi lihtsa veebiliidese (veebileht). Info võrgu kohta saab baasi läbi Bash skripti (Linux) või läbi VBScript'i (Microsoft).Terve rakendus on kirjutatud kasutades PHP'd, bash'i ja vbscript'i. Nagu näha on tegemist nn „skriptimis“ keeltega, ei ole vaja mingit kompileerimist, muutes nii igaühel kohandamise ning vastavalt vajadustele seadistamise väga mugavaks.


Windowsi baasil PC'de kohta saab pärida näiteks riistvara, tarkvara, operatsioonisüsteemi seadete, turvaseadete, IIS seadete, teenuste, kasutajate ja gruppide ning palju palju muu kohta. Linux baasil masinatest saab pärida suhteliselt samasugust informatsiooni. Võrguseadmete (printerid, switchid, ruuterid jne) kohta talletatakse IP aadressid, MAC aadressid, avatud pordid, seerianumbrid jne jne. Infot saab automaatselt genereerida veebilehe asemel alternatiivselt PDF raportile või CSV formaati.


OpenAuditit on võimalik seadistada meie võrku ja seadmeid skänneerima automaatselt. Soovitatakse teha üks skänn päevas seadmete kohta ning võrgu kohta iga paari tunni tagant (ilmselt liiga paranoialine arvamus, tarkvara autoritelt). Sellega tagame ajakohase info kui midagi on seadmetes või võrgus muutunud/muutumas.

Eeldused

  • Riistvaralised standalone masinale:
  • 128 MB RAM
  • 10 GB HDD
  • LAN
  • Hoides kogu audiitori funktsionaalsust vabavarana siis Ubuntu 10.04 Server LTS, LAMP server. (Antud juhend on tehtud just selle operatsioonisüsteemi baasil)
  • Mugavaks installeerimiseks OpenAudit masina ligipääs internetile.
  • Kasutajakonto millel on WMI ligipääs kõikidele masinatele millistest tahetakse infot korjata (Microsoft masinad).
  • Administraatoril peavad olema baasteadmised kasutamaks Linuxi konsooli.
  • Administraatoril peavad olema baasteadmised Linuxi failiõigustest.
  • Administraator peab teadma auditeeritava arvutivõrgu ehitust ning struktuuri.
  • Kasuks tuleb MySQL'i kasutamise oskus käsurealt.
  • Masin või seade kust käivitades on info korjamise skriptil ligipääs kõikidele auditisse tulevatele masinatele ning teistpidi on ligipääs OpenAudit masinasse korjatud andmete talletamiseks.
  • root ligipääs Linux masinas või muud administreerimist ja installeerimist teha võimaldav kasutaja.
  • Tulemüüris peab olema avatud http port (80).

Teenuse üldkirjeldus

Lõpptulemusena on meil installitud Linuxi baasil masin, milles jookseb veebiserver, MySQL andmebaas ning nende kahe vahel PHP. Süsteemi toimimise juures mängivad väga suurt rolli 2 skripti: ühe seadistus näitab milline on meie võrk ehk kust skännitavaid seadmeid leida ning teine kirjeldab kuidas infot seadmetest koguda (Linux ja MS platvorimide tarvis eraldi skriptid info kogumiseks).


Kuna minu lahendus on seadistatud infot korjama domeenist, on ka vastav skript, IT süsteemi kohta (all pool detailsemalt), seadistatud domeeni tarvis. Skript tuleb käivitada masinst ja õigustes, millel on kõikide teiste masinate puhul lubatud WMI ligipääs, ilma nende kahe kriteeriumita lihtsalt ole võimalik masina kohta infot koguda. Protsess näeb väja umbese järgmine: käivitub domeenikontrollerist auditeerimisskripti mis võtab endale ette ActiveDirectoryist masinate nimekirja ja hakkab neist ükshaaval infot koguma. Iga masina inspekteerimise lõpus saadetakse tema info Linuxi masinasse ning talletatakse MySQL baasi. Kui kogu masinapargi info baasis koos, saab sellele ligi ning andmeid pärida läbi kenade PHP lehtede, mida jooksutab samas masinas olev veebiserver. Skänneerimise hetkel peab olmea skänneeritav masin võrgus ning sisse lülitatud, vastasel juhul jäetakse host vahele (jääb temale eelmise skänni info) ning järgmine kord üritatakse uuesti ühenduda informatsiooni kogumiseks.

Installeerimine

Kuna enmus järgmistest käskudest on vaja sisestada konsooli root õigustes ning Ubuntu puhul on küllaltki tülikas iga käsu ette kirjutada sudo siis kasutame korraldust:

sudo -i

Peale korrektse parooli sisestamist on meil root õigustes konsool ning puudub vajadus sudo korraldusele käskude ees.


Uuenda repositooriumite nimekirja:

apt-get update

Uuenda süsteemi:

apt-get upgrade

Kui uuenduste hulgas oli ka uus kernel, tuleks peale uuendamist teha masinale restart!


Installi veebiserver:

apt-get install apache2

Installi MySQL server:

apt-get install mysql-server

(mysql-server installi käigus küsitakse mysql-serverile root kasutaja parooli, sisesta see 2 korda vastavalt ekraanil olevatele korraldustele. Ära unusta seda parooli, seda on vaja hiljem openAudit lehe käivitamisel ning üldiseteks mysql administreerivateks tegevusteks.)

Installi PHP:

apt-get install php5 php5-mysql

Installi SVN klient:

apt-get install subversion

Konfigureerimine

Seadistamise osas on iga etapi juures samuti oluline root kasutaja õigused. Kui root kasutaja õigused puuduvad on võimalik need saada käsuga:

sudo -i

Nimelahenduse loomine

Tekitame oma masinale nimelahenduse, selleks kontrolli oma masina IP'd käsuga:

ifconfig

Lisa /etc/hosts faili read:

127.0.0.1 audiitor.lan audiitor
<Masina IP> audiitor.lan audiitor

Nüüd oleks mõistlik muuta ka masina nimi sobivaks, lisades selle faili /etc/hostname:

echo audiitor > /etc/hostname
hostname audiitor

Uue nime rakendamiseks logi korra root kasutajast välja:

logout

....ning uuesti root õigustesse tagasi:

sudo -i

Nimelahenduse töötamist saad kontrollida käsuga:

ping audiitor

...peab saama vastused õigelt IP'lt.

Tulemüüris portide avamine

Kui tulemüürina on vaikimisi rakendatud Ubuntu sisse ehitatud UFW müüri, tuleb kontrollida milliseid protokolle serverile ligi lubatakse. Reegleid näeb käsuga (eeldusel et UFW teenus on rakendatud):

ufw status

Kui nimekirjas ei ole http (80/tcp) ega SSH (22) lubavaid reegleid saab need lisada:

ufw allow http
ufw allow ssh

Kui on soov kasutada krüpteeritud liiklust (https://) veebilehe ja kliendi vahel, tuleb lubada port 443:

ufw allow https

(https:// tuleb openAudit lehel eraldi sisse lülitada, vaikimisi ei ole!)

Veebiserveri seadistamine

Restardi veebiserver:

service apache2 restart

Loo kataloog /var/www/audiitor:

mkdir /var/www/audiitor

Pane veebiserverile nimi, selleks lisa rida faili /etc/apache2/apache2.conf. Viisakas oleks kirjutada rea ServerRoot "/etc/apache2" alla:

ServerName web.audiitor.lan

Kopeeri kaustast /etc/apache2/sites-available/ default konfiguratsioon ning loo sellest audiitor nimeline koopia:

cp -v /etc/apache2/sites-available/default /etc/apache2/sites-available/audiitor

Ava audiitor konfiguratsioonifail lemmik tekstiredakotoriga:

vim /etc/apache2/sites-available/audiitor

...ning muuda järgnevaks:

<VirtualHost *:80>

         ServerAdmin webmaster@audiitor.lan
         ServerName audiitor.lan
         DocumentRoot /var/www/audiitor
         <Directory />
                 Options FollowSymLinks
                 AllowOverride None
         </Directory>
         <Directory /var/www/audiitor>
                 Options Indexes FollowSymLinks MultiViews
                 AllowOverride None
                 Order allow,deny
                 allow from all
         </Directory>

         ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
         <Directory "/usr/lib/cgi-bin">
                 AllowOverride None
                 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                 Order allow,deny
                 Allow from all
         </Directory>

         ErrorLog /var/log/apache2/audiitor.error.log

         # Possible values include: debug, info, notice, warn, error, crit,
         # alert, emerg.
         LogLevel warn
 
         CustomLog /var/log/apache2/audiitor.access.log combined
 
     Alias /doc/ "/usr/share/doc/"
     <Directory "/usr/share/doc/">
         Options Indexes MultiViews FollowSymLinks
         AllowOverride None
         Order deny,allow
         Deny from all
         Allow from 127.0.0.0/255.0.0.0 ::1/128
     </Directory>

 </VirtualHost>


Korrektseks toimimiseks keelame veebiserveril default lehe:

a2dissite default

...ja lubame lehe audiitor:

a2ensite audiitor
service apache2 reload
service apache2 restart

Kontrolliks võib vaadata kausta /etc/apache2/sites-enabled sisu:

ls -l /etc/apache2/sites-enabled/

...mille sisuks peab olema:

audiitor -> ../sites-available/audiitor

OpenAudit failid

OpenAudit rakenduse failid asuvad SVN repositooriumis sourceforge.net lehel. Kõige uuemate failide allalaadimiseks oma masinasse tuleb kasutada varem installitud SVN klienti.


Loo kataloog kuhu failid serverist laadida:

mkdir OAfiles

Lae SVN'ist uusimad töötavad (stabiilsed) failid loodud kataloogi:

svn co https://open-audit.svn.sourceforge.net/svnroot/open-audit ./OAfiles/

Kopeeri veebilehele vajalikud failid SVN trunkist saidi juurikasse:

cp -vR OAfiles/trunk/* /var/www/audiitor/

Muudatuste rakendamiseks:

service apache2 restart

OpenAudit veebi käivitamine

Mine browsergia loodud saidi aadressil:

http://audiitor.lan

või

http://<ServeriIP>

(Pöördudes veebiserveri poole nime alusel ja mitte masinast kus veebiserver asub, tuleb teha pöörduvasse masinasse nimelahendus hosts faili. Vastates seal nime ning IP.)

Järgi veebilehel kuvatavaid instruktsioone installatsiooni lõpetamiseks.

Peale keele valikut raporteeritakse kahe faili puudumisest või õiguste puudumisest. Veebilehitsejas näeb olukord välja selline:

Failide loomine

Neid kahte faili (include_config.php ja scripts/audit.config) ei eksisteeri, nende loomiseks ja korrektseteks õigusteks tuleb konsoolis (audiitor serveris) sisestada järgmised käsud:

touch /var/www/audiitor/include_config.php
chmod 646 /var/www/audiitor/include_config.php
touch /var/www/audiitor/scripts/audit.config
chmod 646 /var/www/audiitor/scripts/audit.config

Vajuta veebilehel retry, enam ei tohiks nende failidega probleemi olla. Peale continue vajutades vali: I have Root access to database ning Submit.


Järgmisel lehel jäta täidetud väljad nii nagu need on ning sisesta MySQL serveri root parool (määrasid mysql-server installi käigus). Alternatiivina võib kasutada ka mõnda muud mysql kasutajat kui mõni selline loodud on. Selleks tuleb vahetada siis ka kasutajanimi vastavaks.


Jälgi juhiseid ekraanil ning ongi kõik, openAudit server on valmis infot vastu võtma. OA avaleht näeb välja selline kui ei ole veel andmeid baasis:

Failide loomine


OpenAudit server on nüüd installitud ja valmis. Järgmisena tuleb seadistada skriptid mis infot korjama ning saatma hakkavad.

Audiitor skriptid

Järgmisena valmista ette skriptid masinapargi skännimiseks. Vajalikud failid on audiitor veebiserveri kataloogis:

/var/www/audiitor/scripts/audit.config
/var/www./audiitor/scripts/audit.vbs

....kopeeri need 2 skripti lokatsiooni kust hiljem neid käivitama hakkad. Näiteks domeenikontroller või mingi masin millel on ligipääs teistele domeeniseadmetele.

Audit.vbs

Otsi üles alljärgnev lõik ning seadista oma serverile vastavaks

this_config_url = "%host_url%"
if (left(this_config_url,1) = "%") then
this_config_url = "http://''<ServeriIP>''/list_export_config.php"
end if

...ehk config_url muutujas tuleb õigeks määrata serverinimi (<ServerIP> asemele oma masina IP või nimi). NB kui on sisse lülitatud https:// siis tuleb ka URL alguses http:// asemele https://! Kui ei ole kindel oma audiitorserveri nimelahendamises teiste masinate poolt on mõistlik sinna kirjutada audiitori IP.

Audit.config

Tegemist on skriptiga mis kirjeldab audiitor masinale milline domeen välja näeb ja kuidas seda skaneerida. Täpsemalt saab lugeda selle skripti loomise kohta siit ning lahti seletatult muutujate tähendused skriptis.

Välja võiks näha see umbes nii, asendades mõned süsteemile omased väärtused (<ServeriIP>, <domain> jne.) vastavalt olukorrale :

 '
 ' Standard audit section
 '
 audit_location = "r" 
 verbose = "y" 

 audit_host="http://''<ServeriIP>''"

 online = "yesxml" 
 strComputer = "" 
 ie_visible = "n" 
 ie_auto_submit = "y" 
 ie_submit_verbose = "n" 

 ie_form_page = " http://''<ServeriIP>''//admin_pc_add_1.php"

 non_ie_page = " http://''<ServeriIP>''//admin_pc_add_2.php"

 input_file = "" 

 '
 ' Email authentication 
 '
 '

 email_to = ""     
 email_from = ""
 'email_sender = "Open-AudIT"
 email_server = ""                      ' IP address or FQDN
 email_port = "25"                      ' The SMTP port
 email_auth = "1"                       ' 0 = Anonymous, 1 = Clear-text Authentication, 2 = NTLM
 email_user_id = ""                     ' A valid Email account in user@domain format
 email_user_pwd = ""                    ' The SMTP email password
 email_use_ssl = "false"                ' True/False
 email_timeout = "60"                   ' In seconds
 send_email = "false"                   ' True/False - Enable/Disable email sending 

 audit_local_domain = "y" 
 '
 ' Set domain_type = 'nt' for NT4 or SAMBA otherwise leave blank or set to ldap
 domain_type = "ldap"

 local_domain = "LDAP://''<domain>''"


 '
 ' Example Set Domain name for NT ONLY for LDAP use the above format
 ' NOTE This is Case Sensetive. See the example below.
 '
 'local_domain = "WinNT://IEXPLORE"
 'local_domain = "WinNT://<domainname>"
 ' 

 hfnet = "n" 
 Count = 0 
 number_of_audits = 5 
 script_name = "audit.vbs" 
 monitor_detect = "y" 
 printer_detect = "y" 
 software_audit = "y" 
 uuid_type = "uuid"
 '
 ' Nmap section
 '
 nmap_tmp_cleanup = true                         ' Set this false if you want to leave the tmp files for analysis in your tmp folder
 nmap_subnet = "''<subnet>''"                    ' The subnet you wish to scan
 nmap_subnet_formatted = "''<xxx.xxx.xxx.xxx>''" ' The subnet padded with 0's
 nmap_ie_form_page = "https://<ServeriIP>//admin_nmap_input.php"
 nmap_ie_visible = "n"  
 nmap_ie_auto_close = "y"
 nmap_ip_start = 1
 nmap_ip_end = 254
 nmap_syn_scan = "y"      ' Tcp Syn scan
 nmap_udp_scan = "y"      ' UDP scan
 nmap_srv_ver_scan = "y"  ' Service version detection.
 nmap_srv_ver_int = 9     ' Service version detection intensity level. Values 0-9, 0=fast

Skriptide käivitamiseks loo .bat või .cmd fail samasse kataloogi kus skriptid ise asuvad ning sinna kirjuta:

cscript audit.vbs

Käivita loodud .bat fail mis käivitab skriptid, tuues kaasa auditeerimise. Kui skriptid on oma töö lõpetanud (cmd aknad kadunud) võib minna http://audiitor.lan ning seal korjatud infot juba ilusal, struktureeritud kujul näha. NB! Tegemist on hetkel ainult MS platvormil töötava skriptiga, Linux skännimiseks on eraldi failid.

Varundamine ja taastamine.

Varundamist vajavad järgmised asjad, MySQL baas, veebilehe konfiguratsioonifailid (kui on millegipärast oluline veebirakenduse versioon siis kogu veebilehe failid), veebiserveri konfiguratsiooni failid, tulemüüri reeglid, Mysql-server konfiguratsiooni failid, audiitor-skriptid, logifailid. Need nimetatud komponendid tuleb kopeerida turvalisse asukohta ning siis vajadusel sealt tagasi taastada.

MySQL baas

Baasi haldamiseks ning varundamiseks võib kasutada näiteks phpMyAdmin’i. Baasi nimi on openaudit. Installimiseks:

apt-get install phpmyadmin

Installeeritud phpmyadmin’i saad kasutada pöörudes veebiserveri poole:

http://audiitor.lan/phpmyadmin

...sisse logimiseks kasuta mysql kasutajat. Mysql-serveri installimisel aktiveerisid mysql root kasutaja, kasuta parooli mis sa installi käigus sisestasid ning kasutaja nimi on root.

Teine võimalus on käsurealt teha baasist koopia ning see kusagile turvalise kohta panna. Baasi kopeerimiseks:

mysqldump -u root -p openaudit > openaudit.bak.sql

Taastamiseks käsurealt tuleb see fail uuesti baasiks kopeerida:

mysql -u root -p openaudit < openaudit.bak.sql

Veebiserveri konfiguratsioon ja veeb

Konfiguratsiooni failidest on tarvis varundada:

/etc/apache2/apache2.conf
/etc/apache2/sites-available/audiitor

Veebilehe sisulistest failidest võiks talletada kasutaja eelistusi hoidvat faili:

/var/www/audiitor/include_config.php

Kuna mahud pole suured võib varundada kogu audiitor kataloogi sisu, mis tähendab terve veebilehe varundamist.

Taastamiseks kopeeri needsamad failid samadesse kohtadesse tagasi.

Tulemüüri reeglide varundamine

Kirjuta käiva tulemüüri reeglid faili:

iptables-save > iptables.conf

...varunda loodud fail turvaliselt.

Taastamisel loe reeglid uuesti failist reaalsesse müüri:

iptables-restore < iptables.conf

MySQL serveri konfiguratsioonifailid

Kui on tehtud mingisuguseid spetsiifilisi või täiendavadi häälestusi, tuleks varundada kataloog:

/etc/mysql

...kõige olulisemad on sellest kaustast failid debian.cnf ning my.cnf. Varundamisel tõsta need peale mysql-server installimist samasse kataloogi tagasi.

MySQL serveri konfiguratsioonifailid

Loomulikult on väga mõistlik varundada ka meie süsteemile seadistaud nn audiitor-skriptid:

audit.vbs
audit.config

Logid

Olenevalt vajadusest tuleks regulaarselt varundada ning säilitada ka logisid. Tihedus ja detailsus määra vastavalt nõutule või vajadusele. Logid mida varundada võiksid olla järgmised:

/var/log/apache2/access.log
/var/log/apache2/error.log
/var/log/apache2/audiitor.access.log
/var/log/apache2/audiitor.error.log
/var/log/mysql/error.log
/var/log/ufw.log

Lingid

  1. OpenAudit ametlik veebileht
  2. OpenAudit kommuuni foorumid
  3. Ubuntu Foorumid