1. #!/bin/bash  

  2. while [ "1" == "1" ]  

  3. do  

  4. clear  

  5. echo "----------------------menu----------------------"  

  6. echo "(1) service iptables restart"  

  7. echo "(2) iptables add"  

  8. echo "(3) iptables delete"  

  9. echo "(4) iptables stop"  

  10. echo "(5) iptables save(输完ACL后要记得保存和查看)"  

  11. echo "(6) iptables status"  

  12. echo "(7) iptables ACL list"  

  13. echo "(0) exit"  

  14. echo "-------------------------------------------------"  

  15. echo -n "enter you chose[0-7]:"  

  16. read num  

  17. if [ ${num} -lt 0 -o ${num} -gt 7 ]  

  18.     then  

  19.       echo "this is not between 0-7"  

  20. else  

  21.    if [ "${num}" == "1" ]  

  22.       then  

  23.       service iptables restart&  

  24. else  

  25.    if [ "${num}" == "2" ]  

  26. #######################################################  

  27.        then  

  28.           while [ "1" == "1" ]  

  29.           do  

  30.           clear  

  31.           echo "----------------------add ACL----------------------"  

  32.           echo "(1) 针对源IP放行添加"  

  33.           echo "(2) 针对服务器端口放行添加"  

  34.           echo "(3) 针对有端口和服务的ACL添加(这里要参数IP和端口 例如 0/0 80)"  

  35.           echo "(4) 自定义添加"  

  36.           echo "(5) 退回上一级"  

  37.           echo "-------------------------------------------------"  

  38.           echo -n "enter you chose[0-4]:"  

  39.           read aclnum  

  40.           if [ "${aclnum}" == "1" ]  

  41.              then  

  42.              read ip  

  43.              iptables -A INPUT -s ${ip} -p tcp --dport 22 -j ACCEPT  

  44.              service iptables save  

  45.           elif [ "${aclnum}" == "2" ]  

  46.              then  

  47.              read ip  

  48.              iptables -A INPUT -p tcp --dport ${IP}  -j ACCEPT  

  49.              service iptables save  

  50.           elif [ "${aclnum}" == "3" ]  

  51.              then  

  52.              read ip port  

  53.              iptables -A INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT  

  54.              service iptables save  

  55.           elif [ "${aclnum}" == "4" ]  

  56.              then  

  57.              read addacl  

  58.              `${addacl}`  

  59.              service iptables save  

  60.           else  

  61.              break  

  62.           fi  

  63.           echo -n "是否想继续添加: [y/n]:"  

  64.           read contine  

  65.           if [ "${contine}" == "n" -o "${contine}" == "N" ]  

  66.              then  

  67.              break  

  68.              fi  

  69.           done  

  70. #######################################################  

  71. else  

  72.    if [ "${num}" == "3" ]  

  73.           then  

  74.           while [ "1" == "1" ]  

  75.           do  

  76.           clear  

  77.           echo "---------------------delete ACL----------------------"  

  78.           echo "(1) 针对源ip删除"  

  79.           echo "(2) 针对端口删除"  

  80.           echo "(3) 针对有端口和服务的ACL删除"  

  81.           echo "(4) 自定义删除"  

  82.           echo "(5) 退回上一级"  

  83.           echo "-------------------------------------------------"  

  84.           echo -n "enter you chose[0-5]:"  

  85.           read aclnum  

  86.           if [ "${aclnum}" == "1" ]  

  87.              then  

  88.              read ip  

  89.              iptables -D INPUT -s ${ip} -p tcp --dport 22 -j ACCEPT  

  90.              service iptables save  

  91.           elif [ "${aclnum}" == "2" ]  

  92.              then  

  93.              read port  

  94.              iptables -D INPUT -p tcp --dport ${port}  -j ACCEPT  

  95.              service iptables save  

  96.           elif [ "${aclnum}" == "3" ]  

  97.              then  

  98.              read ip port  

  99.              iptables -D INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT  

  100.              service iptables save  

  101.           elif [ "${aclnum}" == "4" ]  

  102.              then  

  103.              read deleteacl  

  104.              `${deleteacl}`  

  105.              service iptables save  

  106.           else  

  107.              break  

  108.           fi  

  109.           echo -n "是否想继续添加: [y/n]:"  

  110.           read contine  

  111.           if [ "${contine}" == "n" -o "${contine}" == "N" ]  

  112.              then  

  113.              break  

  114.              fi  

  115.           done  

  116. ###################################################################    

  117. else  

  118.    if [ "${num}" == "4" ]  

  119.        then  

  120.        echo -e "`service iptables stop&` "  

  121. else  

  122.    if [ "${num}" == "5" ]  

  123.        then  

  124.        echo -e "`service iptables save&`"  

  125. else  

  126.    if [ "${num}" == "6" ]  

  127.        then  

  128.        echo -e "`service iptables status&`"  

  129. else  

  130.    if [ "${num}" == "7" ]  

  131.        then  

  132.          while [ "1" == "1" ]  

  133.        do  

  134.        clear  

  135.        echo "---------------------list ACL----------------------"  

  136.        echo "(1) 查看当前正在使用的规则集"  

  137.        echo "(2) 查看每个策略或每条规则、每条链的简单流量统计"  

  138.        echo "(3) 查看NAT表"  

  139.        echo "(4) 自定义查看"  

  140.        echo "(5) 退回上一级"  

  141.        echo "-------------------------------------------------"  

  142.        echo -n "enter you chose[0-5]:"  

  143.        read aclnum  

  144.        if [ "${aclnum}" == "1" ]  

  145.           then  

  146.           iptables -L  

  147.        elif [ "${aclnum}" == "2" ]  

  148.           then  

  149.           iptables -L -n -v  

  150.        elif [ "${aclnum}" == "3" ]  

  151.           then  

  152.           iptables -L -t nat  

  153.        elif [ "${aclnum}" == "4" ]  

  154.           then  

  155.           read listacl  

  156.           `${listacl}`  

  157.        else  

  158.         break  

  159.          fi  

  160.        echo -n "是否想继续添加: [y/n]:"  

  161.           read contine  

  162.           if [ "${contine}" == "n" -o "${contine}" == "N" ]  

  163.              then  

  164.              break  

  165.           fi  

  166.        done  

  167. ################################################  

  168. else       

  169.    exit  

  170. fi  

  171.   fi  

  172.     fi  

  173.      fi  

  174.       fi  

  175.        fi  

  176.         fi  

  177.          fi  

  178. echo -n "Do you contine [y/n]:"  

  179. read contine  

  180. if [ "${contine}" == "n" -o "${contine}" == "N" ]  

  181.    then  

  182.    exit  

  183. fi  

  184. done 

 


        转至:http://blog.csdn.net/kumu_linux/article/details/7599241