暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
iptables交互配置脚本.txt
152
5页
2次
2022-02-23
5墨值下载
整个脚本是利用控制流(循环语句)实现一个交互的效果,再利用判断和 read 来实现配置
虽然有 200 多行代码,细看其实结构很清晰明了,一看就懂!
不过,为了能拿上台面加了很多字体颜色,不止是为了交互体验,也为了让关键字或者提示更加醒目。
同样可以用此结构来实现其他 service 的配置,个人感觉交互式的配置更直观、更简洁明了,我写了几个类
似的交互配置的脚本都经常在工作中使用
#!/bin/bash
while true
do
clear
echo "———————-menu————————"
echo -e "\033[49;32;1m(1) 重启\033[49;35;1miptables\033[0m "
echo -e "\033[49;32;1m(2) 添加\033[49;35;1miptables\033[49;32;1m 规则\033[0m "
echo -e "\033[49;32;1m(3) 删除\033[49;35;1miptables\033[49;32;1m 规则\033[0m "
echo -e "\033[49;32;1m(4) 关闭\033[49;35;1miptables\033[0m "
echo -e "\033[49;32;1m(5) 保存\033[49;35;1miptables\033[49;32;1m 规则(输完 ACL 后要记
得保存和查看)\033[0m "
echo -e "\033[49;32;1m(6) 查看\033[49;35;1miptables\033[49;32;1m 状态\033[0m "
echo -e "\033[49;32;1m(7) 添加\033[49;35;1miptables\033[49;32;1m 控制列表\033[0m "
echo -e "\033[49;32;1m(0) 退出脚本\033[0m "
echo "————————————————————"
echo -en "\033[49;31;1m 请输入数字 0-7: \033[0m"
read num
if [[ "${num}" =~ "^$" ]];
then
echo -e "\033[49;31;5m 请输入 0-7 中的数字!或者 Ctrl+C 退出! \033[0m"
else
if [[ "${num}" =~ "^[a-zA-Z]+$" ]];
then
echo -e "\033[49;31;5m 请输入 0-7 中的数字!或者 Ctrl+C 退出! \033[0m"
else
#if [ ${num} -lt 0 -o ${num} -gt 7 ]
if [[ "${num}" =~ "[8-9]" ]];
then
echo -e "\033[49;31;5m 请输入 0-7 中的数字!或者 Ctrl+C 退出! \033[0m"
else
if [ "${num}" == "1" ]
then
service iptables restart&
else
if [ "${num}" == "2" ]
#######################################################
then
while true
do
clear
echo "———————-add ACL———————"
echo -e "\033[49;32;1m(1) 针对源\033[49;35;1mIP\033[49;32;1m 放行添加\033[0m "
echo -e "\033[49;32;1m(2) 针对服务器\033[49;35;1m 端口\033[49;32;1m 放行添加 \033[0m
"
echo -e "\033[49;32;1m(3) 针对有\033[49;35;1mIP 和端口\033[49;32;1m 的规则添
\033[49;35;1m(这里要参数 IP 和端口 例如:1.1.1.1/255.255.0.0 80\033[0m "
echo -e "\033[49;32;1m(4) 自定义完整语句添加 \033[0m "
echo -e "\033[49;32;1m(0) 返回上一级 \033[0m "
echo "——————————————————————"
echo -en "\033[49;31;1m 请输入数字 0-4: \033[0m"
read aclnum
if [[ "${aclnum}" =~ "^$" ]];
then
echo -e "\033[49;31;5m 请输入 0-4 中的数字!或者 Ctrl+C 退出! \033[0m"
else
if [[ "${aclnum}" =~ "^[a-zA-Z]+$" ]];
then
echo -e "\033[49;31;5m 请输入 0-4 中的数字!或者 Ctrl+C 退出! \033[0m"
else
if [[ "${aclnum}" =~ "[5-9]" ]];
then
echo -e "\033[49;31;5m 请输入 0-4 中的数字!或者 Ctrl+C 退出! \033[0m"
elif [ "${aclnum}" == "1" ]
then
read ip
iptables -A INPUT -s ${ip} -p tcp -j ACCEPT
service iptables save
elif [ "${aclnum}" == "2" ]
then
read port
iptables -A INPUT -p tcp -s 0/0 --dport ${port} -j ACCEPT
service iptables save
elif [ "${aclnum}" == "3" ]
then
read ip port
iptables -A INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT
service iptables save
elif [ "${aclnum}" == "4" ]
then
read addacl
`${addacl}`
service iptables save
else
break
fi
fi
fi
echo -n "是否想继续添加,回车或 Y 继续,按 N 返回上一级!: [y/n]:"
read contine
if [ "${contine}" == "n" -o "${contine}" == "N" ]
then
break
fi
done
#######################################################
else
if [ "${num}" == "3" ]
then
while true
do
clear
echo "———————delete ACL———————-"
echo -e "\033[49;32;1m(1) 针对源\033[49;35;1mIP\033[49;32;1m 删除\033[0m "
echo -e "\033[49;32;1m(2) 针对服务器\033[49;35;1m 端口\033[49;32;1m 删除 \033[0m "
echo -e "\033[49;32;1m(3) 针对有\033[49;35;1mIP 和端口\033[49;32;1m 的规则删
\033[49;35;1m(这里要参数 IP 和端口 例如:1.1.1.1/255.255.0.0 80\033[0m "
echo -e "\033[49;32;1m(4) 自定义完整语句删除 \033[0m "
echo -e "\033[49;32;1m(0) 返回上一级 \033[0m "
echo "————————————————-"
echo -en "\033[49;31;1m 请输入数字 0-4: \033[0m"
read aclnum
if [[ "${aclnum}" =~ "^$" ]];
of 5
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜