2021-05-25 03:39:36 +02:00
|
|
|
class zulip_ops::firewall {
|
|
|
|
package { 'iptables-persistent': }
|
2021-05-25 04:12:28 +02:00
|
|
|
concat { '/etc/iptables/rules.v4':
|
|
|
|
ensure => present,
|
2021-05-25 03:39:36 +02:00
|
|
|
mode => '0600',
|
|
|
|
require => Package['iptables-persistent'],
|
|
|
|
}
|
2021-08-24 20:43:23 +02:00
|
|
|
concat::fragment { 'iptables-header.v4':
|
2021-05-25 04:12:28 +02:00
|
|
|
target => '/etc/iptables/rules.v4',
|
2021-08-24 20:43:23 +02:00
|
|
|
source => 'puppet:///modules/zulip_ops/iptables/header.v4',
|
2021-05-25 04:12:28 +02:00
|
|
|
order => '01',
|
|
|
|
}
|
2021-08-24 20:43:23 +02:00
|
|
|
concat::fragment { 'iptables-trailer.v4':
|
2021-05-25 04:12:28 +02:00
|
|
|
target => '/etc/iptables/rules.v4',
|
2021-08-24 20:43:23 +02:00
|
|
|
source => 'puppet:///modules/zulip_ops/iptables/trailer.v4',
|
2021-05-25 04:12:28 +02:00
|
|
|
order => '99',
|
|
|
|
}
|
2021-05-25 03:39:36 +02:00
|
|
|
service { 'netfilter-persistent':
|
|
|
|
ensure => running,
|
|
|
|
|
|
|
|
# Because there is no running process for this service, the normal status
|
|
|
|
# checks fail. Because Puppet then thinks the service has been manually
|
|
|
|
# stopped, it won't restart it. This fake status command will trick Puppet
|
|
|
|
# into thinking the service is *always* running (which in a way it is, as
|
|
|
|
# iptables is part of the kernel.)
|
|
|
|
hasstatus => true,
|
|
|
|
status => '/bin/true',
|
|
|
|
|
|
|
|
# Under Debian, the "restart" parameter does not reload the rules, so tell
|
|
|
|
# Puppet to fall back to stop/start, which does work.
|
|
|
|
hasrestart => false,
|
|
|
|
|
|
|
|
require => Package['iptables-persistent'],
|
2021-05-25 04:12:28 +02:00
|
|
|
subscribe => Concat['/etc/iptables/rules.v4'],
|
2021-05-25 03:39:36 +02:00
|
|
|
}
|
|
|
|
}
|