Taragolis

14-ipsetrules

Aug 8th, 2016
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.00 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. set -e
  4.  
  5. IPSET_EXEC=/sbin/ipset
  6. IPSET_LIST=/etc/iptables/ipset.rules
  7.  
  8. rc=0
  9.  
  10. load_rules()
  11. {
  12.     if [ ! -f $IPSET_LIST ]; then
  13.         echo "Warning: skipping IPSET (no rules to load)"
  14.     else
  15.         $IPSET_EXEC destroy
  16.         $IPSET_EXEC restore < $IPSET_LIST 2> /dev/null
  17.         if [ $? -ne 0 ]; then
  18.             rc=1
  19.         fi
  20.     fi
  21. }
  22.  
  23. save_rules()
  24. {
  25.     touch $IPSET_LIST
  26.     chmod 0640 $IPSET_LIST
  27.     $IPSET_EXEC save > $IPSET_LIST
  28.     if [ $? -ne 0 ]; then
  29.         rc=1
  30.     fi
  31.  
  32. }
  33.  
  34. flush_rules()
  35. {
  36.     $IPSET_EXEC destroy
  37.     if [ $? -ne 0 ]; then
  38.         rc=1
  39.     fi
  40. }
  41.  
  42. if [ ! -x $IPSET_EXEC ]; then
  43.     echo "Warning: $IPSET_EXEC not exist"
  44.     exit 2
  45. fi
  46.  
  47. case "$1" in
  48. start|restart|reload|force-reload)
  49.     load_rules
  50.     ;;
  51. save)
  52.     save_rules
  53.     ;;
  54. stop)
  55.     echo "Automatic flushing disabled, use \"flush\" instead of \"stop\""
  56.     ;;
  57. flush)
  58.     flush_rules
  59.     ;;
  60. *)
  61.     echo "Usage: $0 {start|restart|reload|force-reload|save|flush}" >&2
  62.     exit 1
  63.     ;;
  64. esac
  65.  
  66. exit $rc
Advertisement
Add Comment
Please, Sign In to add comment