L’uso di fail2ban è indubbiamente comodo per gestire vari aspetti di sicurezza sui propri server, ma cosa fare se il sistema che usate sfrutta un kernel piuttosto datato che non supporta la versione attuale del comando ipset ?
Una soluzione può essere quella di ricorrere ad un falso ipset, che supporti almeno le due azioni basilari di add e del .
Create il file /usr/local/bin/ipset e al suo interno inserite quanto segue:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#!/bin/sh ACTION=$1 if [ "$ACTION" = "del" ]; then IPADDR=$3 iptables -D INPUT --src "$IPADDR" -j DROP 2>/dev/null >/dev/null || exit 1 exit 0 fi if [ "$ACTION" = "add" ]; then IPADDR=$3 iptables -I INPUT --src "$IPADDR" -j DROP 2>/dev/null >/dev/null || exit 2 exit 0 fi exit 255 |
Fatto questo eseguite chmod +x /usr/local/bin/ipset per renderlo eseguibile.
A questo avete il vostro comando ipset in forma minimale, ma dovete accertarvi che il sistema lo utilizzi al posto del vero ipset!
Per farlo potete eseguire i seguenti comandi:
find /bin -name ipset -exec mv /bin/ipset /bin/ipset-old \; -exec ln -s /usr/local/bin/ipset /bin/ipset \;
find /sbin -name ipset -exec mv /bin/ipset /sbin/ipset-old \; -exec ln -s /usr/local/bin/ipset /sbin/ipset \;
find /usr/bin -name ipset -exec mv /usr/bin/ipset /usr/bin/ipset-old \; -exec ln -s /usr/local/bin/ipset /usr/bin/ipset \;
find /usr/sbin -name ipset -exec mv /usr/sbin/ipset /usr/sbin/ipset-old \; -exec ln -s /usr/local/bin/ipset /usr/sbin/ipset \;