#!/bin/bash
# ip-addresses.sh
# Affiche les adresses IP auxquelles votre ordinateur est connecté.

#  Inspiré par le script ddos.sh de Greg Bledsoe,
#  Linux Journal, 09 mars 2011.
#    URL :
#  http://www.linuxjournal.com/content/back-dead-simple-bash-complex-ddos
#  Greg a placé son script sous la licence GPL2.
#+ Ce script en étant dérivé, il est également sous GPL2.
#  Traduction : Jean-Philippe Guérard

type_de_connection=TCP  # Essayez également UDP.
champ=2                 # Quel est le champ qui nous intéresse.
ignores=LISTEN          # On ignore les enregistrements contenant
                        # LISTEN. Pourquoi ?
lsof_args=-ni     # -i affiche les connecteurs Internet.
                  # -n affiche les adresses sous forme numérique.
		  # Que se passerait-il sans -n ? Essayez.
port_local="[0-9][0-9][0-9][0-9][0-9]->"
#       Supprime le port local.

lsof "$lsof_args" | grep $type_de_connection | grep -v "$ignores" |
      awk '{print $9}' | cut -d : -f $champ | sort | uniq |
      sed s/"^$port_local"//

#  Le script de Bledsoe place la sortie d'une liste d'adresse IP
#  filtrée (de la même façon que les lignes 22 à 24 ci-dessus)
#  dans une variable.
#  Il recherche des connexions multiples vers une adresse IP unique
#  puis utilise :
#
#    iptables -I INPUT -s $ip -p tcp -j REJECT --reject-with tcp-reset
#
#  ... avec une boucle toutes les 60 secondes pour renvoyer les
#  paquets des attaques de déni de service.


#  Exercice :
#  ----------
#
#  Utiliser « iptables » pour améliorer ce script, en rejetant
#+ les tentatives de connexion des domaines des gros émetteurs
#+ de pourriels.
