Posted By

whitetiger on 11/09/06


Tagged

Shell Bash unix osx linux cli ssh perl dangerous mandrake


Versions (?)

Bash - Abilitare il NAT


 / Published in: Bash
 

  1. #!/bin/sh
  2.  
  3. case $1 in
  4.  
  5. "start")
  6.  
  7. if [ "$UID" = 0 ]; then
  8.  
  9. ### Tools usati
  10. IFCONFIG=`which ifconfig`
  11. GREP=`which grep`
  12. AWK=`which awk`
  13.  
  14. echo "Selezionare l'interfaccia con cui effettuare il NAT: "
  15.  
  16. select I in `$IFCONFIG | $GREP -i -e "Link" | $AWK '{ print $1 }'`
  17. do
  18. INTERFACE=$I
  19. break
  20. done
  21.  
  22. ### Tools usati
  23. MODPROBE=`which modprobe`
  24. IPTABLES=`which iptables`
  25.  
  26. # Inserisce il modulo per il Masquerade
  27. $MODPROBE ipt_MASQUERADE
  28.  
  29. $IPTABLES -F # Effettua il flush di tutti i chain
  30. $IPTABLES -t nat -F # Effettua il flush della tabella di NAT
  31. $IPTABLES -t mangle -F # Effettua il flush della mangle
  32. $IPTABLES -t nat -A POSTROUTING -o $INTERFACE -j MASQUERADE # Effettua il routing nella rete interna
  33.  
  34. # Abilità il Forward
  35. echo 1 > /proc/sys/net/ipv4/ip_forward
  36.  
  37. echo
  38. echo "NAT avviato sull'interfaccia: $INTERFACE"
  39.  
  40. else
  41.  
  42. echo
  43. echo "Non e' possibile effettuare il NAT se non sei Root..."
  44.  
  45. fi
  46. ;;
  47.  
  48. "stop")
  49.  
  50. if [ "$UID" = 0 ]; then
  51.  
  52. ### Tools usati
  53. IPTABLES=`which iptables`
  54.  
  55. $IPTABLES -F # Effettua il flush di tutti i chain
  56. $IPTABLES -t nat -F # Effettua il flush della tabella di NAT
  57. $IPTABLES -t mangle -F # Effettua il flush della mangle
  58.  
  59. echo 0 > /proc/sys/net/ipv4/ip_forward
  60.  
  61. echo
  62. echo "NAT stoppato sull'interfaccia di rete..."
  63.  
  64. else
  65.  
  66. echo
  67. echo "Non e' possibile rimuovere il NAT, non sei Root..."
  68.  
  69. fi
  70.  
  71. ;;
  72.  
  73. *)
  74.  
  75. echo
  76. echo "Sintassi: $0 { start | stop }"
  77.  
  78. ;;
  79.  
  80. esac

Report this snippet  

You need to login to post a comment.