Sunday, 6. January 2019 Week 1
Tuesday, 1. January 2019 Week 1

New Year - New Vim Trick

Happy 2019! I have learnt a new Vim trick:
When searching for some pattern with / (eg. /mystring), often the next step is to perform a replacement command. Now instead of re-typing the whole string, you can directly enter the substitution command with an emtpy search-pattern (:%s//newstring/), Vim then automatically re-uses the previous search pattern.

(via)

Saturday, 8. December 2018 Week 49
Sunday, 5. August 2018 Week 31

Run QRadar CE on Mac OS X with Vagrant

The Vagrant file provided by IBM for running QRadar Community Edition on Mac OS X currently does not work properly. It fails with the following error:

Failure: repodata/repomd.xml from centos-gluster38: [Errno 256] No more mirrors to try.
http://mirror.centos.org/centos/7/storage/x86_64/gluster-3.8/repodata/repomd.xml: [Errno 14] HTTP Error 404

The problem is that gluster3.8 was moved out of this CentOS repository and now the download fails. But the gluster3.8 RPMs are also provided with the QRadar CE installation ISO file.

Based on the workaround described here, I've extended the IBM provided Vagrantfile so that the RPMs are taken from the ISO file instead of the CentOS repository. With the modified Vagrantfile the automatic provisioning script no longer fails.

The instructions for running QRadar CE with Vagrant now look like this:

  1. Download the zipfile with the original Vagrantfile and the accompanying helper files from the IBM website: https://developer.ibm.com/qradar/ce/
  2. Create a folder and extract the zipfile:
    mkdir community_edition
    unzip QRadarCE_Vagrantfile.20171003084145.zip -d community_edition/
  3. Download the modified Vagrantfile and overwrite the original one:
    curl -o community_edition/Vagrantfile https://blog.x-way.org/stuff/Vagrantfile
  4. Make sure you have the requried Vagrant plugins installed:
    vagrant plugin install vagrant-disksize
    vagrant plugin install vagrant-reload
  5. Make sure you have the QRadar CE ISO file (downloaded from the IBM website) in the same folder as the Vagrantfile:
    cp QRadarCE.iso community_edition/
  6. Create the auto_install file to automatically install QRadar:
    touch community_edition/auto_install
  7. Accept the EULA by adding the corresponding setup parameter in the Vagrantfile:
    Edit the Vagrantfile and add the --accept-eula argument to /media/cdrom/setup --no-screen to automatically accept the EULA
  8. Change into the folder and start the QRadar installation (takes about 1 hour):
    cd community_edition
    vagrant up
Thursday, 19. July 2018 Week 29
Saturday, 14. April 2018 Week 15
Wednesday, 4. April 2018 Week 14

Exclude domain from unknown sender check

Postfix provides the reject_unknown_sender_domain check which allows to only accept incoming e-mails sent from domains which actually exist.

Unfortunately there exists this one external service which uses a non-existing subdomain to send their notification e-mails. Thus all their notifications get rejected.

The following configuration allows to keep the reject_unknown_sender_domain check in place, but to exclude a specific domain from this check.

# snippet in main.cf
smtpd_sender_restrictions = check_sender_access pcre:/etc/postfix/sender_domain_verification
# exclude regex in sender_domain_verification
!/@domain\.to\.exclude\.com$/ reject_unknown_sender_domain

Your distribution might ship Postfix support for pcre matches in a dedicated package which needs to be installed separately (in the case of Debian you need to install the postfix-pcre package).

Sunday, 1. April 2018 Week 13
Saturday, 5. December 2015 Week 49
Friday, 4. December 2015 Week 49

DNS packet sniffing with NFLOG and Perl/Python

The nflog-bindings from Pierre Chifflier make it trivially easy to write a passive packet sniffer which can be controlled via iptables and listens to traffic on multiple interfaces at the same time.

As a little exercise I have written a simple DNS packet sniffer, once in Perl and once in Python:

To use the sniffer, first create an iptables rule like this: iptables -I INPUT -p udp --sport 53 -j NFLOG --nflog-group 123

Then start one of the sniffer scripts and observe the extracted DNS queries :-)

For a more convenient download I've also put the scripts in a proper Github repository: nflog_sniff