class roles::rtc {
- ssl::service { 'www.debian.org':
+ ssl::service { 'debian.org':
+ tlsaport => [],
+ notify => Service['repro'],
+ key => true,
}
ssl::service { 'sip-ws.debian.org':
+ notify => Service['repro'],
+ key => true,
}
dnsextras::tlsa_record{ 'tlsa-xmpp':
hostname => $::fqdn,
}
- @ferm::rule { 'dsa-xmpp-client-ip4':
+ ferm::rule { 'dsa-xmpp-client-ip4':
domain => 'ip',
description => 'XMPP connections (client to server)',
rule => 'proto tcp dport (5222) ACCEPT'
}
- @ferm::rule { 'dsa-xmpp-client-ip6':
+ ferm::rule { 'dsa-xmpp-client-ip6':
domain => 'ip6',
description => 'XMPP connections (client to server)',
rule => 'proto tcp dport (5222) ACCEPT'
}
- @ferm::rule { 'dsa-xmpp-server-ip4':
+ ferm::rule { 'dsa-xmpp-server-ip4':
domain => 'ip',
description => 'XMPP connections (server to server)',
rule => 'proto tcp dport (5269) ACCEPT'
}
- @ferm::rule { 'dsa-xmpp-server-ip6':
+ ferm::rule { 'dsa-xmpp-server-ip6':
domain => 'ip6',
description => 'XMPP connections (server to server)',
rule => 'proto tcp dport (5269) ACCEPT'
}
- @ferm::rule { 'dsa-sip-ws-ip4':
+ ferm::rule { 'dsa-sip-ws-ip4':
domain => 'ip',
description => 'SIP connections (WebSocket; for WebRTC)',
rule => 'proto tcp dport (443) ACCEPT'
}
- @ferm::rule { 'dsa-sip-ws-ip6':
+ ferm::rule { 'dsa-sip-ws-ip6':
domain => 'ip6',
description => 'SIP connections (WebSocket; for WebRTC)',
rule => 'proto tcp dport (443) ACCEPT'
}
- @ferm::rule { 'dsa-sip-tls-ip4':
+ ferm::rule { 'dsa-sip-tls-ip4':
domain => 'ip',
description => 'SIP connections (TLS)',
rule => 'proto tcp dport (5061) ACCEPT'
}
- @ferm::rule { 'dsa-sip-tls-ip6':
+ ferm::rule { 'dsa-sip-tls-ip6':
domain => 'ip6',
description => 'SIP connections (TLS)',
rule => 'proto tcp dport (5061) ACCEPT'
}
- @ferm::rule { 'dsa-turn-ip4':
+ ferm::rule { 'dsa-turn-ip4':
domain => 'ip',
description => 'TURN connections',
rule => 'proto udp dport (3478) ACCEPT'
}
- @ferm::rule { 'dsa-turn-ip6':
+ ferm::rule { 'dsa-turn-ip6':
domain => 'ip6',
description => 'TURN connections',
rule => 'proto udp dport (3478) ACCEPT'
}
- @ferm::rule { 'dsa-turn-tls-ip4':
+ ferm::rule { 'dsa-turn-tls-ip4':
domain => 'ip',
description => 'TURN connections (TLS)',
rule => 'proto tcp dport (5349) ACCEPT'
}
- @ferm::rule { 'dsa-turn-tls-ip6':
+ ferm::rule { 'dsa-turn-tls-ip6':
domain => 'ip6',
description => 'TURN connections (TLS)',
rule => 'proto tcp dport (5349) ACCEPT'
}
- @ferm::rule { 'dsa-rtp-ip4':
+ ferm::rule { 'dsa-rtp-ip4':
domain => 'ip',
description => 'RTP streams',
rule => 'proto udp dport (49152:65535) ACCEPT'
}
- @ferm::rule { 'dsa-rtp-ip6':
+ ferm::rule { 'dsa-rtp-ip6':
domain => 'ip6',
description => 'RTP streams',
rule => 'proto udp dport (49152:65535) ACCEPT'
file { '/etc/monit/monit.d/50rtc':
ensure => absent,
}
+
+ service { 'repro':
+ ensure => running,
+ }
+ dsa_systemd::override { 'repro':
+ content => @("EOF"),
+ [Unit]
+ After=network-online.target
+ | EOF
+ }
+
+ package { 'freeradius':
+ ensure => installed,
+ }
+ service { 'freeradius':
+ ensure => running,
+ }
+ $radius_password = hkdf('/etc/puppet/secret', "rtc-${::hostname}-radius-password")
+ file { '/etc/freeradius/3.0/sites-available/rtc.debian.org':
+ content => template('roles/rtc/freeradius-rtc.erb'),
+ mode => '0440',
+ group => freerad,
+ }
+ file { '/etc/freeradius/3.0/sites-enabled/rtc.debian.org':
+ ensure => link,
+ target => '../sites-available/rtc.debian.org',
+ }
+ file { '/etc/freeradius/3.0/mods-available/passwd_rtc':
+ source => 'puppet:///modules/roles/rtc/freeradius-mod-passwd-rtc',
+ mode => '0440',
+ group => freerad,
+ }
+ file { '/etc/freeradius/3.0/mods-enabled/passwd_rtc':
+ ensure => link,
+ target => '../mods-available/passwd_rtc',
+ }
+ file { '/etc/repro/radius-servers':
+ content => inline_template('localhost/localhost <%= @radius_password %>'),
+ mode => '0440',
+ group => repro,
+ notify => Service['repro'],
+ }
+ file { '/etc/freeradius/3.0/sites-enabled/default':
+ ensure => absent,
+ }
+ file { '/etc/freeradius/3.0/sites-enabled/inner-tunnel':
+ ensure => absent,
+ }
}