You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

137 lines
3.6 KiB

#!/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
}