Skip to content

Commit 32611c3

Browse files
authored
Merge pull request #188 from dev-sec/chris-rock/amazonlinux
amazonlinux support
2 parents 9d7cbf2 + bdb4030 commit 32611c3

File tree

7 files changed

+47
-9
lines changed

7 files changed

+47
-9
lines changed

.kitchen.dokken.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,18 @@ platforms:
7373
driver:
7474
image: opensuse:leap
7575
pid_one_command: /usr/lib/systemd/systemd
76+
- name: amazonlinux-1
77+
driver:
78+
image: amazonlinux:1
79+
intermediate_instructions:
80+
- RUN yum -y install upstart procps util-linux
81+
pid_one_command: /sbin/init
82+
- name: amazonlinux-2
83+
driver:
84+
image: amazonlinux:2
85+
intermediate_instructions:
86+
- RUN yum -y install systemd
87+
pid_one_command: /usr/lib/systemd/systemd
7688

7789
suites:
7890
- name: default

.rubocop.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,4 @@ Metrics/BlockLength:
3535
Exclude:
3636
- 'spec/**/*'
3737
Style/FrozenStringLiteralComment:
38-
Enabled: false
38+
Enabled: false

.travis.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ env:
2828
- INSTANCE=fedora-25
2929
- INSTANCE=opensuse-42
3030
- INSTANCE=opensuse-42 CHEF_VERSION=12.5.1
31+
- INSTANCE=amazonlinux-1
32+
- INSTANCE=amazonlinux-2
3133

3234
script:
3335
- bundle exec rake kitchen KITCHEN_LOCAL_YAML=.kitchen.dokken.yml

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ This cookbook provides secure ssh-client and ssh-server configurations. This coo
2323
- Oracle Linux 6, 7
2424
- Fedora 24, 25
2525
- OpenSuse Leap 42
26+
- Amazon Linux 1, 2
2627

2728
## Attributes
2829

metadata.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
supports 'suse'
3636
supports 'opensuse', '>= 13.2'
3737
supports 'opensuseleap', '>= 42.1'
38+
supports 'amazon'
3839

3940
recipe 'ssh-hardening::default', 'installs and configures ssh client and server'
4041
recipe 'ssh-hardening::client', 'install and apply security hardening for ssh client'

recipes/client.rb

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,14 @@
2020
# limitations under the License.
2121
#
2222

23+
ohai 'reload' do
24+
action :nothing
25+
end
26+
2327
package 'openssh-client' do
2428
package_name node['ssh-hardening']['sshclient']['package']
29+
# we need to reload the package version, otherwise we get the version that was installed before cookbook execution
30+
notifies :reload, 'ohai[reload]', :immediate
2531
end
2632

2733
directory 'openssh-client ssh directory /etc/ssh' do
@@ -37,8 +43,13 @@
3743
owner 'root'
3844
group 'root'
3945
variables(
40-
mac: node['ssh-hardening']['ssh']['client']['mac'] || DevSec::Ssh.get_client_macs(node['ssh-hardening']['ssh']['client']['weak_hmac']),
41-
kex: node['ssh-hardening']['ssh']['client']['kex'] || DevSec::Ssh.get_client_kexs(node['ssh-hardening']['ssh']['client']['weak_kex']),
42-
cipher: node['ssh-hardening']['ssh']['client']['cipher'] || DevSec::Ssh.get_client_ciphers(node['ssh-hardening']['ssh']['client']['cbc_required'])
46+
# we do lazy here to ensure we detect the version that comes with the packge update above
47+
lazy do
48+
{
49+
mac: node['ssh-hardening']['ssh']['client']['mac'] || DevSec::Ssh.get_client_macs(node['ssh-hardening']['ssh']['client']['weak_hmac']),
50+
kex: node['ssh-hardening']['ssh']['client']['kex'] || DevSec::Ssh.get_client_kexs(node['ssh-hardening']['ssh']['client']['weak_kex']),
51+
cipher: node['ssh-hardening']['ssh']['client']['cipher'] || DevSec::Ssh.get_client_ciphers(node['ssh-hardening']['ssh']['client']['cbc_required'])
52+
}
53+
end
4354
)
4455
end

recipes/server.rb

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,14 @@
4040
directory cache_dir
4141

4242
# installs package name
43+
ohai 'reload' do
44+
action :nothing
45+
end
46+
4347
package 'openssh-server' do
4448
package_name node['ssh-hardening']['sshserver']['package']
49+
# we need to reload the package version, otherwise we get the version that was installed before cookbook execution
50+
notifies :reload, 'ohai[reload]', :immediate
4551
end
4652

4753
# Handle addional SELinux policy on RHEL/Fedora for different UsePAM options
@@ -168,11 +174,16 @@
168174
owner 'root'
169175
group 'root'
170176
variables(
171-
mac: node['ssh-hardening']['ssh']['server']['mac'] || DevSec::Ssh.get_server_macs(node['ssh-hardening']['ssh']['server']['weak_hmac']),
172-
kex: node['ssh-hardening']['ssh']['server']['kex'] || DevSec::Ssh.get_server_kexs(node['ssh-hardening']['ssh']['server']['weak_kex']),
173-
cipher: node['ssh-hardening']['ssh']['server']['cipher'] || DevSec::Ssh.get_server_ciphers(node['ssh-hardening']['ssh']['server']['cbc_required']),
174-
use_priv_sep: node['ssh-hardening']['ssh']['use_privilege_separation'] || DevSec::Ssh.get_server_privilege_separarion,
175-
hostkeys: node['ssh-hardening']['ssh']['server']['host_key_files'] || DevSec::Ssh.get_server_algorithms.map { |alg| "/etc/ssh/ssh_host_#{alg}_key" }
177+
# we do lazy here to ensure we detect the version that comes with the packge update above
178+
lazy do
179+
{
180+
mac: node['ssh-hardening']['ssh']['server']['mac'] || DevSec::Ssh.get_server_macs(node['ssh-hardening']['ssh']['server']['weak_hmac']),
181+
kex: node['ssh-hardening']['ssh']['server']['kex'] || DevSec::Ssh.get_server_kexs(node['ssh-hardening']['ssh']['server']['weak_kex']),
182+
cipher: node['ssh-hardening']['ssh']['server']['cipher'] || DevSec::Ssh.get_server_ciphers(node['ssh-hardening']['ssh']['server']['cbc_required']),
183+
use_priv_sep: node['ssh-hardening']['ssh']['use_privilege_separation'] || DevSec::Ssh.get_server_privilege_separarion,
184+
hostkeys: node['ssh-hardening']['ssh']['server']['host_key_files'] || DevSec::Ssh.get_server_algorithms.map { |alg| "/etc/ssh/ssh_host_#{alg}_key" }
185+
}
186+
end
176187
)
177188
notifies :restart, 'service[sshd]'
178189
end

0 commit comments

Comments
 (0)