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



復(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)前的目錄下生成一個(gè)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) 查看每個(gè)策略或每條規(guī)則、每條鏈的簡單流量統(tǒng)計(jì)"
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)文章
Linux使用watch命令實(shí)時(shí)查看容器狀態(tài)
在現(xiàn)代的軟件開發(fā)和運(yùn)維中,Docker 容器技術(shù)已經(jīng)成為構(gòu)建、部署和運(yùn)行應(yīng)用程序的主流方式,隨著容器化技術(shù)的普及,監(jiān)控和管理容器的運(yùn)行狀態(tài)變得越來越重要,本文給大家介紹了Linux使用watch命令實(shí)時(shí)查看容器狀態(tài),需要的朋友可以參考下2024-12-12
實(shí)現(xiàn)core文件自動生成配置文件的方法
這篇文章主要介紹了實(shí)現(xiàn)core文件自動生成配置文件的方法,需要的朋友可以參考下2014-07-07
獲取磁盤IO與系統(tǒng)負(fù)載Load的shell腳本
本節(jié)介紹的幾段shell腳本,可以用于提取磁盤的I/O信息,系統(tǒng)負(fù)載Load信息等2013-08-08
詳解Linux中atime,mtime,ctime的使用場景
這篇文章主要介紹了Linux的三個(gè)時(shí)間atime,mtime,ctime詳細(xì)說明與使用場景,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起了解一下2022-10-10
探究正常運(yùn)行的shell腳本為啥有時(shí)會報(bào)錯(cuò)
正常運(yùn)行的shell腳本為啥有時(shí)會報(bào)錯(cuò)呢,這篇文章主要就是來和大家探索一下報(bào)錯(cuò)的原因以及解決方法,感興趣的小伙伴可以跟隨小編一起了解一下2023-08-08

