shinji

Untitled

May 6th, 2016
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.90 KB | None | 0 0
  1. #!/usr/bin/env bash
  2. # Early check to ensure running as root.
  3. if [ "$EUID" -ne 0 ]
  4.   then echo "Please run as root"
  5.   exit
  6. fi
  7. # Define a set of ips to block and specify ports.  Port Blocking not working
  8. # Destroy if already exists
  9. if (`/sbin/iptables -C INPUT -p all -m set --match-set geoblock src -j DROP 2>/dev/null`); then
  10.     /sbin/iptables -D INPUT -p all -m set --match-set geoblock src -j DROP
  11. fi
  12. if ( `/sbin/iptables -C INPUT -p all -m set --match-set geoblock src -j LOG --log-prefix "geo deny: " 2>/dev/null`); then
  13.     /sbin/iptables -D INPUT -p all -m set --match-set geoblock src -j LOG --log-prefix "geo deny: "
  14. fi
  15. if (`/sbin/ip6tables -C INPUT -p all -m set --match-set geoblock6 src -j DROP 2>/dev/null`); then
  16.     /sbin/ip6tables -D INPUT -p all -m set --match-set geoblock6 src -j DROP
  17. fi
  18. if ( `/sbin/ip6tables -C INPUT -p all -m set --match-set geoblock6 src -j LOG --log-prefix "geo deny: " 2>/dev/null`); then
  19.     /sbin/ip6tables -D INPUT -p all -m set --match-set geoblock6 src -j LOG --log-prefix "geo deny: "
  20. fi
  21.  
  22. /sbin/ipset -q destroy geoblock
  23. /sbin/ipset -q destroy geoblock6
  24.  
  25. # Now rebuild and reinstate blocks -- hast:net,port doesn't work
  26. /sbin/ipset create geoblock hash:net
  27. /sbin/ipset create geoblock6 hash:net family inet6
  28. for IP in $(wget -O - http://www.ipdeny.com/ipblocks/data/aggregated/cn-aggregated.zone)
  29. do
  30.     # We be blocking
  31.     /sbin/ipset add geoblock $IP
  32. done
  33. for IP in $(wget -O - http://www.ipdeny.com/ipv6/ipaddresses/aggregated/cn-aggregated.zone)
  34. do
  35.     # We be blocking
  36.     /sbin/ipset add geoblock6 $IP
  37. done
  38.  
  39. /sbin/iptables -I INPUT -p all -m set --match-set geoblock src -j DROP
  40. /sbin/iptables -I INPUT -p all -m set --match-set geoblock src -j LOG --log-prefix "geo deny: "
  41. /sbin/ip6tables -I INPUT -p all -m set --match-set geoblock6 src -j DROP
  42. /sbin/ip6tables -I INPUT -p all -m set --match-set geoblock6 src -j LOG --log-prefix "geo deny: "
Advertisement
Add Comment
Please, Sign In to add comment