bd3600eeb740c8b0407a1e760d2c2fa32b495573
[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     domain      => '(ip ip6)',
19     chain       => 'ssh',
20     rule        => 'saddr ($SSH_SOURCES) ACCEPT'
21   }
22   Ferm::Rule::Simple <<| tag == 'ssh::server::from::nagios' |>>
23
24   file { '/etc/ssh/ssh_config':
25     content => template('ssh/ssh_config.erb'),
26     require => Package['openssh-client']
27   }
28   file { '/etc/ssh/sshd_config':
29     content => template('ssh/sshd_config.erb'),
30     require => Package['openssh-server'],
31     notify  => Service['ssh']
32   }
33   file { '/etc/ssh/userkeys':
34     ensure  => directory,
35     mode    => '0755',
36     require => Package['openssh-server']
37   }
38   file { '/etc/ssh/puppetkeys':
39     ensure  => directory,
40     mode    => '0755',
41     purge   => true,
42     recurse => true,
43     force   => true,
44     source  => 'puppet:///files/empty/',
45     require => Package['openssh-server']
46   }
47   file { '/etc/ssh/userkeys/root':
48     content => template('ssh/authorized_keys.erb'),
49   }
50
51   if (versioncmp($::lsbmajdistrelease, '8') >= 0) {
52     if ! $facts['has_etc_ssh_ssh_host_ed25519_key'] {
53       exec { 'create-ed25519-host-key':
54         command => 'ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -q -P "" -t ed25519',
55       }
56     }
57
58     if $facts['systemd'] {
59       package { [ 'libpam-systemd' ]:
60         ensure => installed
61       }
62     }
63   }
64 }