Nagios - Help with getting NRPE to work with check_fail2ban.sh
3
votes
0
answers
859
views
I am trying to monitor fail2ban with Nagios so, I found the following check via a Google search:
http://nagios.fm4dd.com/plugins/manual/check_fail2ban.htm
I am trying to get the check to work on a remote host, but I am unable to get it to return accurate results. I am using Fail2ban v0.9.3 on CentOS 7, so I had to make one change to the script per the following link:
https://exchange.nagios.org/directory/Plugins/Security/Firewall-Software/check_fail2ban/details#rev-3948
***NOTE:** *All output below is from the "Remote Server" and not my "Nagios Server".*
**The change I made (Line 108) is below:**
jail_list=$($fail2ban_client status|grep "list" |cut -d : -f 2 |tr -d ,)
**I already gave the Nagios user & NRPE permissions per the wiki:**
setfacl -m u:nagios:rwx /var/run/fail2ban/fail2ban.sock
**I am able to run the fail2ban-client & the script as both the Nagios & NRPE users:**
[root@localhost plugins]# sudo -u nrpe fail2ban-client status
Status
|- Number of jail: 2
`- Jail list: openvpn, sshd
[root@localhost plugins]# sudo -u nagios fail2ban-client status
Status
|- Number of jail: 2
`- Jail list: openvpn, sshd
[root@localhost etc]# sudo -u nagios /usr/lib64/nagios/plugins/check_fail2ban.sh -w 10 -c 20
OK: 1 banned IP(s) in 2 active jails|banned_IP=1;10;20;;
jail openvpn blocks 1 IP(s): 76.123.218.206
jail sshd blocks 0 IP(s):
| openvpn=1;;;; sshd=0;;;;
[root@localhost etc]# sudo -u nrpe /usr/lib64/nagios/plugins/check_fail2ban.sh -w 10 -c 20
OK: 1 banned IP(s) in 2 active jails|banned_IP=1;10;20;;
jail openvpn blocks 1 IP(s): 76.123.218.206
jail sshd blocks 0 IP(s):
| openvpn=1;;;; sshd=0;;;;
**Here is what I get when I run it locally:**
[root@localhost plugins]# ./check_fail2ban.sh -w 10 -c 20
OK: 1 banned IP(s) in 2 active jails|banned_IP=1;10;20;;
jail openvpn blocks 1 IP(s): 46.133.118.236
jail sshd blocks 0 IP(s):
| openvpn=1;;;; sshd=0;;;;
**Here is what I get when I run it locally with NRPE:**
[root@localhost plugins]# /usr/lib64/nagios/plugins/check_nrpe -t 60 -H 127.0.0.1 -p 5666 -c check_fail2ban -a 10 20
OK: 0 banned IP(s) in active jails|banned_IP=0;10;20;;
|
- *I Get the same result when I run it on my Nagios Server*
**My command is defined in my nrpe.cfg:**
command[check_fail2ban]=/usr/lib64/nagios/plugins/check_fail2ban.sh -w $ARG1$ -c $ARG2$
**I tried some "debugging" by adding the following to my nrpe.cfg file:**
command[check_fail2ban]=whoami
command[check_fail2ban]=env
**"Debug" output:**
[root@localhost plugins]# /usr/lib64/nagios/plugins/check_nrpe -t 60 -H 127.0.0.1 -p 5666 -c check_fail2ban -a 10 20
SHELL=/sbin/nologin
NRPE_PROGRAMVERSION=2.15
USER=nrpe
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
PWD=/
LANG=en_US.UTF-8
SHLVL=1
HOME=/var/run/nrpe
LOGNAME=nrpe
NRPE_SSL_OPT=
NRPE_MULTILINESUPPORT=1
_=/usr/bin/env
**I tried additional debugging by setting NRPE to debug =1. Here is the output when I run the command from my Nagios Server.**
Sep 27 12:36:46 localhost nrpe: Connection from 192.168.1.200 port 61853
Sep 27 12:36:46 localhost nrpe: Host address is in allowed_hosts
Sep 27 12:36:46 localhost nrpe: Handling the connection...
Sep 27 12:36:46 localhost nrpe: Host is asking for command 'check_fail2ban' to be run...
Sep 27 12:36:46 localhost nrpe: Running command: usr/lib64/nagios/plugins/check_fail2ban.sh -w 10 -c 20
Sep 27 12:36:46 localhost nrpe: Command completed with return code 0 and output: OK: 0 banned IP(s) in active jails|banned_IP=0;10;20;;#012|
Sep 27 12:36:46 localhost nrpe: Return Code: 0, Output: OK: 0 banned IP(s) in active jails|banned_IP=0;10;20;;#012|
Sep 27 12:36:46 localhost nrpe: Connection from `bYj closed.
- *I get the same thing when I run it locally from the server with check_nrpe.*
It looks like NRPE may not be capturing all of the output from the script? Please forgive me if this is something stupid that I've missed, as I am a Windows user, that does very little on Linux. Any help is greatly appreciated!
----------
*** ***EDIT TO ANSWERS*** ***
User4556274, I think it is enabled. Here is the output from that command:
[root@localhost etc]# ls -Z /usr/lib64/nagios/plugins
-rwxr-xr-x. root root unconfined_u:object_r:usr_t:s0 check_apc
-rwxr-xr-x. root root unconfined_u:object_r:usr_t:s0 check_asterisk_pri.php
-rwxr-xr-x. root root system_u:object_r:nagios_checkdisk_plugin_exec_t:s0 check_disk
-rwxr-xr-x. root root unconfined_u:object_r:lib_t:s0 check_fail2ban.old
-rwxr-xr-x. root root unconfined_u:object_r:lib_t:s0 check_fail2ban.sh
-rwxr-xr-x. root root system_u:object_r:nagios_system_plugin_exec_t:s0 check_load
-rwxr-xr-x. root root unconfined_u:object_r:lib_t:s0 check_mem.pl
-rwxr-xr-x. root root system_u:object_r:nagios_services_plugin_exec_t:s0 check_nrpe
-rwxr-xr-x. root root unconfined_u:object_r:usr_t:s0 check_openmanage
-rwxr-xr-x. root root unconfined_u:object_r:lib_t:s0 check_openvpn.php
-rwxr-xr-x. root root unconfined_u:object_r:lib_t:s0 check_openvpn_user_list
-rwxr-xr-x. root root unconfined_u:object_r:lib_t:s0 check_openvpn_user_status
-rwxr-xr-x. root root unconfined_u:object_r:lib_t:s0 check_openvpn_user_traffic
-rwxr-xr-x. root root unconfined_u:object_r:lib_t:s0 check_ping
-rwxr-xr-x. root root system_u:object_r:nagios_system_plugin_exec_t:s0 check_procs
-rwxr-xr-x. root root system_u:object_r:nagios_system_plugin_exec_t:s0 check_swap
-rwxr-xr-x. root root unconfined_u:object_r:usr_t:s0 check_swraid.py
-rwxr-xr-x. root root unconfined_u:object_r:usr_t:s0 check_swraid.sh
-rwxr-xr-x. root root system_u:object_r:nagios_system_plugin_exec_t:s0 check_users
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 negate
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 urlize
-rwxr-xr-x. root root system_u:object_r:bin_t:s0 utils.sh
Asked by TB.
(31 rep)
Sep 27, 2016, 05:13 PM
Last activity: Sep 27, 2016, 05:42 PM
Last activity: Sep 27, 2016, 05:42 PM