Download :
nettl.sh
#!/bin/ksh
PATH="/usr/sbin:/usr/bin:${PATH}"
TMPCONF=/tmp/${0##*/}.${RANDOM}.conf
cp /dev/null ${TMPCONF}
V_PROG=${0}
#------------------------------------------------------------------------------#
### fonction d'arret du programme ####
arret_du_prog () {
echo "Vous trouverez l'historique de l'affichage dans le fichier /tmp/${V_PROG##*/}.log"
[ -f "${V_LOCK}" ] && rm "${V_LOCK}"
[ -f "${TMPCONF}" ] && rm "${TMPCONF}"
nettl -traceoff -entity all 2>/dev/null
exit ${1:-0}
}
#------------------------------------------------------------------------------#
#------------------------------------------------------------------------------#
### fonction d'affichage de l'aide ####
Usage () {
cat <<EOF
Usage:
$V_PROG [ -e entity ] -f filtre valeur [ ... -f filtre valeur ... ]
entity est 'all' par defaut et peut etre:
ip
tcp
udp
driver
icmp
nfs
loopback
x25
igmp
filtre peut etre une des valures suivantes:
Layer Type Filtre Description
_____________________________________________________________
Layer 1 dest hardware destination address
source hardware source address
interface software network interface
_____________________________________________________________
Layer 2 ssap IEEE802.2 source sap
dsap IEEE802.2 destination sap
type Ethernet type
_____________________________________________________________
Layer 3 ip_saddr IP source address
ip_daddr IP destination address
ip_proto IP protocol number
_____________________________________________________________
Layer 4 tcp_sport TCP source port
tcp_dport TCP destination port
udp_sport UDP source port
udp_dport UDP destination port
connection a level 4 (TCP, UDP) connection
_____________________________________________________________
Layer 5 rpcprogram RPC program
rpcprocedure RPC procedure
rpcdirection RPC call or reply
pour valeur a vous d'associer en fonction du filter.
exemples:
# pour voir les paquets tcp source et destination du port 21:
$V_PROG -e all -f tcp_sport 21 -f tcp_dport 21
EOF
exit ${1:-0}
}
#------------------------------------------------------------------------------#
#------------------------------------------------------------------------------#
### Analyse des arguments ####
while [ "${#}" -ne "0" ]
do
case $1
in
-e) # nettl entity
if [ "$2" = "all" ]
then
V_ENTITY=all
else
V_ENTITY=ns_ls_${2}
fi
shift 2
;;
-f) # netfmt filters
[ -z "$2" -o -z "$3" ] && echo "Merci de specifier un filtre" && usage
[ "$(echo $2 |cut -c1)" = "-" -o "$(echo $3 |cut -c1)" = "-" ] && {
echo "'-f ${2} ${3}' n'est pas une liste d'arguments valides"
Usage
}
echo "filter $2 $3">> ${TMPCONF}
shift 3
;;
esac
done
# Il faut des options de filtre a netfmt, sinon, pas d'interet
[ -z "$(cat ${TMPCONF})" ] && {
echo "Merci d'ajouter un filtre avec l'option '-f'."
Usage
}
trap arret_du_prog 1 2 3 11 13 15
V_LOCK=/tmp/${0##*/}.lock
if [ -f "${V_LOCK}" ]
then
echo "Erreur: ${0##*/} est deja en cours d'utilisation"
arret_du_prog 1
else
touch "${V_LOCK}"
fi
# Test de demarrage de nettl
if [ -z "$(UNIX95= ps -e -o args |grep "^/usr/lbin/ntl_reader " |grep -v grep)" ]
then
echo "nettl n'est pas demarre, veuillez lancer nettl pour activer les fonction de trace reseaux"
echo "pour lancer nettl il faut que la variable NETTL soit positionne avec '1' dans le fichier /etc/rc.config.d/nettl"
echo "ensuite, lancer la commande suivante: /sbin/init.d/nettl start"
arret_du_prog
fi
# affichage des infos resales
nettl -traceon all -entity ${V_ENTITY:-all} |netfmt -F -N -n -l -c ${TMPCONF} |tee /tmp/${0##*/}.log
arret_du_prog
faut avouer, je suis un peu pro hpux mais dès fois, on se rend compte qu’il y a des choses bien chez les autres, je prend l’exemple de snoop chez solaris, une commande livrée en standard qui équivaut à un nmap allégé.
sous hpux, on a bien nettl mais son utilisation est tellement obscure qu’il n’est pas facile de s’y retrouver.
voici donc un script qui va résoudre ce problème en simplifiant tout ça, lancer et arrêter le daemon nettl lancer les bonnes commandes etc…, voici son usage:
Usage:
./nettl.sh [ -e entity ] -f filtre valeur [ ... -f filtre valeur ... ]
entity est 'all' par defaut et peut etre:
ip
tcp
udp
driver
icmp
nfs
loopback
x25
igmp
filtre peut etre une des valures suivantes:
Layer Type Filtre Description
_____________________________________________________________
Layer 1 dest hardware destination address
source hardware source address
interface software network interface
_____________________________________________________________
Layer 2 ssap IEEE802.2 source sap
dsap IEEE802.2 destination sap
type Ethernet type
_____________________________________________________________
Layer 3 ip_saddr IP source address
ip_daddr IP destination address
ip_proto IP protocol number
_____________________________________________________________
Layer 4 tcp_sport TCP source port
tcp_dport TCP destination port
udp_sport UDP source port
udp_dport UDP destination port
connection a level 4 (TCP, UDP) connection
_____________________________________________________________
Layer 5 rpcprogram RPC program
rpcprocedure RPC procedure
rpcdirection RPC call or reply
pour valeur a vous d associer en fonction du filter.
exemples:
# pour voir les paquets tcp source et destination du port 21:
./nettl.sh -e all -f tcp_sport 21 -f tcp_dport 21
ce script m’a déjà fait gagner du temps, j’espère qu’il en sera de même pour vous.