securCom.nftables
nftables 管理
该角色管理 nftables。
由于编写通用的 nftables 模板非常困难,因此该角色只是将用户定义的 nftables 配置片段移动到服务器并运行它们,您仍然需要理解 nftables 语法。
要求
- ansible: 2.4
角色变量
基于操作系统的变量
某些变量基于操作系统。这些变量位于 vars/os-<OS>.yml
文件中。
通用变量
nftables_dir
: nftables 配置目录,默认为 /etc/nftablesnftables_service_state
: ferm 是否应该启动nftables_service_enabled
: ferm 是否应该在启动序列中启用
防火墙规则
nftables_rules_directory
: 我应该在哪里查找防火墙规则文件,默认为 playbook 模板目录nftables_families
: 生成规则的 IP 版本,默认为 IPv4 和 IPv6nftables_rules
: 要应用的规则列表。默认只允许 SSH 和 ICMP,请参见 templates/rules 目录中的示例规则
该角色使用模板引擎生成规则。编写规则的艰巨工作仍然由您负责,但您完全掌控。
示例
主机/组变量
nftables_rules_directory: {{ playbook_dir }}/files/nftables
nftables_rules:
- default_rules
- connection_tracking
- input_icmp
- management
在这种情况下,您应该创建以下文件
{{ playbook_dir }}/files/nftables/rules/default_rules.conf.j2
{{ playbook_dir }}/files/nftables/rules/connection_tracking.conf.j2
...
您应该在每个组或服务器的 group_var 或 host_vars 中根据需要重写 nftables_rules
。
playbook
- hosts: ferm
roles:
- securcom.nftables
依赖关系
无
许可证
BSD
作者信息
Peter Hudec (@hudecof)