Created
August 27, 2025 12:07
-
-
Save wiesty/84b66a0ddf6e930bb6801a42a5329e3a to your computer and use it in GitHub Desktop.
Nextcloud VM Check if an IP is blocked by Fail2Ban, CrowdSec, Nextcloud bruteforce, UFW
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| # Check if an IP is blocked by Fail2Ban, CrowdSec, Nextcloud bruteforce, UFW | |
| # Usage: sudo ./checkip.sh <IP> | |
| IP=$1 | |
| if [ -z "$IP" ]; then | |
| echo "Usage: $0 <IP>" | |
| exit 1 | |
| fi | |
| echo "π Checking blockers for IP: $IP" | |
| echo "======================================" | |
| # --- Fail2Ban --- | |
| if command -v fail2ban-client >/dev/null 2>&1; then | |
| echo "" | |
| echo "β‘ Fail2Ban:" | |
| jails=$(sudo fail2ban-client status 2>/dev/null | grep "Jail list:" | cut -d: -f2 | sed 's/,//g') | |
| if [ -z "$jails" ]; then | |
| echo " No jails configured." | |
| else | |
| found=0 | |
| for jail in $jails; do | |
| if sudo fail2ban-client status "$jail" | grep -q "$IP"; then | |
| echo " β BANNED in jail: $jail" | |
| found=1 | |
| fi | |
| done | |
| [ $found -eq 0 ] && echo " β Not banned in Fail2Ban" | |
| fi | |
| else | |
| echo " (Fail2Ban not installed)" | |
| fi | |
| # --- CrowdSec --- | |
| if command -v cscli >/dev/null 2>&1; then | |
| echo "" | |
| echo "β‘ CrowdSec:" | |
| if sudo cscli decisions list --ip "$IP" | grep -q "$IP"; then | |
| echo " β BANNED by CrowdSec" | |
| sudo cscli decisions list --ip "$IP" | |
| else | |
| echo " β Not banned by CrowdSec" | |
| fi | |
| else | |
| echo " (CrowdSec not installed)" | |
| fi | |
| # --- Nextcloud Bruteforce --- | |
| if [ -d "/var/www/nextcloud" ]; then | |
| echo "" | |
| echo "β‘ Nextcloud Bruteforce Protection:" | |
| if sudo -u www-data php /var/www/nextcloud/occ security:bruteforce:attempts "$IP" | grep -q "$IP"; then | |
| echo " β Entry found for $IP" | |
| sudo -u www-data php /var/www/nextcloud/occ security:bruteforce:attempts "$IP" | |
| else | |
| echo " β No entry for $IP" | |
| fi | |
| else | |
| echo " (Nextcloud not installed or path differs)" | |
| fi | |
| # --- UFW --- | |
| if command -v ufw >/dev/null 2>&1; then | |
| echo "" | |
| echo "β‘ UFW Rules:" | |
| sudo ufw status verbose | grep "$IP" && echo " β Rule mentions $IP" || echo " β No specific UFW rule for $IP" | |
| else | |
| echo " (UFW not installed)" | |
| fi | |
| echo "======================================" | |
| echo "β Check completed for $IP" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment