image

Intrusion Detection met Prelude Hybrid IDS: Deel 2

maandag 29 mei 2006, 14:18 door markui, 0 reacties

Dit is het tweede deel uit een serie over het Prelude Hybrid Intrusion Detection systeem. In het eerste deel werd uitgelegd wat Prelude precies is en wat het doet.

Inleiding

Stel, er is een thuisnetwerk zoals gegeven in het figuur. Het netwerk bestaat uit een router/firewall onder de naam elianne. Dit systeem verzorgdt de Network Address Translation en draait een firewall. Aan dit systeem hangen twee netwerken. Het bovenste netwerk is een publiek gedeelde waar een server met de naam karin hangt. Deze server verzorgt een webserver, share server en shell server. Het andere netwerk is een privenetwerk, hierop draait een prive server met de naam elianne. Deze server is verantwoordelijk voor het opslaan van de backups en andere gevoelige diensten. Op het privenetwerk is ook een werkstation aangesloten onder de naam merel.

Het Prelude systeem bestaat uit een centrale server waar alle meldingen worden samengevoegd (de prelude-manager). Het is logisch om deze te installeren op elianne, de prive-server. Het in niet de bedoeling dat iedereen toegang heeft tot deze server. Verder zal op elianne de front-end draaien (prewikka), zodat de beheerder wel toegang heeft tot de prelude meldingen. Als sensor wordt op elk systeem in dit netwerk een logfile monitor geinstalleerd, welke bij de manager rapporteren.

Alle systemen draaien FreeBSD (karin draait FreeBSD 5, de overige systemen draaien FreeBSD 6). Door gebruik te maken van het ports-systeem van FreeBSD is het eenvoudig om onderdelen van Prelude te installeren. Dit artikel gaat in op het installeren en configureren van de Prelude Manager, Prewikka en Prelude Logfile Monitor sensoren. Latere artikelen kunnen ingaan op het installeren van meer sensoren en geavanceerdere configuraties.

Prelude-manager
Het installeren van de prelude-manager op elianne begint betrekkelijk eenvoudig. Gewoon de port installeren en de basis ligt er. We willen de Python bindings omdat Prewikka deze nodig heeft, en MySQL database ondersteuning. Onder FreeBSD komt dit neer op:

# portinstall -m WITH_PYTHON=1 libprelude
# portinstall -m "WITH_PYTHON=1 WITH_MYSQL=1 libpreludedb"
# portinstall prelude-manager
Mocht je geen FreeBSD gebruiken, dan kun je de package gebruiken die hoort bij jou besturingsysteem, of de stappen volgen uit het Prelude IDS Handboek voor het handmatig compileren en installeren van de software.

MySQL Database
Het is verstandig gebruik te maken van een MySQL database om alle meldingen in op te slaan. De volgende commando's maken een nieuwe database aan met de naam prelude. Het grant commando geeft toegang tot een prelude gebruiker met een bepaald wachtwoord. Aangezien dit wachtwoord verder alleen in de prelude configuratie komt te staan is het geen moeite om met behulp van een wachtwoordgenerator een lang, moeilijk wachtwoord te maken.

mysql> create database prelude;
Query OK, 1 row affected (0.00 sec)
mysql> grant all privileges on prelude.* to prelude@localhost
identified by 'AgTCwkCRSu9uUD4zFwRJC5wtHZtEA4';
Query OK, 0 rows affected (0.06 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql>
Na het aanmaken van de database kan het databaseschema worden ingeladen:
# mysql -p -u prelude prelude Enter password:
Globale Prelude configuratie
In /usr/local/etc/prelude/default staan de configuratiebestanden die worden gebruikt door alle prelude programma's. De FreeBSD ports installeren deze bestanden als client.conf-dist bestanden die nog gecopieerd moeten worden naar client.conf. Nadat deze bestanden zijn gecopieerd is het handig om in de global.conf de volgende informatie te zetten (en te vervangen met informatie die van toepassing is):
[prelude]
node-name = elianne
node-location = thuis

[Node-Address]
address = 10.0.1.4
category = ipv4-addr
In client.conf komt de volgende informatie:
[prelude]
server-addr = 10.0.1.4
Prelude Manager configuratie
Ook voor de prelude manager configuratie in /usr/local/etc/prelude-manager geldt dat de FreeBSD ports deze installeren als prelude-manager.conf-dist en wij deze dienen te copieren naar prelude-manager.conf. De inhoudt van dit bestand is vrij logisch:
include = /usr/local/etc/prelude/default/global.conf
listen = 127.0.0.1
listen = 10.0.1.4

[db]
type = mysql
host = localhost
port = 3306
name = prelude
user = prelude
pass = AgTCwkCRSu9uUD4zFwRJC5wtHZtEA4
Prelude account
Het is nooit verstandig om services als root te laten draaien. Vandaar dat we een gebruiker 'prelude' toevoegen. Alle prelude processes kunnen dan onder deze gebruiker draaien. De prelude gebruiker heeft geen homedirectory nodig, en een locked account is voldoende:
prelude:*:89:89::0:0:Prelude Hybrid IDS:/nonexistent:/sbin/nologin
en in /etc/group:
prelude:*:89:
Het is wel belangrijk om de prelude gebruiker eigenaar te maken van alle prelude bestanden, en deze tevens af te schermen:
# chown -R prelude:prelude /var/spool/prelude /var/spool/prelude-manager
/var/run/prelude-manager /usr/local/etc/prelude /usr/local/etc/prelude-manager
# chmod 700 /var/spool/prelude /var/spool/prelude-manager
/var/run/prelude-manager /usr/local/etc/prelude
/usr/local/etc/prelude-manager
Verder moet er een prelude profiel worden aangemaakt met behulp van het prelude-adduser script:
# prelude-adduser add prelude-manager --uid 89 --gid 89
- Using default TLS settings from /usr/local/etc/prelude/default/tls.conf:
- Generated key size: 1024 bits.
- Authority certificate lifetime: unlimited.
- Generated certificate lifetime: unlimited.
- Creating analyzer prelude-manager.
- Creating /usr/local/etc/prelude/profile/prelude-manager...
- Allocated ident for prelude-manager: 3251171130800727.
- Generating RSA private key... This might take a very long time.

[Increasing system activity will speed-up the process.]
- Generating 1024 bits RSA private key... Done.
- Creating /var/spool/prelude/prelude-manager...
#
Startup scripts
Nu de prelude manager is geinstalleerd, is het handig om deze automatisch te laten starten bij het opstarten. Hiervoor kan gebruik gemaakt worden van de rc.d scripts (in /usr/local/etc/rc.d voor FreeBSD). De ports installeren al bijna een bruikbaar script, alleen de pidfile moet worden veranderd:
pidfile=/var/run/prelude-manager/prelude-manager.pid
In /etc/rc.conf hoeven alleen de volgende regels te worden opgenomen:
prelude_manager_enable="YES"
prelude_manager_user="prelude"
Het uitvoeren van dit script zal de prelude-manager starten:
# /usr/local/etc/rc.d/prelude-manager start
Starting prelude_manager.
- Subscribing Normalize to active decoding plugins.
Vervolg
Later deze week kijken we naar de onderdelen Prewikka en de Prelude Logfile Monitor Sensor.
Nog geen reacties
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.