anonymize.sh 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #!/bin/bash
  2. TOR_EXCLUDE="192.168.0.0/16 172.16.0.0/12 10.0.0.0/8"
  3. TOR_UID="tor"
  4. TOR_PORT="9050"
  5. IPTABLES_BACKUP=/etc/network/iptables.rules
  6. function info {
  7. echo "[+] $1"
  8. }
  9. function error {
  10. echo "[!] $1"
  11. }
  12. function start {
  13. info "Killing non TOR traffic"
  14. if ! [ -f $IPTABLES_BACKUP ]; then
  15. touch $IPTABLES_BACKUP
  16. fi
  17. iptables-save > $IPTABLES_BACKUP
  18. info "Saved iptables rules"
  19. iptables -F
  20. info "Disabling IPv6"
  21. sysctl -w net.ipv6.conf.default.disable_ipv6=1
  22. for NET in $TOR_EXCLUDE 127.0.0.0/8; do
  23. iptables -A OUTPUT -d "$NET" -j ACCEPT
  24. done
  25. info "Allowing only TOR output"
  26. iptables -A OUTPUT -m owner --uid-owner $TOR_UID -j ACCEPT
  27. iptables -A OUTPUT -j REJECT
  28. }
  29. function stop {
  30. info "Restoring"
  31. iptables -F
  32. if [ -f $IPTABLES_BACKUP ]; then
  33. iptables-restore < $IPTABLES_BACKUP
  34. rm $IPTABLES_BACKUP
  35. fi
  36. sysctl -w net.ipv6.conf.default.disable_ipv6=0
  37. info "Done"
  38. }
  39. if [ $(id -u) -ne 0 ]; then
  40. error "This script must be run as root"
  41. exit 1
  42. fi
  43. case $1 in
  44. start)
  45. start
  46. ;;
  47. stop)
  48. stop
  49. ;;
  50. esac