Iptables e blacklist ip

La rete, Internet, configurazione di Servizi e tutto ciò che permette la comunicazione tra macchine

Iptables e blacklist ip

Messaggioda jnbian » 25/11/2017, 16:19

Ciao a tutti, vorrei chiedervi un consiglio su iptables.
Io avrei intenzione di scaricare da bluetack una lista di intervalli di ip.
Vorrei che iptables non accettasse nessun pacchetto dagli intervalli di ip presenti in questa lista e creasse un log dei pacchetti scartati.

Ho già fatto delle ricerche ma ho trovato solo degli script completi per iptables e non sono riuscito a capire esattamente quali sono le parti che devo aggiungere al mio script, infatti ho già delle regole impostate per iptables e non vorrei stravolgerle.
Mi chiedevo se è possibile impostare una regola che mi permetta di fare quello che vi ho detto.

In questa https://www.rosehosting.com/blog/blocking-abusive-ip-addresses-using-iptables-firewall-in-debianubuntu/ pagina ho trovato
Codice: Seleziona tutto
## BLOCK ABUSING IPs HERE ##
#echo " * BLACKLIST"
#${IPTABLES} -A INPUT -s _ABUSIVE_IP_ -j DROP
#${IPTABLES} -A INPUT -s _ABUSIVE_IP2_ -j DROP

Vi allego anche le mie regole di iptables.
Codice: Seleziona tutto
#! /bin/sh
#
# rc.firewall
#
#if [ $UID != 0 ]; then
#  echo -e "\aWARNING: only root can set iptables!"
#  exit
#fi
### SOFTWARE ###
#IPTAB=`which iptables`
### VARIABILI STANDARD ###
# Interfaccia pubblica #
#EXTIF="eth0"
# Interfaccia privata #
#INTIF="eth1"
# Interfacce VPN #
#VPN="ham0"
# Host Custom #
#PC="XXX.XXX.XXX.XXX"
#PC_TRUSTED="XXX.XXX.XXX.XXX"
#PC_BLACKLISTED="XXX.XXX.XXX.XXX"
# CLASSI IP PRIVATI #
#LOOPBACK="127.0.0.0/8"
#CLASS_A="10.0.0.0/8"
#CLASS_B="172.16.0.0/12"
#CLASS_C="192.168.0.0/16"
#CLASS_D_MULTICAST="224.0.0.0/4"
#CLASS_E_RESERVED_NET="240.0.0.0/5"
### MATCH ###
#text="-m comment --comment"

## RESET DELLE REGOLE ##
iptables -F
iptables -t mangle -F
iptables -t nat -F
iptables -X
iptables -t mangle -X
iptables -t nat -X

# Definizione criterio generale
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Frammenti e pacchetti non validi
iptables -A INPUT -f -j DROP
iptables -A INPUT -m state --state INVALID -j DROP
iptables -A OUTPUT -f -j DROP
iptables -A OUTPUT -m state --state INVALID -j DROP

# Traffico di loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

## TABELLA FILTER - INGRESSO ##

# Accetta pacchetti di connessioni esistenti
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Ssh
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT


Grazie.
jnbian
Jr. Member
Jr. Member
 
Messaggi: 83
Iscritto il: 11/10/2009, 23:39

Re: Iptables e blacklist ip

Messaggioda byte64 » 25/11/2017, 17:57

Seguendo le indicazione del link che indichi adatterei così il sistema al tuo attuale script, in pratica alla fine del tuo script devi inserire:
Codice: Seleziona tutto
iptables -A INPUT -j LOG --log-prefix "ip-bloccato: "
iptables -A INPUT -j DROP

if [[ -f /etc/blacklist.ips ]] && [[ -s /etc/blacklist.ips ]]; then
    echo " * BLOCKING ABUSIVE IPs"
    while read IP; do
        iptables -I INPUT -s "${IP}" -j DROP
    done <<(cat /etc/blacklist.ips)
fi

Il file /etc/blacklist.ips contiene gli ip o subnet che vuoi bloccare, uno per riga:
Codice: Seleziona tutto
1.2.3.4
1.2.3.5
2.3.4.0/24
e cosi via..

il log degli ip bloccati lo trovi in /var/log/syslog e puoi filtrare facilmente cosa succede con dei semplici:
grep ip-bloccato /var/log/syslog
tail -f /var/log/syslog | grep ip-bloccato

Ciao
byte64
Sr. Member
Sr. Member
 
Messaggi: 317
Iscritto il: 07/01/2017, 19:02
Località: Bergamo

Re: Iptables e blacklist ip

Messaggioda jnbian » 04/12/2017, 15:43

Ciao e grazie della risposta.
Non ho ancora avuto la possibilità di fare delle modifiche ad iptables ed appena posso proverò a fare come mi hai consigliato.
Intano ho continuato a fare delle ricerche ed in questa pagina https://bash.cyberciti.biz/firewall/ipt ... p-address/ ho trovato questo script
Codice: Seleziona tutto
#!/bin/bash
# Simple iptables IP/subnet block script
# -------------------------------------------------------------------------
# Copyright (c) 2004 nixCraft project <http://www.cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ----------------------------------------------------------------------
IPT=/sbin/iptables
SPAMLIST="spamlist"
SPAMDROPMSG="SPAM LIST DROP"
BADIPS=$(egrep -v -E "^#|^$" /root/iptables/blocked.ips)
 
# create a new iptables list
$IPT -N $SPAMLIST
 
for ipblock in $BADIPS
do
   $IPT -A $SPAMLIST -s $ipblock -j LOG --log-prefix "$SPAMDROPMSG"
   $IPT -A $SPAMLIST -s $ipblock -j DROP
done
 
$IPT -I INPUT -j $SPAMLIST
$IPT -I OUTPUT -j $SPAMLIST
$IPT -I FORWARD -j $SPAMLIST

Voi cosa ne pensate, a me sembra chiaro, secondo voi devo inserirlo alla fine del file che contiene le regole di iptables?
Grazie.
jnbian
Jr. Member
Jr. Member
 
Messaggi: 83
Iscritto il: 11/10/2009, 23:39


Torna a Network

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti