#!/usr/bin/env bash DESC="Test du firewall/IPv6." SYSTEMS="bigboss lambda nomade societe tiny web" testConfigBase() { tput reset echo "[Test de la configuration de base]" echo echo "Tout doit être vert (après configAll) !" echo vdnTest "Serveur web sur lambda ... ?" 'vdn-ssh root@lambda "timeout 1 lynx -dump lambda &> /dev/null"' vdnTest "Serveur web sur nomade ... ?" 'vdn-ssh root@nomade "timeout 1 lynx -dump nomade &> /dev/null"' vdnTest "Serveur web sur web....... ?" 'vdn-ssh root@web "timeout 1 lynx -dump web &> /dev/null"' echo vdnTest "societe en routeur........ ?" 'vdn-ssh root@societe "timeout 1 cat /proc/sys/net/ipv4/ip_forward | grep -q 1"' echoDone } testQ0() { tput reset echo "[Test Q0 : Le grand nettoyage]" echo vdnTest "/root/vide.sh existe ..... ?" 'vdn-ssh root@societe "test -e /root/vide.sh"' [ $? -eq 0 ] && { echo echo "Remarque : A vous d'exécuter le script !" } echo echoDone } testQ1() { tput reset echo "[Test Q1 : NAT]" echo vdnTest "Présence de /root/local.sh .. ?" 'vdn-ssh root@societe "test -e /root/local.sh"' [ $? -eq 0 ] && { echo echo "Remarque : A vous d'exécuter le script !" echo } vdnTest "bigboss -> lambda ........... ?" 'vdn-ssh root@bigboss "timeout 1 lynx -dump lambda &> /dev/null"' vdnTest "web -> nomade ........... ?" 'vdn-ssh root@web "timeout 1 lynx -dump nomade &> /dev/null"' echoDone } testQ2() { tput reset echo "[Test Q2 : Fermeture]" echo vdnTest "/root/fermeDehors.sh existe ........ ?" 'vdn-ssh root@societe "test -e /root/fermeDehors.sh"' [ $? -eq 0 ] && { echo echo "Remarque : A vous d'exécuter le script !" echo } vdnTest "Filtrage des entrées sur societe ... ?" 'vdn-ssh root@nomade " { timeout 1 nmap -p 21 societe 2>1 | grep --line-buffered -q filtered; } && { timeout 1 nmap -p 22 societe 2>1 | grep --line-buffered -q open; }"' echoDone } testQ3() { tput reset echo "[Test Q3 : NAT]" echo vdnTest "/root/forward.sh existe... ?" 'vdn-ssh root@societe "test -e /root/forward.sh"' [ $? -eq 0 ] && { echo echo "Remarque : A vous d'exécuter le script !" echo } vdnTest "nomade -> societe (web) .. ?" 'vdn-ssh root@nomade "timeout 1 lynx -dump societe &> /dev/null"' echoDone } testQ4() { tput reset echo "[Test Q4 : Contrôle des sorties]" echo vdnTest "Filtrage des sorties de web ?" 'vdn-ssh root@web " { ! timeout 1 nmap -p 22 nomade 2>1 | grep --line-buffered -q open; } && { timeout 1 lynx -dump nomade &> /dev/null; }"' echoDone } # Partie n°2 # Fonction utilitaire : Récupère l'adresse IPv6 autoconfigurée # $1 : host # $2 : interface # Exemple : getIPv6 bigboss eth0 getIPv6() { echo $(vdn-ssh root@$1 'ip -6 addr show dev '$2' | grep inet6 | head -n 1 | tr -s " " | cut -d " " -f 3 | cut -d "/" -f 1') | sed -re 's/[^[:print:]]//g' } testIPv6() { ipWeb=$(getIPv6 web eth0) vdn-ssh root@bigboss "timeout 1 ping6 -c 1 -I eth0 $ipWeb &> /dev/null" } testQ5() { tput reset echo "[Test partie n°2 : IPv6]" echo vdnTest "ping6 bigboss -> web ?" 'testIPv6' echoDone } run() { requireGuests $SYSTEMS if ! echo ${BASH_ARGV[0]} | grep -q -i fast; then echo "Cette temporisation pour vous décourager d'utiliser ce test comme debogueur !" for i in $(seq 10 -1 0); do echo $i; sleep 1; done fi vdnExec testConfigBase testQ0 testQ1 testQ2 testQ3 testQ4 testQ5 }