Skip to content
This repository has been archived by the owner on Jan 18, 2024. It is now read-only.

fixes bug where pid path collides when running multiple barnyard2 #259

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 4 additions & 1 deletion rpm/barnyard2
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ start() {
PIDFILE="/var/lock/subsys/barnyard2-$INT.pid"
ARCHIVEDIR="$SNORTDIR/$INT/archive"
WALDO_FILE="$SNORTDIR/$INT/barnyard2.waldo"
BARNYARD_OPTS="-D -c $CONF -d $SNORTDIR/${INT} -w $WALDO_FILE -l $SNORTDIR/${INT} -a $ARCHIVEDIR -f $LOG_FILE -X $PIDFILE $EXTRA_ARGS"
if [ ! -d /var/run/barnyard2-${INT} ]; then
mkdir -p /var/run/barnyard2-${INT}
fi
BARNYARD_OPTS="-D -c $CONF -d $SNORTDIR/${INT} -w $WALDO_FILE -l $SNORTDIR/${INT} -a $ARCHIVEDIR -f $LOG_FILE -X $PIDFILE $EXTRA_ARGS --pid-path=/var/run/barnyard2-${INT}"
daemon $prog $BARNYARD_OPTS
done
RETVAL=$?
Expand Down
19 changes: 19 additions & 0 deletions rpm/barnyard2-start.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#!/bin/sh

if [ -f /etc/sysconfig/barnyard2 ]; then
. /etc/sysconfig/barnyard2
fi

for INT in $INTERFACES; do
ARCHIVEDIR="$SNORTDIR/$INT/archive"
WALDO_FILE="$SNORTDIR/$INT/barnyard2.waldo"
if [ ! -d /var/run/barnyard2-${INT} ]; then
mkdir -p /var/run/barnyard2-${INT}
fi
BARNYARD_OPTS="-D -c $CONF -d $SNORTDIR/${INT} -w $WALDO_FILE -l $SNORTDIR/${INT} -a $ARCHIVEDIR -f $LOG_FILE -X /var/run/barnyard2-${INT}/barnyard.pid $EXTRA_ARGS --pid-path=/var/run/barnyard2-${INT}"
/usr/bin/barnyard2 $BARNYARD_OPTS &
RETVAL=$?
done

exit $RETVAL

17 changes: 17 additions & 0 deletions rpm/barnyard2.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[Unit]
Description=Barnyard2 is an output processor for snort
After=network.target

[Service]
Type=forking
User=root
KillSignal=3
WorkingDirectory=/usr/bin/
ExecStart=/usr/bin/barnyard2-start.sh
Restart=on-failure
PermissionsStartOnly=True
ExecStop=/usr/bin/kill -9 `pidof barnyard2`

[Install]
WantedBy=multi-user.target

22 changes: 18 additions & 4 deletions rpm/barnyard2.spec
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ Summary: Snort Log Backend
Name: barnyard2
Version: 1.14
Source0: https://github.com/firnsy/barnyard2/archive/barnyard2-%{version}.tar.gz
Release: 1%{?dist}
Release: 4%{?dist}
License: GPL
Group: Applications/Internet
Url: http://www.github.com/firnsy/barnyard2
Url: http://www.github.com/redsand/barnyard2

BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: libtool
Expand Down Expand Up @@ -105,7 +105,7 @@ EXPERIMENTAL!! I don't have a way to test this, so let me know if it works!
ORACLE_HOME=%{OracleHome}

%prep
%setup -q
%setup -q -n %{name}


%build
Expand Down Expand Up @@ -134,7 +134,16 @@ make
%{__install} -d -p $RPM_BUILD_ROOT%{_sysconfdir}/{sysconfig,rc.d/init.d,snort}
%{__install} -d -p $RPM_BUILD_ROOT%{_datadir}/snort
%{__install} -m 644 rpm/barnyard2.config $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/barnyard2
%{__install} -m 755 rpm/barnyard2 $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/barnyard2
%if %{rhel} <= 6
%{__install} -m 755 rpm/barnyard2 $RPM_BUILD_ROOT%{_sysconfdir}/rc.d/init.d/barnyard2
%else
if [ ! -d $RPM_BUILD_ROOT/usr/bin ]; then
mkdir -p $RPM_BUILD_ROOT/usr/bin
fi
%{__install} -m 755 rpm/barnyard2-start.sh $RPM_BUILD_ROOT/usr/bin/barnyard2-start.sh
mkdir -p $RPM_BUILD_ROOT/etc/systemd/system/
%{__install} -m 755 rpm/barnyard2.service $RPM_BUILD_ROOT/etc/systemd/system/barnyard2.service
%endif
%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/barnyard2.conf $RPM_BUILD_ROOT%{_sysconfdir}/snort/
if [ %{mysql} = 1 ]; then
%{__install} -m 755 schemas/create_mysql $RPM_BUILD_ROOT%{_datadir}/snort/create_mysql
Expand All @@ -156,7 +165,12 @@ fi
%doc LICENSE doc/INSTALL doc/README.*
%attr(755,root,root) %{_bindir}/barnyard2
%attr(640,root,root) %config(noreplace) %{_sysconfdir}/snort/barnyard2.conf
%if %{rhel} <= 6
%attr(755,root,root) %config(noreplace) %{_sysconfdir}/rc.d/init.d/barnyard2
%else
/etc/systemd/system/barnyard2.service
/usr/bin/barnyard2-start.sh
%endif
%attr(644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/barnyard2

%if %{mysql}
Expand Down
2 changes: 2 additions & 0 deletions src/output-plugins/spo_alert_fwsam.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,9 @@
#include <sys/filio.h>
#endif

#ifndef SOCKET
typedef int SOCKET;
#endif

#ifndef INVALID_SOCKET
#define INVALID_SOCKET -1
Expand Down