Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 7th, 2012  |  syntax: None  |  size: 1.33 KB  |  hits: 8  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #!/bin/sh
  2.  
  3. DEFAULT_TIMEOUT=60
  4. ACCEPTSCRIPT=$0
  5.  
  6. if [ "$1" = "" ]; then
  7.     echo
  8.     echo "Usage:"
  9.     echo "       acceptsship.sh <ip-address> [timeout=${DEFAULT_TIMEOUT}s]"
  10.     echo
  11.     exit 1
  12. fi
  13.  
  14. IPADDR=$1
  15. TIMEOUT=$2
  16.  
  17. # check validity of IP-Address
  18. IP_REGEX='^\(\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)\.\)\{3\}\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)$'
  19. IPADDR_CHECK=$(echo $IPADDR | sed s/$IP_REGEX//)
  20. if [ "$IPADDR_CHECK" = "$IPADDR" ]; then
  21.     echo "Invalid IP-Address!"
  22.     exit 1
  23. fi
  24.  
  25. # check validity of timeout
  26. if [ "$TIMEOUT" = "" ]; then
  27.     TIMEOUT=$DEFAULT_TIMEOUT
  28. fi
  29. if [ "$TIMEOUT" -gt "300" ]; then
  30.     TIMEOUT=$DEFAULT_TIMEOUT
  31. fi
  32. if [ "$TIMEOUT" -le "0" ]; then
  33.     TIMEOUT=$DEFAULT_TIMEOUT
  34. fi
  35.  
  36. TIMEOUT_CHECK=$(expr $TIMEOUT + 0)
  37. if [ $? != 0 -o "$TIMEOUT_CHECK" != "$TIMEOUT" ]; then
  38.     echo "Timeout must be a numeric value!"
  39.     exit 1
  40. fi
  41.  
  42. # check if the script is already running
  43. pidof -o %PPID -x $ACCEPTSCRIPT > /dev/null
  44. if [ $? != 1 ]; then
  45.     echo "Already running!"
  46.     exit 1
  47. fi
  48.  
  49. echo "Accepting SSH connections from $IPADDR for $TIMEOUT seconds..."
  50.  
  51. acceptaddress()
  52. {
  53.     iptables -I INPUT -s $IPADDR -p tcp -m tcp --dport 22 -j ACCEPT && \
  54.     sleep $TIMEOUT && \
  55.     iptables -D INPUT -s $IPADDR -p tcp -m tcp --dport 22 -j ACCEPT
  56. }
  57.  
  58. acceptaddress &
  59.  
  60. # close standard output and exit
  61. >&-
  62. exit 0