我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Shell实现的iptables管理脚本分享

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Shell实现的iptables管理脚本分享

以前的脚本是用save模式,现在把命令附加到一个文件里面,这样的话,可以方便的二次修改什么的
脚本基本是这样的,大家可以跟自己的情况再次修改~ 增加功能什么的。

查看图片

查看图片

查看图片

#!/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 "会在当前的目录下生成一个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) 针对服务器端口放行添加"

          echo "(3) 针对有端口和服务的ACL添加(这里要参数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 "是否想继续添加: [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) 针对有端口和服务的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 "是否想继续添加: [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) 查看当前正在使用的规则集"

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

       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 "是否想继续添加: [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

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Shell实现的iptables管理脚本分享

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Shell实现的iptables管理脚本分享

以前的脚本是用save模式,现在把命令附加到一个文件里面,这样的话,可以方便的二次修改什么的 脚本基本是这样的,大家可以跟自己的情况再次修改~ 增加功能什么的。#!/bin/bashwhile truedoclearecho "-----
2022-06-04

Shell实现的iptables管理脚本的方法教程

这篇文章主要讲解了“Shell实现的iptables管理脚本的方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell实现的iptables管理脚本的方法教程”吧!代码如下:#!/b
2023-06-09

一键配置CentOS iptables防火墙的Shell脚本分享

手里几台VPS配置iptables太繁琐,看到了朱哥的LNMP脚本里有一个自动配置iptables防火墙的脚本,借来改了一下,给需要的人用; 只提供常用端口的设置,如果你有特殊需求只需自行添加或减少相应的端口即可; 使用方法:chmod +
2022-06-04

Shell实现的Oracle启动脚本分享

Usage: sh oracled [start|stop|restart] SIDs 其中SIDs是数据库名,多个名称之间用逗号分隔。缺省的操作是 restart ,也可以指定需要进行的操作( start | stop | restart
2022-06-04

8个实用的Shell脚本分享

几个Shell脚本的例子,觉得还不错。 【例子:001】判断输入为数字,字符或其他#!/bin/bash read -p "Enter a number or string here:" input case $input in [0
2022-06-04

Shell脚本实现监控iptables运行状态

最近在调试服务器的iptables,自己做了个定时关iptables,但晚上回家很少开电脑,所以就没法去启动iptables,当然你可能会说,为什么不取消定时关闭iptables,我只能说个人的环境不一样,需求也就不一样.脚本内容:vi i
2022-06-04

shell脚本结合iptables防端口扫描的实现

网上有现在的防端口工具,如psad、portsentry,但觉得配置有点麻烦,且服务器不想再装一个额外的软件。所以自己就写了个shell脚本实现这个功能。基本思路是:使用iptables的recent模块记录下在60秒钟内扫描超过10个端口
2022-06-04

Shell实现强制释放内存脚本分享

公司服务器最近两天老是因为内存被使用满而造成死机,实在是受不了老叫机房的人去帮忙重启,专门写了个脚本来释放下内存,当然这台服务器不是太重要,我粗鲁的处理方式估计不会适合大多数服务器,请大家使用之前先考虑清楚,不然造成数据丢失就不关我的事了.
2022-06-04

Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享

环境: ssh server: 192.168.100.29 server.example.com ssh client: 192.168.100.30 client.example.com 通过root用户建立秘钥认证实现SHELL脚
2022-06-04

Shell脚本实现的阳历转农历代码分享

闲来无事,想在Linux下用shell写一个阳历转农历的脚本,断断续续大概一个星期终于搞定。现在拿出来与大家分享。 1、缘由 本脚本实现原理是查表法(因为公式有误差);基于农历新年为基准,对农历新年前后两个不同的农历进行计算。 写这个脚本之
2022-06-04

实现释放CentOS系统内存的Shell脚本分享

这几天发现CentOS系统内存一直涨,即使把apache和mysql关闭了,内存也不释放,可以使用以下脚本来释放内存:脚本内容:#! /bin/bash # cache释放: # To free pagecache: sync
2022-06-04

shell脚本结合iptables防端口扫描的实现方法

这篇文章主要讲解了“shell脚本结合iptables防端口扫描的实现方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell脚本结合iptables防端口扫描的实现方法”吧!网上有现在
2023-06-09

shell脚本实现ssh自动登录功能分享

文件名:ssh_auto_login#!/usr/bin/expect### ssh模拟登陆器## @author zhiyuan ##if {$argc<4} { puts "Error
2022-06-04

实现大小写字母转换的shell脚本分享

这篇文章主要讲解了“实现大小写字母转换的shell脚本分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“实现大小写字母转换的shell脚本分享”吧!代码如下:#!/bin/sh #edit
2023-06-09

获取shell脚本自身所在目录的Shell脚本分享

前几天写的七牛的参赛demo,用bash写了一个便捷安装的脚本,涉及到了路径相关的判断,从stackoverflow,加上自己的实践整理一下。 简单版 下面是一个最简单的实现,可以解决大多数问题,缺陷是对于软链接显示的是软链接所在的目录 l
2022-06-04

Shell脚本实现监控iptables规则是否被修改

最近看了一篇通过nagios实现MD5实时监控iptables状态的文章,就想是否可以用shell也做到监控iptables规则改变,经过实验,就有了下面这个脚本.系统:centos 5.x脚本内容:cat check_iptables.s
2022-06-04

分享一个实用的iptables脚本(各种过滤写法参考)

这个iptables脚本不错,很实用,根据实际应用改一下就可以自己用。分享出来,供大家来参考。原作者佚名。源代码如下: #!/bin/sh#modprobe ipt_MASQUERADEmodprobe ip_conntrack_ftpmo
2022-06-04

实时查看系统流量的Shell脚本分享

#!/bin/bash while [ "1" ] do eth=$1 RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}') TXpre=$(ca
2022-06-04

shell脚本实现快速生成xml格式sitemap实例分享

用shell快速生成xml格式的sitemap地图文件,中小型网站适用。在本次案例中,生成12053条URL的sitemap文件,仅用时4.3秒!shell代码如下:cat sitemap.txt|awk 'BEGIN{print "
2022-06-04

Shell脚本实现删除一年前文件功能分享

#!/bin/bash#Description: delete files#=====定义当前年份,月份以及文件所在目录=====#currentYear=`date +%Y`
2022-06-04

编程热搜

目录