Shell實現(xiàn)的iptables管理腳本分享
更新時間:2014年12月23日 11:33:55 投稿:junjie
這篇文章主要介紹了Shell實現(xiàn)的iptables管理腳本分享,本文腳本實現(xiàn)了添加、刪除、查看、停止、啟動等,需要的朋友可以參考下
以前的腳本是用save模式,現(xiàn)在把命令附加到一個文件里面,這樣的話,可以方便的二次修改什么的
腳本基本是這樣的,大家可以跟自己的情況再次修改~ 增加功能什么的。



復(fù)制代碼 代碼如下:
#!/bin/bash
while true
do
clear
echo "----------------------menu----------------------"
echo "(1) service iptables restart"
echo "(2) iptables add"
echo "(3) iptables delete"
echo "(4) iptables stop"
echo "(5) iptables save(不推薦使用這種模式)"
echo "(6) iptables status"
echo "(7) iptables ACL list"
echo "(0) exit"
echo "會在當(dāng)前的目錄下生成一個fw.sh文件"
echo "-------------------------------------------------"
echo -n "enter you chose[0-7]:"
read num
if [ ${num} -lt 0 -o ${num} -gt 7 ]
then
echo "this is not between 0-7"
else
if [ "${num}" == "1" ]
then
service iptables restart&
else
if [ "${num}" == "2" ]
#######################################################
then
while [ "1" == "1" ]
do
clear
echo "----------------------add ACL----------------------"
echo "(1) 針對源IP放行添加"
echo "(2) 針對服務(wù)器端口放行添加"
echo "(3) 針對有端口和服務(wù)的ACL添加(這里要參數(shù)IP和端口 例如 0/0 80)"
echo "(4) 自定義添加"
echo "(5) 退回上一級"
echo "-------------------------------------------------"
echo -n "enter you chose[0-4]:"
read aclnum
if [ "${aclnum}" == "1" ]
then
read ip
iptables -A INPUT -s ${ip} -p tcp --dport 22 -j ACCEPT
echo "iptables -A INPUT -s ${ip} -p tcp --dport 22 -j ACCEPT" >>fw.sh
# service iptables save
elif [ "${aclnum}" == "2" ]
then
rad ip
iptables -A INPUT -p tcp --dport ${IP} -j ACCEPT
echo "iptables -A INPUT -p tcp --dport ${IP} -j ACCEPT" >>fw.sh
# service iptables save
elif [ "${aclnum}" == "3" ]
then
read ip port
iptables -A INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT
echo "iptables -A INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT" >>fw.sh
# service iptables save
elif [ "${aclnum}" == "4" ]
then
read addacl
`${addacl}`
service iptables save
else
break
fi
echo -n "是否想繼續(xù)添加: [y/n]:"
read contine
if [ "${contine}" == "n" -o "${contine}" == "N" ]
then
break
fi
done
#######################################################
else
if [ "${num}" == "3" ]
then
while [ "1" == "1" ]
do
clear
echo "---------------------delete ACL----------------------"
echo "(1) 針對源ip刪除"
echo "(2) 針對端口刪除"
echo "(3) 針對有端口和服務(wù)的ACL刪除"
echo "(4) 自定義刪除"
echo "(5) 退回上一級"
echo "-------------------------------------------------"
echo -n "enter you chose[0-5]:"
read aclnum
if [ "${aclnum}" == "1" ]
then
read ip
iptables -D INPUT -s ${ip} -p tcp --dport 22 -j ACCEPT
echo "iptables -D INPUT -s ${ip} -p tcp --dport 22 -j ACCEPT" >>fw.sh
# service iptables save
elif [ "${aclnum}" == "2" ]
then
read port
iptables -D INPUT -p tcp --dport ${port} -j ACCEPT
echo "iptables -D INPUT -p tcp --dport ${port} -j ACCEPT" >>fw.sh
# service iptables save
elif [ "${aclnum}" == "3" ]
then
read ip port
iptables -D INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT
echo "iptables -D INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT" >>fw.sh
# service iptables save
elif [ "${aclnum}" == "4" ]
then
read deleteacl
`${deleteacl}`
service iptables save
else
break
fi
echo -n "是否想繼續(xù)添加: [y/n]:"
read contine
if [ "${contine}" == "n" -o "${contine}" == "N" ]
then
break
fi
done
###################################################################
else
if [ "${num}" == "4" ]
then
echo -e "`service iptables stop&` "
else
if [ "${num}" == "5" ]
then
echo -e "`service iptables save&`"
else
if [ "${num}" == "6" ]
then
echo -e "`service iptables status&`"
else
if [ "${num}" == "7" ]
then
while [ "1" == "1" ]
do
clear
echo "---------------------list ACL----------------------"
echo "(1) 查看當(dāng)前正在使用的規(guī)則集"
echo "(2) 查看每個策略或每條規(guī)則、每條鏈的簡單流量統(tǒng)計"
echo "(3) 查看NAT表"
echo "(4) 自定義查看"
echo "(5) 退回上一級"
echo "-------------------------------------------------"
echo -n "enter you chose[0-5]:"
read aclnum
if [ "${aclnum}" == "1" ]
then
iptables -L
elif [ "${aclnum}" == "2" ]
then
iptables -L -n -v
elif [ "${aclnum}" == "3" ]
then
iptables -L -t nat
elif [ "${aclnum}" == "4" ]
then
read listacl
`${listacl}`
else
break
fi
echo -n "是否想繼續(xù)添加: [y/n]:"
read contine
if [ "${contine}" == "n" -o "${contine}" == "N" ]
then
break
fi
done
################################################
else
exit
fi
fi
fi
fi
fi
fi
fi
fi
echo -n "Do you contine [y/n]:"
read contine
if [ "${contine}" == "n" -o "${contine}" == "N" ]
then
exit
fi
done
相關(guān)文章
獲取磁盤IO與系統(tǒng)負(fù)載Load的shell腳本
本節(jié)介紹的幾段shell腳本,可以用于提取磁盤的I/O信息,系統(tǒng)負(fù)載Load信息等2013-08-08
詳解Linux中atime,mtime,ctime的使用場景
這篇文章主要介紹了Linux的三個時間atime,mtime,ctime詳細(xì)說明與使用場景,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起了解一下2022-10-10

