iptables交互配置shell脚本
- #!/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}" == "" ]
- then
- service iptables restart&
- else
- if [ "${num}" == "" ]
- #######################################################
- 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}" == "" ]
- then
- read ip
- iptables -A INPUT -s ${ip} -p tcp -j ACCEPT
- service iptables save
- elif [ "${aclnum}" == "" ]
- then
- read port
- iptables -A INPUT -p tcp -s / --dport ${port} -j ACCEPT
- service iptables save
- elif [ "${aclnum}" == "" ]
- then
- read ip port
- iptables -A INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT
- service iptables save
- elif [ "${aclnum}" == "" ]
- 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}" == "" ]
- 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}" =~ "^$" ]];
- 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}" == "" ]
- then
- read ip
- iptables -D INPUT -s ${ip} -p tcp -j ACCEPT
- service iptables save
- elif [ "${aclnum}" == "" ]
- then
- read port
- iptables -D INPUT -p tcp -s / --dport ${port} -j ACCEPT
- service iptables save
- elif [ "${aclnum}" == "" ]
- then
- read ip port
- iptables -D INPUT -p tcp -s ${ip} --dport ${port} -j ACCEPT
- service iptables save
- elif [ "${aclnum}" == "" ]
- then
- read deleteacl
- `${deleteacl}`
- 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}" == "" ]
- then
- echo -e "`service iptables stop&` "
- else
- if [ "${num}" == "" ]
- then
- echo -e "`service iptables save&`"
- else
- if [ "${num}" == "" ]
- then
- echo -e "`service iptables status&`"
- else
- ##################################################################
- if [ "${num}" == "" ]
- then
- while true
- do
- clear
- echo "———————list ACL———————-"
- echo -e "\033[49;32;1m(1) 看当前正在使用的规则集 \033[0m "
- echo -e "\033[49;32;1m(2) 查看每个策略或每条规则、每条链的简单流量统计\033[0m "
- echo -e "\033[49;32;1m(3) 查看NAT表 \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}" == "" ]
- then
- iptables -L
- elif [ "${aclnum}" == "" ]
- then
- iptables -L -n -v
- elif [ "${aclnum}" == "" ]
- then
- iptables -L -t nat
- elif [ "${aclnum}" == "" ]
- then
- read listacl
- `${listacl}`
- else
- break
- fi
- fi
- fi
- echo -n "是否想继续查看,回车或Y继续,按N返回上一级!: [y/n]:"
- read contine
- if [ "${contine}" == "n" -o "${contine}" == "N" ]
- then
- break
- fi
- done
- ################################################
- else
- exit
- fi
- fi
- fi
- fi
- fi
- fi
- fi
- fi
- fi
- fi
- echo -n "按回车或者Y返回上一级,按N退出程序![y/n]:"
- read contine
- if [ "${contine}" == "n" -o "${contine}" == "N" ]
- then
- exit
- fi
- done
iptables交互配置shell脚本的更多相关文章
- linux - 怎么自动填写有交互的shell脚本 - SegmentFault
linux - 怎么自动填写有交互的shell脚本 - SegmentFault TCL/Expect交互式自动化测试概要 - - ITeye技术网站 expect是一种基于TCL,能与交互式程序进行 ...
- dns自动配置shell脚本
代码: #!/bin/bash #获取url echo "url:" read url #获取ip echo "ip:" read ip #向/etc/name ...
- 使用 shell 脚本配置 iOS 工程
APP开发过程中,往往需要在多个网络环境或配置中进行切换,以获取不同配置的APP,甚至有时需要用一套代码经过简单的配置生成不同的APP.而手动配置费时费力,且容易出错.这里介绍用脚本工具,去生成不 ...
- shell脚本多进程
shell脚本再执行过程中就一个进程,从头到尾 下面配置shell脚本执行过程中启动多个进程同时执行 #!/bin/bash for ((i=1;i<=10;i++)) do ( echo &q ...
- [PY3]——环境配置(1)——pyenv | pip | ipython | jupyter(含安装pyenv环境shell脚本)
1.关于pyenv (1)pyenv是一个开源的.shell脚本编写的工具:Simple Python version management (2)为什么使用pyenv:当多个项目同时在开发与维护时, ...
- CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动1.关于mysql?MySQL是一个关系型数据库管理 ...
- shell脚本交互:expect学习笔记及实例详解
最近项目需求,需要写一些shell脚本交互,管道不够用时,expect可以很好的实现脚本之间交互,搜索资料,发现网上好多文章都是转载的,觉得这篇文章还不错,所以简单修改之后拿过来和大家分享一下~ 1. ...
- springboot打包不同环境配置与shell脚本部署
本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assembly-plu ...
- Shell脚本交互之:自动输入密码
Shell脚本交互之:自动输入密码 2016年04月09日 19:41:26 zhangjikuan 阅读数:58208 标签: Shell交互自动输入密码expect重定向管道 更多 个人分类: A ...
随机推荐
- 字典树(Trie Tree)
在图示中,键标注在节点中,值标注在节点之下.每一个完整的英文单词对应一个特定的整数.Trie 可以看作是一个确定有限状态自动机,尽管边上的符号一般是隐含在分支的顺序中的.键不需要被显式地保存在节点中. ...
- mysql入门教程
mysql相信大家都非常熟悉,but读音你们都读对了么?MySQL [maɪ ˌɛskjuːˈɛl] [maɪ ˈsiːkwəl] 念 买S奎儿 或 买吸扣 都可以,还有好多容易读错的名词,详情请见I ...
- 读取文件内容fopen,fgets,fclose
<?php //首先采用“fopen”函数打开文件,得到返回值的就是资源类型.$file_handle = fopen("/data/webroot/resource/php/f.tx ...
- 怎么启动或停止mysql服务
在linux下, 启动mysql用 service mysql start 停止用 service mysql stop 在windows下, 启动用 net start mysql 停止 ...
- request获取请求头和请求数据
package cn.itcast.request; import java.io.IOException; import java.io.InputStream; import java.io.Pr ...
- 【iCore3 双核心板】例程三十四:U_DISK_IAP_ARM实验——更新升级STM32
实验指导书及代码包下载: http://pan.baidu.com/s/1pKabR7P iCore3 购买链接: https://item.taobao.com/item.htm?id=524229 ...
- Mysql5.5命令行修改密码
今天下载了mysql5.5.45免安装版,配置好之后发现mysql默认是没有设置密码的,也就是密码为空. 如果是本机作开发测试用,有无密码倒也无所谓,不过发布在服务器上没有密码肯定是不行的,那就需要设 ...
- phpcmsv9的评论分表策略
comment_table表 comment表 comment_data_x表 我们留意到: comment_table表统计每个comment_data_x表里面有多少条记录, comment表只是 ...
- win7下用mklink命令解决delphiXE系列占用C盘空间的问题
DelphiXE从2010以后, 安装程序安装完成后都会在ProgramData目录里复制一份安装程序的备份, 随着版本升级安装包越来越大, 占用C盘的空间也就越来越大 虽然可以通过删除的方式删掉, ...
- 【翻译】How To Tango With Django 1.5.4 第五章
5数据模型和数据库 一个模型就是一个描述你数据表的python对象.不用再通过SQL来操作数据库,而是使用python对象来操作数据库. 5.1rango要求 ...一个目录下面有多个下面 ...一个 ...