home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 16 / hacker16 / 16_HACKER16.ISO / linux / tpm-security-server-1.2.1.iso / etc / rc.d / init.d / p0f < prev    next >
Encoding:
Text File  |  2004-01-27  |  1.9 KB  |  82 lines

  1. #!/bin/bash
  2. # p0f        This shell script takes care of starting and stopping
  3. #        the p0f monitoring program
  4. #
  5. # chkconfig: 2345 52 48
  6. # description: p0f - the p0f monitoring program. \
  7. # p0f performs passive OS fingerprinting technique bases on information coming \
  8. # from remote host when it establishes connection to our system. Captured \
  9. # packets contains enough information to determine OS - and, unlike \
  10. # active scanners (nmap, queSO) - without sending anything to this host.
  11. # processname: p0f
  12. # pidfile: /var/run/p0f.pid
  13.  
  14. PATH=/usr/bin:/sbin:/bin:/usr/sbin
  15. export PATH
  16.  
  17. # Source function library.
  18. . /etc/rc.d/init.d/functions
  19.  
  20. case "$1" in
  21. start)
  22.     echo -n "Starting p0f: "
  23.     #The 'tcp and tcp[13] & 2 = 2' requires at least syn set.
  24.     #An alternative would be 'tcp and tcp[13] & 0x3f = 2', which
  25.     #is syn and no other major flags (but ECN enabled packets are OK)
  26.     if [ -z "$BpfFilter" ]; then
  27.         BpfFilter='tcp and tcp[13] & 2 = 2'
  28.     else
  29.         BpfFilter="$BpfFilter and tcp and tcp[13] & 2 = 2"
  30.     fi
  31.  
  32.     #The command in backticks returns all the local IP addresses on this machine.
  33.     for OneIP in `/sbin/ifconfig 2>/dev/null | grep 'inet addr' | sed -e 's/.*addr://' -e 's/ .*//'` ; do
  34.         BpfFilter="$BpfFilter and not src host $OneIP"
  35.     done
  36.     rm -f /var/run/p0f.pid
  37.     #Start up p0f and filter out all packets originating from any of this machines IP's.
  38.     if [ -e /etc/p0f-mysql.conf ]; then
  39.         MysqlParam="-m /etc/p0f-mysql.conf"
  40.     else
  41.         MysqlParam=''
  42.     fi
  43.     nohup /usr/sbin/p0f $MysqlParam -v "$BpfFilter" >>/var/log/p0f 2>&1 &
  44.     echo $! >/var/run/p0f.pid
  45.     touch /var/lock/subsys/p0f
  46.     echo "done"
  47.     ;;
  48.  
  49. stop)
  50.     if [ -f /var/run/p0f.pid ]; then
  51.         echo -n "Stopping p0f: "
  52.         kill -TERM `cat /var/run/p0f.pid`
  53.         rm -f /var/run/p0f.pid
  54.         rm -f /var/lock/subsys/p0f
  55.         echo "done"
  56.     fi
  57.     ;;
  58.  
  59. restart)
  60.     $0 stop
  61.     $0 start
  62.     exit $?
  63.     ;;
  64.  
  65. status)
  66.     status p0f
  67.     exit $?
  68.     ;;
  69.  
  70. probe)
  71.     exit 0
  72.     ;;
  73.  
  74. *)
  75.     echo "Usage: $0 {start|stop|status|restart}"
  76.     exit 1
  77.     ;;
  78.  
  79. esac
  80.  
  81. exit 0
  82.