From e959efebeb59fca8ffbc126a5fb7599866e15797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= <valtri@civ.zcu.cz> Date: Sat, 3 Aug 2024 00:46:43 +0000 Subject: [PATCH] Make firewall in terraform configurable --- common/terraform/firewall.tf | 24 ++++++++++++++++-------- common/terraform/vars.tf | 16 ++++++++++++++++ 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/common/terraform/firewall.tf b/common/terraform/firewall.tf index 1a3262c..b35d242 100644 --- a/common/terraform/firewall.tf +++ b/common/terraform/firewall.tf @@ -14,81 +14,89 @@ resource "openstack_networking_secgroup_v2" "http" { } resource "openstack_networking_secgroup_rule_v2" "ping4" { + for_each = var.security_public_cidr4 direction = "ingress" ethertype = "IPv4" port_range_min = 8 port_range_max = 0 protocol = "icmp" - remote_ip_prefix = "0.0.0.0/0" + remote_ip_prefix = each.key security_group_id = openstack_networking_secgroup_v2.ping.id } resource "openstack_networking_secgroup_rule_v2" "ping6" { + for_each = var.security_public_cidr6 direction = "ingress" ethertype = "IPv6" port_range_min = 128 port_range_max = 0 protocol = "icmp" # icmp / ipv6-icmp - remote_ip_prefix = "::/0" + remote_ip_prefix = each.key security_group_id = openstack_networking_secgroup_v2.ping.id } resource "openstack_networking_secgroup_rule_v2" "ssh4" { + for_each = var.security_public_cidr4 direction = "ingress" ethertype = "IPv4" port_range_min = 22 port_range_max = 22 protocol = "tcp" - remote_ip_prefix = "0.0.0.0/0" + remote_ip_prefix = each.key security_group_id = openstack_networking_secgroup_v2.ssh.id } resource "openstack_networking_secgroup_rule_v2" "ssh6" { + for_each = var.security_public_cidr6 direction = "ingress" ethertype = "IPv6" port_range_min = 22 port_range_max = 22 protocol = "tcp" - remote_ip_prefix = "::/0" + remote_ip_prefix = each.key security_group_id = openstack_networking_secgroup_v2.ssh.id } resource "openstack_networking_secgroup_rule_v2" "http4" { + for_each = var.security_public_cidr4 direction = "ingress" ethertype = "IPv4" port_range_min = 80 port_range_max = 80 protocol = "tcp" - remote_ip_prefix = "0.0.0.0/0" + remote_ip_prefix = each.key security_group_id = openstack_networking_secgroup_v2.http.id } resource "openstack_networking_secgroup_rule_v2" "http6" { + for_each = var.security_public_cidr6 direction = "ingress" ethertype = "IPv6" port_range_min = 80 port_range_max = 80 protocol = "tcp" - remote_ip_prefix = "::/0" + remote_ip_prefix = each.key security_group_id = openstack_networking_secgroup_v2.http.id } resource "openstack_networking_secgroup_rule_v2" "https4" { + for_each = var.security_public_cidr4 direction = "ingress" ethertype = "IPv4" port_range_min = 443 port_range_max = 443 protocol = "tcp" - remote_ip_prefix = "0.0.0.0/0" + remote_ip_prefix = each.key security_group_id = openstack_networking_secgroup_v2.http.id } resource "openstack_networking_secgroup_rule_v2" "https6" { + for_each = var.security_public_cidr6 direction = "ingress" ethertype = "IPv6" port_range_min = 443 port_range_max = 443 protocol = "tcp" - remote_ip_prefix = "::/0" + remote_ip_prefix = each.key security_group_id = openstack_networking_secgroup_v2.http.id } diff --git a/common/terraform/vars.tf b/common/terraform/vars.tf index 25f0b32..54d05b2 100644 --- a/common/terraform/vars.tf +++ b/common/terraform/vars.tf @@ -62,3 +62,19 @@ variable "squid_volume_size" { type = number description = "Size of volume for squid proxy, CVMFS cache (GB)" } + +variable "security_public_cidr4" { + type = set(string) + description = "Enabled IPv4 ranges" + default = [ + "0.0.0.0/0", + ] +} + +variable "security_public_cidr6" { + type = set(string) + description = "Enabled IPv6 ranges" + default = [ + "::/0", + ] +} -- GitLab