Labor 2: Keskne logiserver (Nxlog)
Labor 2 protokoll - Keskne logihaldus (Nxlog)
Kaarel Väinaste ja Rasmus Tetsmann(A32)
Ülesande püstitus
Luua kohalikus võrgus kahe masina vahel keskne logihaldus. Üheks masinaks on logiserver, mille püstitasime virtuaalmasinasse(Ubuntu 12.04 server) ja teiseks on klient, milleks kasutasime Windows 7 Home Premiumit, mis saadab oma logid logiserverisse läbides Elasticsearchi ja tulemust vaadatakse Kibanaga. Nxlogivalisime sellepärast, et see annab võimalusi väga hästi hallata Windowsi logisid. Programm on väga paindlik ja väga suure potentsiaaliga.
Serveri ja kliendi seadistus
Klient: Windows 7 Home Premium 64bit IP: 192.168.56.200
Server: Ubuntu Server 12.04 (64it) (Võib kasutada teisi versioone)
Serveri ip muutsime 192.168.56.201 (Kasutaja võib endale sobiva ip panna)
Nxlog
Paigaldamine
Nxlog'i paigaldame Windows 7 masinasse.
Programmi allalaadimis link: http://sourceforge.net/projects/nxlog-ce/files/latest/download
Seadistamine
Nüüd tuleb konfiguratsioonifaili muutmine
Seda konfi kasutades peab jälgima kahte rida:
- Kui on 64 bitine windows, siis kommenteerida define ROOT C:\Program Files\nxlog
- Kui on 32 bitine windows, siis kommenteerida define ROOT C:\Program Files (x86)\nxlog
- Kasutaja peab muutma ip vastavalt enda arvutile.
#64 bitise Windowsi puhul
#define ROOT C:\Program Files\nxlog
define ROOT C:\Program Files (x86)\nxlog
Moduledir %ROOT%\modules
CacheDir %ROOT%\data
Pidfile %ROOT%\data\nxlog.pid
SpoolDir %ROOT%\data
LogFile %ROOT%\data\nxlog.log
<Extension syslog>
#Pakub syslog tuge. Loob sõnumeid ja tegeleb kriitilisuse ja
#rakenduse valdkonna väärtustega
Module xm_syslog
</Extension>
<Input internal>
#Kogub sisemisi nxlog logisid
Module im_internal
</Input>
<Input eventlog>
#Kõik Security logid
#Kõik System logid, mis on neljanda taseme tähtsusega
Module im_msvistalog
Query <QueryList>\
<Query Id="0">\
<Select Path="Security">*</Select>\
<Select Path="System">*[System/Level=4]</Select>
</Query>\
</QueryList>
</Input>
<Input file_watch>
#Saab jälgida faili
Module im_file
File "C:\\Program Files (x86)\\nxlog\data\\nxlog.log"
SavePos TRUE
Exec $Message = to_json();
</Input>
<Input eventlog>
#Kogub logisid uuematelt Windowsi opsüsteemidelt
#Windows 2008, Vista ja hilisemad
#Windows 2003 ja vanemad puhul tuleb kasutada im_mseventlog
Module im_msvistalog
</Input>
<Output out>
#Muuta IP-aadress ja port vastavalt
#logiserveri seadistustele
Module om_tcp
Host 192.168.56.200
Port 10515
#Muudab väljundi IETF syslog vormingusse
Exec to_syslog_ietf();
</Output>
<Route 1>
#Sisenditest eventlog ja internal kogutud logid
#saadetakse väljundisse out
Path eventlog, internal => out
</Route>
Enamus konfiguratsioonist pärineb siit [1] kuid on tehtud mõningad muudatused. See konfiguratsioonifail suudab filtreerida välja kõik turvalisusega seotud logid ja süsteemi logid, mis on väga ohtlikud. Lisaks saab kasutaja määrata suvalise falili, mille muudatuste kohta saadetakse logisid.
Rsyslog
Kasutatud käskude allikas: [2]
Paigaldamine tehtud Ubuntu Client 32bit peal. Kõik käsud tuleb sisestada root kasutaja õigustes. Rsyslog on logiklient, mis saadab logisid seadistatud serverile
Paigaldus
apt-get install rsyslog
Järgmisena tuleb ära muuta rsyslogi konfiguratsioonifail
nano /etc/rsyslog.conf
Konfiguratsioonifaili lisada rida
# Edastab kõik sündmused logiserverile, TCP port 10514
*.* @@192.168.56.201:10514
Peale seda teha teenusele restart
service rsyslog restart
Logstash´i paigaldamine ja seadistamine
Kasutatud käskude allikas: [3]
Kõik käsud tuleb sisestada root kasutaja õigustes.
Openjdk paigaldus:
apt-get install openjdk-7-jre
Logstashi kausta loomine:
mkdir /etc/logstash
Logstashi allalaadimine:
wget https://logstash.objects.dreamhost.com/release/logstash-1.1.12-flatjar.jar
Allalaaditud faili tõstmine Logstash´i jaoks loodud kausta:
mv logstash-1.1.12-flatjar.jar /etc/logstash/logstash.jar
Loon Logstashi konfifaili logstash.conf ning asukoht on /etc/logstash
Konfifaili sisu:
input {
#Windowsi logid
tcp {
type => "eventlog"
port => 10515
}
#Logiserveri enda logid
file {
type => "logserver"
path => [ "/var/log/syslog", "/var/log/*.log" ]
}
}
output {
#Saadetakse andmebaasi
elasticsearch {
}
}
Elasticsearch
Elasticsearch'i paigalduse allikas [4]
wget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-0.90.0.deb
dpkg -i elasticsearch-0.90.0.deb
rm elasticsearch-0.90.0.deb
Kibana
Paigaldame serveri peale Kibana:
Kibana paigalduse pärineb siit [5] ja ainukene muudatus on tehtud KibanaHost reas, kus tuleb panna enda määratud ip.
Installime sõltuvused
apt-get install ruby1.9.3 rubygems
Tõmban internetist pakitud Kibana arhiivi
wget https://github.com/rashidkpc/Kibana/archive/v0.2.0.tar.gz
tar -zxf v0.2.0.tar.gz
mv Kibana-0.2.0/ /etc/kibana
rm v0.2.0.tar.gz
cd /etc/kibana
gem install bundler
bundle install
Muudan konfiguratsioonifailis /etc/kibana/KibanaConfig.rb KibanaHost väärtust, et pääseks veebisirvijaga ligi Kibana keskkonnale.
KibanaHost = '192.168.56.201'
Panen rakenduse automaatselt käivituma programmiga Upstart
nano /etc/init/kibana.conf
Mille sisu on selline:
# kibana.conf# kibana - log viewer
description "Kibana logstash viewer"
start on virtual-filesystems
stop on runlevel [06]
respawn
respawn limit 5 30
limit nofile 65550 65550
# Environment
env HOME=/etc/kibana/
chdir /etc/kibana
setuid logstash
setgid adm
console log
# Run Kibana, which is in /etc/kibana
script
ruby /etc/kibana/kibana.rb
end script
Käivitan faili käsitsi
initctl start kibana
Ligipääsu testimine
Nüüd tuleb veebisirvijasse sisestada enda määratud aadress: 192.168.56.201:5601 ja siis saab edukalt Kibana keskkonnale ligi.