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