X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=modules%2Fssh%2Fmanifests%2Finit.pp;h=bd3600eeb740c8b0407a1e760d2c2fa32b495573;hb=535237cf6c30f48ab5202c165a5537253e818266;hp=0824f0f892a6563f16897cb06cc7c4b72829a382;hpb=96d02de0e841b2a067dba244d62562cd46d4035b;p=mirror%2Fdsa-puppet.git diff --git a/modules/ssh/manifests/init.pp b/modules/ssh/manifests/init.pp index 0824f0f89..bd3600eeb 100644 --- a/modules/ssh/manifests/init.pp +++ b/modules/ssh/manifests/init.pp @@ -1,39 +1,64 @@ class ssh { + package { [ 'openssh-client', 'openssh-server']: + ensure => installed + } - package { [ 'openssh-client', 'openssh-server']: - ensure => installed - } + service { 'ssh': + ensure => running, + require => Package['openssh-server'] + } - service { 'ssh': - ensure => running, - require => Package['openssh-server'] - } + ferm::rule::simple { 'dsa-ssh': + description => 'check ssh access', + port => 'ssh', + target => 'ssh', + } + ferm::rule { 'dsa-ssh-sources': + description => 'Allow SSH from DSA', + domain => '(ip ip6)', + chain => 'ssh', + rule => 'saddr ($SSH_SOURCES) ACCEPT' + } + Ferm::Rule::Simple <<| tag == 'ssh::server::from::nagios' |>> - @ferm::rule { 'dsa-ssh': - description => 'Allow SSH from DSA', - rule => '&SERVICE_RANGE(tcp, ssh, $SSH_SOURCES)' - } - @ferm::rule { 'dsa-ssh-v6': - description => 'Allow SSH from DSA', - domain => 'ip6', - rule => '&SERVICE_RANGE(tcp, ssh, $SSH_V6_SOURCES)' - } + file { '/etc/ssh/ssh_config': + content => template('ssh/ssh_config.erb'), + require => Package['openssh-client'] + } + file { '/etc/ssh/sshd_config': + content => template('ssh/sshd_config.erb'), + require => Package['openssh-server'], + notify => Service['ssh'] + } + file { '/etc/ssh/userkeys': + ensure => directory, + mode => '0755', + require => Package['openssh-server'] + } + file { '/etc/ssh/puppetkeys': + ensure => directory, + mode => '0755', + purge => true, + recurse => true, + force => true, + source => 'puppet:///files/empty/', + require => Package['openssh-server'] + } + file { '/etc/ssh/userkeys/root': + content => template('ssh/authorized_keys.erb'), + } - file { '/etc/ssh/ssh_config': - content => template('ssh/ssh_config.erb'), - require => Package['openssh-client'] - } - file { '/etc/ssh/sshd_config': - content => template('ssh/sshd_config.erb'), - require => Package['openssh-server'], - notify => Service['ssh'] - } - file { '/etc/ssh/userkeys': - ensure => directory, - mode => '0755', - require => Package['openssh-server'] - } - file { '/etc/ssh/userkeys/root': - content => template('ssh/authorized_keys.erb'), - } + if (versioncmp($::lsbmajdistrelease, '8') >= 0) { + if ! $facts['has_etc_ssh_ssh_host_ed25519_key'] { + exec { 'create-ed25519-host-key': + command => 'ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -q -P "" -t ed25519', + } + } + + if $facts['systemd'] { + package { [ 'libpam-systemd' ]: + ensure => installed + } + } + } }