hudecof.ferm

Ferm / iptables 管理

  • Github: 构建状态

这个角色使用 ferm 脚本管理 iptables。

由于编写通用的 iptables 模板非常困难,这个角色只是将 用户定义 的 ferm 配置片段移动到服务器并使用 iptables 生成规则集。

需求

  • ansible: 2.1
  • Redhat/CentOS: EPEL
  • Ubuntu: multiverse 仓库

角色变量

基于操作系统的变量

一些变量是基于操作系统的。这些变量位于 vars/os-<OS>.yml 文件中。

通用变量

  • ferm_directory: ferm 配置目录,默认为 /etc/ferm
  • ferm_service_state: ferm 是否应该启动
  • ferm_service_enabled: ferm 是否应该在启动序列中启用

防火墙规则

  • ferm_rules_directory: 应该在哪里查找防火墙规则文件,默认为 playbook 模板目录
  • ferm_net_mngt: 管理网络列表,默认允许任何
  • ferm_domains: 生成规则的 IP 版本,默认为 IPv4IPv6
  • ferm_rules: 要应用的规则列表。默认只允许 SSH 和 ICMP

利用模板引擎和 ferm 引擎生成 IPv4IPv6 的规则。编写规则的艰巨工作仍然在于你,但你可以完全 掌控

示例

主机/组变量

ferm_rules_directory: {{ playbook_dir }}/files/ferm

ferm_rules:
  - vars
  - default_rules
  - connection_tracking
  - input_icmp
  - management
  - service_zabbix-agent

在这种情况下,你应该创建以下文件

  • {{ playbook_dir }}/files/ferm/rules/vars.conf.j2
  • {{ playbook_dir }}/files/ferm/rules/default_rules.conf.j2
  • ...

你应该根据需要在 group_varhost_vars 中重写 ferm_rules 以适用于每个组或服务器。

playbook

例如,在你的 group_vars/all 中的 ferm 变量 可以是

- hosts: ferm
  roles:
     - hudecof.ferm

依赖

许可证

BSD

作者信息

彼得·胡德克 (Peter Hudec)

关于项目

ferm/iptables managment

安装
ansible-galaxy install hudecof.ferm
许可证
Unknown
下载
1.4k
拥有者