执行脚本和命令来更新防火墙配置

需求:zabbix-agent服务需调整防火墙,增加端口10050

[[email protected] salt]# cat firewall/init.sls 
/home/ops/bin/firewall_add_dport.sh:
  file.managed:
    - source: salt://firewall/bin/firewall_add_dport.sh
    - mode: 755

iptables-add-dport:
  cmd.run:
    - require:
      - file: /home/ops/bin/firewall_add_dport.sh
    - name: /bin/bash /home/ops/bin/firewall_add_dport.sh

[[email protected] salt]# cat firewall/bin/firewall_add_dport.sh 
#!/bin/bash
# 
# 2015/4/10

s_port=10050

echo "[-] add dport ${s_port}"
cd /home/ops/conf/
iptables-save >rc.firewall.txt
grep "dport ${s_port} -j" rc.firewall.txt || sed -i "/-A INPUT -j REJECT --reject-with icmp-host-prohibited/i\-A INPUT -p tcp -m state --state NEW -m tcp --dport ${s_port} -j ACCEPT" rc.firewall.txt
iptables-restore rc.firewall.txt
echo "[-] iptables status:"
iptables -nL

echo "[-] check it before running ‘service iptables save‘"

在其中一台上测试执行这个sls:
[[email protected] salt]# salt ‘test1.company.com‘ state.sls firewall
test1.company.com:
----------
          ID: /home/ops/bin/firewall_add_dport.sh
    Function: file.managed
      Result: True
     Comment: File /home/ops/bin/firewall_add_dport.sh is in the correct state
     Started: 17:49:51.332723
    Duration: 326.191 ms
     Changes:   
----------
          ID: iptables-add-dport
    Function: cmd.run
        Name: /bin/bash /home/ops/bin/firewall_add_dport.sh
      Result: True
     Comment: Command "/bin/bash /home/ops/bin/firewall_add_dport.sh" run
     Started: 17:49:51.659900
    Duration: 30.57 ms
     Changes:   
              ----------
              pid:
                  3945
              retcode:
                  0
              stderr:
                  
              stdout:
                  [-] add dport 10050
                  -A INPUT -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT 
                  [-] iptables status:
                  Chain INPUT (policy ACCEPT)
                  target     prot opt source               destination         
                  ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
                  ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
                  ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
                  ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
                  ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:10050 
                  REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
                  
                  Chain FORWARD (policy ACCEPT)
                  target     prot opt source               destination         
                  REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
                  
                  Chain OUTPUT (policy ACCEPT)
                  target     prot opt source               destination         
                  [-] check it before running ‘service iptables save‘

Summary
------------
Succeeded: 2 (changed=1)
Failed:    0
------------
Total states run:     2

确认无误后,批量执行:
[[email protected] salt]# salt ‘*.company.com‘ state.sls firewall

确认无误,保存防火墙配置:
[[email protected] salt]# salt ‘*.company.com‘ cmd.run ‘service iptables save‘ 
test1.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
test2.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
test3.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
test4.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
test5.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
test6.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
test7.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
test8.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
test9.company.com:
    iptables: Saving firewall rules to /etc/sysconfig/iptables: [  OK  ]
时间: 2024-10-12 20:54:04

执行脚本和命令来更新防火墙配置的相关文章

ssh连接远程主机执行脚本的环境变量问题

用ssh命令ssh [email protected] "/web/tomcat-7000/bin/startup.sh" 登陆到远程机器remote上执行脚本时,遇到一个奇怪的问题:tomcat服务不能启动 Neither the JAVA_HOME nor the JRE_HOME environment variable is definedAt least one of these environment variable is needed to run this progr

Oracle批量执行脚本文件

以下是Oracle批量执行脚本文件的步骤和方法 1.创建脚本文件(xx.sql): 例如文件CreateTable Create table tb1( id varchar2(30), Name varchar2(50) ); Commit; / 可以创建多个,但是要注意语句之间要以分号结尾,同时注意语句内尽量不要有空行,因为空行的时候,在批量执行时可能会报错. 例如创建表时 create table t( id varchar2(20), Name varchar2(30) ); 上面这个文件

在Jenkins中配置执行远程shell命令

用过Jenkins的都知道,在Build配置那里有一个Add buld step, 有这样两个选项: 1. Execute Windows batch command 2. Execute shell 第1个是执行windows命令,第2个是执行shell脚本. 一开始我以为不管jenkins安装在windows下还是linux下都可以执行windows命令和linux命令,但是后来我发现在windows中,是可以执行第1个的,但是用第2个选项执行shell会失败,会报错说不能执行sh. 我想第

防火墙配置中必备的六个主要命令

防火墙的基本功能,是通过六个命令来完成的.一般情况下,除非有特殊的安全需求,这个六个命令基本上可以搞定防火墙的配置.下面笔者就结合CISCO的防火墙,来谈谈防火墙的基本配置,希望能够给大家一点参考. 第一个命令:interface Interface是防火墙配置中最基本的命令之一,他主要的功能就是开启关闭接口.配置接口的速度.对接口进行命名等等.在买来防火墙的时候,防火墙的各个端都都是关闭的,所以,防火墙买来后,若不进行任何的配置,防止在企业的网络上,则防火墙根本无法工作,而且,还会导致企业网络

Crontab执行脚本中的ssh命令访问被拒绝

我们经常会通过crontab来执行定时任务,通常生产环境中在不同主机直接进行登录是通过ssh来连接的.比如我们通过在备份服务器上设定定时任务,定期通过scp(使用SSH的远程拷贝命令)来拷贝远程服务器的数据到备份服务器上,这也是我遇到的一个事情. 环境描述: 脚本与定时任务: 定时任务设置如下: 无论是否执行成功,都把信息输出到2222.txt中 脚本内容如下: 我这里仅用ssh命令来测试,实际上这个命令如果可以正常执行的话,你执行scp命令也一样 #!/bin/bash ssh -v 192.

java程序执行,调用shell命令和shell脚本

  坑呀!记得在start()之后, waitFor()之前把缓冲区读出来打log,否则是阻塞缓冲区,没有输出的 package com.jikexueyuancrm.util; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import

万能脚本助Web执行底层Linux命令

需求分析: 这里先要说明的是,这一篇不是QT系列的文章,而是关于Web的,之所以要写这篇,是因为以前做Web相关开发的时候,经常涉及到与linux底层命令打交道,比如说创建一个目录,删除一个目录,或者是执行一个自定义的脚本.关于PHP如何调用.执行Linux的底层命令,以前也研究过,基本上实现了自己需要的功能,但是有些地方一直没有弄明白.今天又偶然碰到了,趁着这个机会向大家描述一下一步一步应该如何实现,并最后附上相关C代码. 原理实现: 首先,一般搭建的Web站点都是采用Apache或Nginx

sqlserver2008数据库自动备份的sql脚本及使用bat命令执行脚本

-----sql脚本 declare @fileName varchar(255) ,--定义备份文件名变量         @dbname varchar(255)--定义备份数据库名变量declare mycursor cursor fast_forward for select name from master..sysDatabases order by name --定义一个游标对象 open mycursor --打开游标set @dbname='pysf'set @fileName

【大话QT之十一】题外篇:万能脚本助Web执行底层Linux命令

需求分析: 这里先要说明的是,这一篇不是QT系列的文章,而是关于Web的,之所以要写这篇,是因为以前做Web相关开发的时候,经常涉及到与linux底层命令打交道,比如说创建一个目录,删除一个目录,或者是执行一个自定义的脚本.关于PHP如何调用.执行Linux的底层命令,以前也研究过,基本上实现了自己需要的功能,但是有些地方一直没有弄明白.今天又偶然碰到了,趁着这个机会向大家描述一下一步一步应该如何实现,并最后附上相关C代码. 原理实现: 首先,一般搭建的Web站点都是采用Apache或Nginx