move sshd extra ports to class params instead of hardcoded in the template
[mirror/dsa-puppet.git] / modules / ssh / manifests / init.pp
1 # @param extraports Addresses/ports to listen on, in addition to 22
2 class ssh (
3   Array[String] $extraports = [],
4 ) {
5   package { [ 'openssh-client', 'openssh-server']:
6     ensure => installed
7   }
8
9   service { 'ssh':
10     ensure  => running,
11     require => Package['openssh-server']
12   }
13
14   ferm::rule::simple { 'dsa-ssh':
15     description => 'check ssh access',
16     port        => 'ssh',
17     target      => 'ssh',
18   }
19   ferm::rule { 'dsa-ssh-sources':
20     description => 'Allow SSH from DSA',
21     domain      => '(ip ip6)',
22     chain       => 'ssh',
23     rule        => 'saddr ($SSH_SOURCES) ACCEPT'
24   }
25   Ferm::Rule::Simple <<| tag == 'ssh::server::from::nagios' |>>
26
27   file { '/etc/ssh/ssh_config':
28     content => template('ssh/ssh_config.erb'),
29     require => Package['openssh-client']
30   }
31   file { '/etc/ssh/sshd_config':
32     content => template('ssh/sshd_config.erb'),
33     require => Package['openssh-server'],
34     notify  => Service['ssh']
35   }
36   file { '/etc/ssh/userkeys':
37     ensure  => directory,
38     mode    => '0755',
39     require => Package['openssh-server']
40   }
41   file { '/etc/ssh/puppetkeys':
42     ensure  => directory,
43     mode    => '0755',
44     purge   => true,
45     recurse => true,
46     force   => true,
47     source  => 'puppet:///files/empty/',
48     require => Package['openssh-server']
49   }
50   file { '/etc/ssh/userkeys/root':
51     content => template('ssh/authorized_keys.erb'),
52   }
53
54   if (versioncmp($::lsbmajdistrelease, '8') >= 0) {
55     if ! $facts['has_etc_ssh_ssh_host_ed25519_key'] {
56       exec { 'create-ed25519-host-key':
57         command => 'ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -q -P "" -t ed25519',
58       }
59     }
60
61     if $facts['systemd'] {
62       package { [ 'libpam-systemd' ]:
63         ensure => installed
64       }
65     }
66   }
67 }