User Tools

Site Tools


ddos_ipset

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
ddos_ipset [2013/12/15 16:27]
kyxap
ddos_ipset [2016/01/27 21:31] (current)
kyxap
Line 165: Line 165:
 esac esac
 </​code>​ </​code>​
 +
 +===== Скрипт для удаления адресов из блеклиста (FreeBSD) =====
 +<file bash /​opt/​scripts/​unban_ip.sh>​
 +#​!/​usr/​bin/​env bash
 +
 +PATH=/​sbin:/​bin:/​usr/​sbin:/​usr/​bin:/​usr/​games:/​usr/​local/​sbin:/​usr/​local/​bin:​~/​bin
 +
 +SCRIPTHOME="/​root/​antiddos"​
 +
 +function valid_ip()
 +{
 +    local  ip=$1
 +    local  stat=1
 +
 +    [[ $ip =~ ^[0-9]{1,​3}\.[0-9]{1,​3}\.[0-9]{1,​3}\.[0-9]{1,​3}$ ]] && {
 +    OIFS=$IFS
 +    IFS='​.'​
 +    ip=($ip)
 +    IFS=$OIFS
 +    [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
 +        && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
 +    stat=$?
 +    return $stat
 +}
 +}
 +
 +###############​
 +
 +[[ -d $SCRIPTHOME ]] || exit 1
 +
 +if ! VALID_IP=$(valid_ip "​$1"​)
 +then
 +    echo "​Usage:​ $0 <IP ADDR>"​ >&2
 +    exit 1
 +fi
 +
 +sed_cmd="/​$1/​d;/​^[[:​space:​]]*$/​d;​s/​[[:​space:​]]*$//"​
 +
 +if LISTS=$(grep -lIrx "​$1"​ "​$SCRIPTHOME"​ | grep -v "​\.sh"​)
 +then
 +    for i in $LISTS
 +    do
 +        echo "​Removing $1 from $i"
 +        sed -i ''​ "​$sed_cmd"​ ${i}
 +    done
 +    nginx -t && nginx -s reload
 +fi
 +
 +</​file>​
 +
 +
ddos_ipset.txt · Last modified: 2016/01/27 21:31 by kyxap