/etc/salt/master
注意配置文件每行前边是有空格的

 file_roots:base:- /srv/salt/basedev:- /srv/salt/devprod:- /srv/salt/prodpillar_roots:base:- /srv/salt/pillar

/srv/salt/pillar/top.sls

base:'*':- iptables.whitelist- iptables.nginx- iptables.ntp

/srv/salt/pillar/nginx.sls

open_allow:allow_http:port: 80procto: 'tcp'allow_https:port: 443procto: 'tcp'

/srv/salt/pillar/whitelist.sls

white_ips:allow_lan1:allowip: 192.168.0.0/16allow_lan2:allowip: 172.20.60.1

/srv/salt/pillar/ntp.sls

out_allow:ntp_out_allow:port: 123procto: 'udp'

/srv/salt/base/iptables_init.sls

###### 清空原规则 ######
clear_iptables:cmd.run:{% if grains['osfinger'] == 'CentOS-6' %}- name: service iptables stop && echo >/etc/sysconfig/iptables{% elif grains['osfinger'] == 'Ubuntu-16.04' %}- name: iptables -F; iptables -X{% endif %}#### 添加白名单ip
{% for fw, rule in pillar['white_ips'].items() %}
{{ fw }}_INPUT:iptables.insert:- position: 1- table: filter- chain: INPUT- jump: ACCEPT- source: {{ rule['allowip'] }}- save: True{{ fw }}_OUTPUT:iptables.insert:- position: 1- table: filter- chain: OUTPUT- jump: ACCEPT- destination: {{ rule['allowip'] }}- save: True
{% endfor %}###### 获取自定义需要开放的服务端口并加入iptables规则中(同时取消状态追踪) ### 如果有对外开放的服务时 ###
{% if 'open_allow' in pillar.keys() %}
{% for eachfw, fw_rule in pillar['open_allow'].items() %}
{{ eachfw }}_INPUT:iptables.append:
#     - position: 1- table: filter- chain: INPUT- jump: ACCEPT- match: state- connstate: NEW,ESTABLISHED- protocol: {{ fw_rule['procto'] }}- dport: {{ fw_rule['port'] }}- save: True{{ eachfw }}_OUTPUT:iptables.append:
#     - position: 1- table: filter- chain: OUTPUT- jump: ACCEPT- match: state- connstate: ESTABLISHED- sport: {{ fw_rule['port'] }}- protocol: {{ fw_rule['procto'] }}- save: True{{ eachfw }}_NOTRACK_FROM_OUTPUT:iptables.insert:- position: 1- table: raw- chain: OUTPUT- jump: NOTRACK- match: state- connstate: ESTABLISHED- sport: {{ fw_rule['port'] }}- protocol: {{ fw_rule['procto'] }}- save: True{{ eachfw }}_NOTRACK_TO_OUTPUT:iptables.insert:- position: 1- table: raw- chain: OUTPUT- jump: NOTRACK- match: state- connstate: ESTABLISHED- dport: {{ fw_rule['port'] }}- protocol: {{ fw_rule['procto'] }}- save: True{{ eachfw }}_NOTRACK_FROM_PREROUTING:iptables.insert:- position: 1- table: raw- chain: PREROUTING- jump: NOTRACK- match: state- connstate: ESTABLISHED- sport: {{ fw_rule['port'] }}- protocol: {{ fw_rule['procto'] }}- save: True{{ eachfw }}_NOTRACK_TO_PREROUTING:iptables.insert:- position: 1- table: raw- chain: PREROUTING- jump: NOTRACK- match: state- connstate: ESTABLISHED- dport: {{ fw_rule['port'] }}- protocol: {{ fw_rule['procto'] }}- save: True
{% endfor %}
{% endif %}# 允许访问外网服务
{% for fw, rule in pillar['out_allow'].items() %}
{{ fw }}_INPUT:iptables.insert:- position: 1- table: filter- chain: INPUT- jump: ACCEPT- match: state- connstate: ESTABLISHED- protocol: {{ rule['procto'] }}- sport: {{ rule['port'] }}- save: True{{ fw }}_OUTPUT:iptables.insert:- position: 1- table: filter- chain: OUTPUT- jump: ACCEPT- match: state- connstate: NEW,RELATED,ESTABLISHED- protocol: {{ rule['procto'] }}- dport: {{ rule['port'] }}- save: True
{% endfor %}# 允许ping出
allow_ping_OUTPUT:iptables.append:- table: filter- chain: OUTPUT- jump: ACCEPT- match: state- connstate: NEW,RELATED,ESTABLISHED- protocol: icmp- comment: "Allow Ping OUT"- save: True# 允许ping入
allow_icmp_INPUT:iptables.append:- table: filter- chain: INPUT- jump: ACCEPT- match: state- connstate: NEW,ESTABLISHED- protocol: icmp- comment: "Allow Ping IN"- save: True# 设置INPUT默认策略为DROP
default_to_INPUT:iptables.set_policy:- chain: INPUT- policy: DROP- save: True# 设置OUTPUT默认策略为DROP
default_to_OUTPUT:iptables.set_policy:- chain: OUTPUT- policy: DROP- save: True# 设置FORWARD默认策略为DROP
default_to_FORWARD:iptables.set_policy:- chain: FORWARD- policy: DROP- save: True###### 重启iptables 并保持开机自动加载 ######
iptables-service:service.running:- name: iptables- reload: True- enable: True

参考:
https://blog.51cto.com/dyc2005/2178969

saltstack pillar设置iptables相关推荐

  1. eve-ng ubuntu 20.04 设置iptables

    eve-ng ubuntu 20.04 设置iptables 一.设置方法 1.建立iptables规则开机加载脚本 2.建立iptables规则关机/重启保存脚本 3.添加可执行权限 4.保存当前i ...

  2. 使用ipset设置iptables(黑/白)名单

    目录 使用ipset设置iptables(黑/白)名单 一.ipset原理 二.ipset安装 1.ipset工具安装 2.启动ipset,并设置开机自启 三.ipset的基本使用 四.设置iptab ...

  3. saltstack pillar

    1.关于Pillar Pillar: 存储位置:Master端 数据类型:动态数据 数据采集更新方式:在Master端定义,指定给对应的Minion,可以用saltutil.refresh_pilla ...

  4. 用Php设置Iptables,如何使用CSF添加自定义iptables规则

    CSF(configserver firewall)是一种基于iptables的防火墙,为实现iptables规则提供了更简单的方法.有时我们需要添加一些特定的规则(例如,CSF未涵盖的IPtable ...

  5. linux系统中查看己设置iptables规则

    1.iptables -L 查看filter表的iptables规则,包括所有的链.filter表包含INPUT.OUTPUT.FORWARD三个规则链. 说明:-L是--list的简写,作用是列出规 ...

  6. linux限制指定ip禁止访问指定端口,linux设置iptables禁止某个IP访问

    1. 查看本机关于IPTABLES的设置情况 # iptables -L -n 2. 清除原有规则 # iptables -F 清除预设表filter中的所有规则链的规则 # iptables -X ...

  7. 4G卡的linux机器充当路由器(Ubuntu16 设置iptables NAT )

    当你在户外.移动环境的局域网内,有了一台linux的小工控机,它能上外网,往往是通过4g SIM卡上网,那么如果你想让其它机器,借助它上网,那么只要这台4g卡机器还有一块内置的以太网卡,就可以达到目的 ...

  8. linux设置iptables防火墙

    centos7没有iptables防火墙了 用的是firewall防火墙 1 安装iptables作为防火墙(企业用) yum install iptables-services #通过yum ins ...

  9. linux拒绝一个ip访问,linux设置iptables禁止某个IP访问

    1. 查看本机关于IPTABLES的设置情况 # iptables -L -n 2. 清除原有规则 # iptables -F 清除预设表filter中的所有规则链的规则 # iptables -X ...

最新文章

  1. UI培训分享:UI设计师要掌握哪些知识点
  2. 触发transition的几种方式--转
  3. JAVA中的通配符的符号_Linux下的通配符和特殊符号用法详解
  4. 【Scratch】青少年蓝桥杯_每日一题_1.17_春夏秋冬四季
  5. C/C++程序员必读的十本书(上)
  6. 深入linux中重定向及管道详解
  7. Spyder常用快捷键
  8. shadow阴影属性
  9. 用GitHub Copilot 生成的项目中,40%会引入漏洞
  10. threading.Event
  11. 生成式对抗网络GAN生成手写数字
  12. iOS企业证书申请介绍
  13. 如何在 Mac 上的程序坞中使用文件夹?
  14. 【一天一算法】冒泡排序
  15. 高等数学所有符号的写法与读法
  16. java实习报告_Java实习报告总结3篇
  17. 全世界最全牛人博客,你可以学习到太多太多
  18. 如何在Microsoft Word里面插入图片作为背景?
  19. 通过XMind Update制作思维导图
  20. 基于python的步态分析_基于Python的步态周期及三维肢体活动角度算法的制作方法...

热门文章

  1. 区块链保护玩家虚拟财产
  2. IoT黑板报0113:半数人的工作机器人都能做 但你暂时不会失业
  3. WPS异常关闭,文件只能以只读模式浏览,无法编辑
  4. Ubuntu开机黑屏/左上角光标闪烁/登陆界面进入后黑屏
  5. 你的游戏帐号是如何被盗的
  6. 网络规划设计师理论--网络体系结构
  7. Android+webview+h5 拍照闪退问题
  8. 客户端关闭服务器收到消息推送消息,【网络编程】——WebSocket打开和关闭通道,消息发送...
  9. 利用JQuery实现分页器
  10. Zotero使用第三方云服务同步(Dropbox、OneDrive、Google Drive)