update.sh 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/sh
  2. # create ipset
  3. ipset create ustc_blacklist_v4 hash:ip --exist
  4. ipset create ustc_blacklist_v4_net hash:net --exist
  5. ipset create ustc_blacklist_v6 hash:ip --exist
  6. ipset create ustc_blacklist_v6_net hash:net --exist
  7. # flush ipset
  8. ipset flush ustc_blacklist_v4
  9. ipset flush ustc_blacklist_v4_net
  10. ipset flush ustc_blacklist_v6
  11. ipset flush ustc_blacklist_v6_net
  12. # delete data if exist
  13. [ -f "blacklist_ustc.txt" ] && rm blacklist_ustc.txt
  14. wget http://blackip.ustc.edu.cn/list.php?txt -O blacklist_ustc.txt
  15. # get wget command status
  16. if [ $? -eq 0 ]
  17. then
  18. echo "Blacklist file downloaded."
  19. # processing data
  20. echo "Processing data..."
  21. python3 proceed.py
  22. # add the host foreach in file to ipset
  23. # ipv4
  24. echo "Processing ipv4 list."
  25. for addr in `cat dst/ipv4_list.txt`
  26. do
  27. ipset add ustc_blacklist_v4 $addr
  28. done
  29. echo "finshed."
  30. # ipv4_net
  31. echo "Processing ipv4 net list."
  32. for addr in `cat dst/ipv4_net_list.txt`
  33. do
  34. ipset add ustc_blacklist_v4_net $addr
  35. done
  36. echo "finshed."
  37. # ipv6
  38. echo "Processing ipv6 list."
  39. for addr in `cat dst/ipv6_list.txt`
  40. do
  41. ipset add ustc_blacklist_v6 $addr
  42. done
  43. echo "finshed."
  44. # ipv6 net
  45. echo "Processing ipv6 net list."
  46. for addr in `cat dst/ipv6_net_list.txt`
  47. do
  48. ipset add ustc_blacklist_v6_net $addr
  49. done
  50. echo "finshed."
  51. else
  52. echo "Failed to fetch the blacklist file."
  53. fi
  54. # config iptables
  55. iptables --table filter --append INPUT --match set --match-set ustc_blacklist_v4 src --jump DROP
  56. iptables --table filter --append INPUT --match set --match-set ustc_blacklist_v4_net src --jump DROP
  57. iptables --table filter --append INPUT --match set --match-set ustc_blacklist_v6 src --jump DROP
  58. iptables --table filter --append INPUT --match set --match-set ustc_blacklist_v6_net src --jump DROP
  59. # echo
  60. echo "iptable updated."
  61. echo "listing options..."
  62. iptables --table filter --list --line-numbers