A demo of how Wallaroo can be used alongside a chat installation to detect, in near-real-time, the presence of malicious clients.
$ make deps
$ docker-compose up
(.. wait for docker to download the world ..)
$ tail -f sink_output/sink.log
Open http://localhost:4000 to see the runtime statistics for your pipeline.
-
Install Erlang 18.x .. 20.x and the development libraries for:
ssl,expat,zlib, andunixodbc. MongooseIM will not currently run with Erlang 21. -
Run
make deps build-chat -
You now have two directories:
mongooseimandamoc. -
The chat server lives in
mongooseimand is preconfigured for:
a) Allowing logins from any<USER>@localhost, where password=<USER>
b) Sending a copy of every XMPP stanza to a TCP socket defined by the environment variableWALLAROO_TCP_HOSTPORT -
The spam simluation script lives
amoc/spambots.erland can be launched with therun.shscript found inamoc.
UseCHAT_SERVER_HOSTNAME=127.0.0.1 ./run.sh spambots 1 13to launch 12 regular users and 1 spammer, as every 13th user will be a spammer. -
Run
make setupto set up a Virtualenv in.env -
As instructed, copy the
machidaexecutable andwallaroo.pyinto the virtualenv. If you don't have these, follow the Wallaroo Tutorial to get them. -
Run
make run-locallyto launch all the required components locally. If you modify anything undermongooseim, you will have tomake build-chatto recompile the chat server. -
Take a look at
log/local_sink.logto see the spam detector publishing its results.