fork download
  1. IFS=$OLDIFS;
  2.  
  3. if [[ -e $RULES ]]; then
  4. # {(!)in|(!)out|(!)fwd},iface,proto,scidr,sport,dcidr,dport,state
  5. while IFS=, read policy iface proto scidr sport dcidr dport state;do
  6. c="0";
  7. case $policy in
  8. !in) pol="INPUT -i"; jmp="DROP"; ;;
  9. !out) pol="OUTPUT -o"; jmp="DROP"; ;;
  10. !fwd) pol="FORWARD -i"; jmp="DROP"; ;;
  11. in) pol="INPUT -i"; jmp="ACCEPT"; ;;
  12. out) pol="OUTPUT -o"; jmp="ACCEPT"; ;;
  13. fwd) pol="FORWARD -i"; jmp="ACCEPT"; ;;
  14. *) c="1"; ;;
  15. esac
  16. case $state in
  17. i) state="-m state --state $I"; ;;
  18. n) state="-m state --state $N"; ;;
  19. e) state="-m state --state $E"; ;;
  20. r) state="-m state --state $R"; ;;
  21. ne) state="-m state --state $N,$E"; ;;
  22. nr) state="-m state --state $N,$R"; ;;
  23. er) state="-m state --state $E,$R"; ;;
  24. ner) state="-m state --state $N,$E,$R"; ;;
  25. *) state=""; ;;
  26. esac
  27.  
  28. if [[ ! $iface = "" ]];then rules=("$iface"); fi
  29. if [[ ! $proto = "" ]];then rules=(${rules[@]} " -p $proto"); fi
  30. if [[ ! $scidr = "" ]];then rules=(${rules[@]} " -s $scidr"); fi
  31. if [[ ! $sport = "" ]];then rules=(${rules[@]} " --sport $sport"); fi
  32. if [[ ! $dcidr = "" ]];then rules=(${rules[@]} " -d $dcidr"); fi
  33. if [[ ! $dport = "" ]];then rules=(${rules[@]} " --dport $dport"); fi
  34. if [[ ! $state = "" ]];then rules=(${rules[@]} " $stat"); fi
  35.  
  36. if [[ $c = 0 ]];then
  37. if [ $d ];then echo "Rules Array:"; printArray "'${rules[@]}'"; fi
  38. for i in ${rules[@]};do req="${req}${i}"; done²
  39. if [ $d ];then echo -e "Iptables Query:\n'$BIN -A $pol $req -j $jmp'"; fi
  40. $BIN -A $pol $req -j $jmp;
  41. fi
  42. unset pol req jmp
  43. done < $RULES
  44. writeDebug "init RULES=1";
  45. else
  46. if [[ $v ]];then echo "$RULES not found, this mean you should setup $BIN yourself. See man $BIN."; fi
  47. writeDebug "init RULES=0";
  48. fi
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty