diff --git a/README.rst b/README.rst
index 5a87430..f3921af 100644
--- a/README.rst
+++ b/README.rst
@@ -147,6 +147,18 @@
       server:
         dss_enabled: true
 
+CIS Compliance
+==============
+
+There is a number of configuration options that make openssh service compliant with
+CIS Benchmark. Those options could be found under metadata/service/server/cis,
+and are not enabled by default. For each CIS item a comprehencive description
+is provided with pillar data.
+
+More about CIS Benchmark could be found online at:
+
+    https://www.cisecurity.org/cis-benchmarks/
+
 Read more
 =========
 
diff --git a/metadata/service/server/cis/cis-5-2-10.yml b/metadata/service/server/cis/cis-5-2-10.yml
new file mode 100644
index 0000000..3cb6db0
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-10.yml
@@ -0,0 +1,36 @@
+# 5.2.10 Ensure SSH PermitUserEnvironment is disabled (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The PermitUserEnvironment option allows users to present environment options to the
+# ssh daemon.
+#
+# Rationale
+# ---------
+# Permitting users the ability to set environment variables through the SSH daemon could
+# potentially allow users to bypass security controls (e.g. setting an execution path that has
+# ssh executing trojan'd programs)
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep PermitUserEnvironment /etc/ssh/sshd_config
+#   PermitUserEnvironment no
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   PermitUserEnvironment no
+
+parameters:
+  openssh:
+    server:
+      permit_user_environment: False
+
diff --git a/metadata/service/server/cis/cis-5-2-11.yml b/metadata/service/server/cis/cis-5-2-11.yml
new file mode 100644
index 0000000..4f77a14
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-11.yml
@@ -0,0 +1,53 @@
+# 5.2.11 Ensure only approved MAC algorithms are used (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# This variable limits the types of MAC algorithms that SSH can use during communication.
+#
+# Rationale
+# ---------
+# MD5 and 96-bit MAC algorithms are considered weak and have been shown to increase
+# exploitability in SSH downgrade attacks. Weak algorithms continue to have a great deal of
+# attention as a weak spot that can be exploited with expanded computing power. An
+# attacker that breaks the algorithm could take advantage of a MiTM position to decrypt the
+# SSH tunnel and capture credentials and information
+#
+# Audit
+# -----
+# Run the following command and verify that output does not contain any unlisted MAC
+# algorithms:
+#
+#   # grep "MACs" /etc/ssh/sshd_config
+#   MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,
+#   umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com,
+#   curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,
+#   umac-128-etm@openssh.com,hmac-sha2-512,hmac-sha2-256,umac-128@openssh.com
+
+parameters:
+  openssh:
+    server:
+      mac_algorithms:
+        hmac-sha2-512-etm@openssh.com:
+          enabled: True
+        hmac-sha2-256-etm@openssh.com:
+          enabled: True
+        umac-128-etm@openssh.com:
+          enabled: True
+        hmac-sha2-512:
+          enabled: True
+        hmac-sha2-256:
+          enabled: True
+        umac-128@openssh.com:
+          enabled: True
+
diff --git a/metadata/service/server/cis/cis-5-2-12.yml b/metadata/service/server/cis/cis-5-2-12.yml
new file mode 100644
index 0000000..3f10de7
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-12.yml
@@ -0,0 +1,52 @@
+# 5.2.12 Ensure SSH Idle Timeout Interval is configured (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The two options ClientAliveInterval and ClientAliveCountMax control the timeout of
+# ssh sessions. When the ClientAliveInterval variable is set, ssh sessions that have no
+# activity for the specified length of time are terminated. When the ClientAliveCountMax
+# variable is set, sshd will send client alive messages at every ClientAliveInterval
+# interval. When the number of consecutive client alive messages are sent with no response
+# from the client, the ssh session is terminated. For example, if the ClientAliveInterval is
+# set to 15 seconds and the ClientAliveCountMax is set to 3, the client ssh session will be
+# terminated after 45 seconds of idle time.
+#
+# Rationale
+# ---------
+# Having no timeout value associated with a connection could allow an unauthorized user
+# access to another user's ssh session (e.g. user walks away from their computer and doesn't
+# lock the screen). Setting a timeout value at least reduces the risk of this happening..
+# While the recommended setting is 300 seconds (5 minutes), set this timeout value based on
+# site policy. The recommended setting for ClientAliveCountMax is 0. In this case, the client
+# session will be terminated after 5 minutes of idle time and no keepalive messages will be
+# sent.
+#
+# Audit
+# -----
+# Run the following commands and verify ClientAliveInterval is 300 or less and
+# ClientAliveCountMax is 3 or less:
+#
+#   # grep "^ClientAliveInterval" /etc/ssh/sshd_config
+#   ClientAliveInterval 300
+#   # grep "^ClientAliveCountMax" /etc/ssh/sshd_config
+#   ClientAliveCountMax 0
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameters as follows:
+#
+#   ClientAliveInterval 300
+#   ClientAliveCountMax 0
+
+parameters:
+  openssh:
+    server:
+      alive:
+        interval: 300
+        count: 0
+
diff --git a/metadata/service/server/cis/cis-5-2-13.yml b/metadata/service/server/cis/cis-5-2-13.yml
new file mode 100644
index 0000000..d442768
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-13.yml
@@ -0,0 +1,39 @@
+# 5.2.13 Ensure SSH LoginGraceTime is set to one minute or less (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The LoginGraceTime parameter specifies the time allowed for successful authentication to
+# the SSH server. The longer the Grace period is the more open unauthenticated connections
+# can exist. Like other session controls in this session the Grace Period should be limited to
+# appropriate organizational limits to ensure the service is available for needed access.
+#
+# Rationale
+# ---------
+# Setting the LoginGraceTime parameter to a low number will minimize the risk of
+# successful brute force attacks to the SSH server. It will also limit the number of concurrent
+# unauthenticated connections While the recommended setting is 60 seconds (1 Minute), set
+# the number based on site policy.
+#
+# Audit
+# -----
+# Run the following command and verify that output LoginGraceTime is 60 or less:
+#
+#   # grep "^LoginGraceTime" /etc/ssh/sshd_config
+#   LoginGraceTime 60
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   LoginGraceTime 60
+
+parameters:
+  openssh:
+    server:
+      login_grace_time: 60
+
diff --git a/metadata/service/server/cis/cis-5-2-15.yml b/metadata/service/server/cis/cis-5-2-15.yml
new file mode 100644
index 0000000..f5ca67e
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-15.yml
@@ -0,0 +1,45 @@
+# 5.2.15 Ensure SSH warning banner is configured (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The Banner parameter specifies a file whose contents must be sent to the remote user
+# before authentication is permitted. By default, no banner is displayed.
+#
+# Rationale
+# ---------
+# Banners are used to warn connecting users of the particular site's policy regarding
+# connection. Presenting a warning message prior to the normal user login may assist the
+# prosecution of trespassers on the computer system.
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep "^Banner" /etc/ssh/sshd_config
+#   Banner /etc/issue.net
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#  Banner /etc/issue.net
+
+parameters:
+  openssh:
+    server:
+      banner: |
+        =================================== WARNING ====================================
+        You have accessed a computer managed by ${_param:ssh_banner_company_name}.
+        You are required to have authorisation from ${_param:ssh_banner_company_name}
+        before you proceed and you are strictly limited to use set out within that
+        authorisation. Unauthorised access to or misuse of this system is prohibited
+        and constitutes an offence under the Computer Misuse Act 1990.
+        If you disclose any information obtained through this system without authority
+        ${_param:ssh_banner_company_name} may take legal action against you.
+        ================================================================================
+
diff --git a/metadata/service/server/cis/cis-5-2-2.yml b/metadata/service/server/cis/cis-5-2-2.yml
new file mode 100644
index 0000000..7ebee6c
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-2.yml
@@ -0,0 +1,34 @@
+# 5.2.2 Ensure SSH Protocol is set to 2 (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# SSH supports two different and incompatible protocols: SSH1 and SSH2. SSH1 was the
+# original protocol and was subject to security issues. SSH2 is more advanced and secure.
+#
+# Rationale
+# ---------
+# SSH v1 suffers from insecurities that do not affect SSH v2.
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep "^Protocol" /etc/ssh/sshd_config
+#   Protocol 2
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   Protocol 2
+
+parameter:
+  openssh:
+    server:
+      protocol: 2
+
diff --git a/metadata/service/server/cis/cis-5-2-3.yml b/metadata/service/server/cis/cis-5-2-3.yml
new file mode 100644
index 0000000..a81b1f6
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-3.yml
@@ -0,0 +1,38 @@
+# 5.2.3 Ensure SSH LogLevel is set to INFO (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The INFO parameter specifies that login and logout activity will be logged.
+#
+# Rationale
+# ---------
+# SSH provides several logging levels with varying amounts of verbosity. DEBUG is specifically
+# not recommended other than strictly for debugging SSH communications since it provides
+# so much data that it is difficult to identify important security information. INFO level is the
+# basic level that only records login activity of SSH users. In many situations, such as Incident
+# Response, it is important to determine when a particular user was active on a system. The
+# logout record can eliminate those users who disconnected, which helps narrow the field.
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep "^LogLevel" /etc/ssh/sshd_config
+#   LogLevel INFO
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   LogLevel INFO
+
+parameters:
+  openssh:
+    server:
+      log_level: INFO
+
diff --git a/metadata/service/server/cis/cis-5-2-4.yml b/metadata/service/server/cis/cis-5-2-4.yml
new file mode 100644
index 0000000..d9e3b7b
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-4.yml
@@ -0,0 +1,38 @@
+# 5.2.4 Ensure SSH X11 forwarding is disabled (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The X11Forwarding parameter provides the ability to tunnel X11 traffic through the
+# connection to enable remote graphic connections.
+#
+# Rationale
+# ---------
+# Disable X11 forwarding unless there is an operational requirement to use X11 applications
+# directly. There is a small risk that the remote X11 servers of users who are logged in via
+# SSH with X11 forwarding could be compromised by other users on the X11 server. Note
+# that even if X11 forwarding is disabled, users can always install their own forwarders.
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep "^X11Forwarding" /etc/ssh/sshd_config
+#   X11Forwarding no
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   X11Forwarding no
+
+parameters:
+  openssh:
+    server:
+      x11:
+        forwarding: False
+
diff --git a/metadata/service/server/cis/cis-5-2-5.yml b/metadata/service/server/cis/cis-5-2-5.yml
new file mode 100644
index 0000000..0d5082b
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-5.yml
@@ -0,0 +1,37 @@
+# 5.2.5 Ensure SSH MaxAuthTries is set to 4 or less (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The MaxAuthTries parameter specifies the maximum number of authentication attempts
+# permitted per connection. When the login failure count reaches half the number, error
+# messages will be written to the syslog file detailing the login failure.
+#
+# Rationale
+# ----------
+# Setting the MaxAuthTries parameter to a low number will minimize the risk of successful
+# brute force attacks to the SSH server. While the recommended setting is 4, set the number
+# based on site policy.
+#
+# Audit
+# -----
+# Run the following command and verify that output MaxAuthTries is 4 or less:
+#
+#   # grep "^MaxAuthTries" /etc/ssh/sshd_config
+#   MaxAuthTries 4
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   MaxAuthTries 4
+
+parameters:
+  openssh:
+    server:
+      max_auth_tries: 4
+
diff --git a/metadata/service/server/cis/cis-5-2-6.yml b/metadata/service/server/cis/cis-5-2-6.yml
new file mode 100644
index 0000000..fdcd6d3
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-6.yml
@@ -0,0 +1,34 @@
+# 5.2.6 Ensure SSH IgnoreRhosts is enabled (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The IgnoreRhosts parameter specifies that .rhosts and .shosts files will not be used in
+# RhostsRSAAuthentication or HostbasedAuthentication .
+#
+# Rationale
+# ---------
+# Setting this parameter forces users to enter a password when authenticating with ssh.
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep "^IgnoreRhosts" /etc/ssh/sshd_config
+#   IgnoreRhosts yes
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   IgnoreRhosts yes
+
+parameter:
+  openssh:
+    server:
+      ignore_rhosts: True
+
diff --git a/metadata/service/server/cis/cis-5-2-7.yml b/metadata/service/server/cis/cis-5-2-7.yml
new file mode 100644
index 0000000..f2e13bf
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-7.yml
@@ -0,0 +1,36 @@
+# 5.2.7 Ensure SSH HostbasedAuthentication is disabled (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The HostbasedAuthentication parameter specifies if authentication is allowed through
+# trusted hosts via the user of .rhosts , or /etc/hosts.equiv , along with successful public
+# key client host authentication. This option only applies to SSH Protocol Version 2.
+#
+# Rationale
+# ---------
+# Even though the .rhosts files are ineffective if support is disabled in /etc/pam.conf ,
+# disabling the ability to use .rhosts files in SSH provides an additional layer of protection .
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep "^HostbasedAuthentication" /etc/ssh/sshd_config
+#   HostbasedAuthentication no
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   HostbasedAuthentication no
+
+parameters:
+  openssh:
+    server:
+      host_auth: False
+
diff --git a/metadata/service/server/cis/cis-5-2-8.yml b/metadata/service/server/cis/cis-5-2-8.yml
new file mode 100644
index 0000000..871cfbf
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-8.yml
@@ -0,0 +1,35 @@
+# 5.2.8 Ensure SSH root login is disabled (Scored)
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The PermitRootLogin parameter specifies if the root user can log in using ssh(1). The
+# default is no.
+#
+# Rationale
+# ---------
+# Disallowing root logins over SSH requires system admins to authenticate using their own
+# individual account, then escalating to root via sudo or su . This in turn limits opportunity
+# for non-repudiation and provides a clear audit trail in the event of a security incident
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep "^PermitRootLogin" /etc/ssh/sshd_config
+#   PermitRootLogin no
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   PermitRootLogin no
+
+parameters:
+  openssh:
+    server:
+      permit_root_login: False
+
diff --git a/metadata/service/server/cis/cis-5-2-9.yml b/metadata/service/server/cis/cis-5-2-9.yml
new file mode 100644
index 0000000..b36cc4d
--- /dev/null
+++ b/metadata/service/server/cis/cis-5-2-9.yml
@@ -0,0 +1,34 @@
+# 5.2.9 Ensure SSH PermitEmptyPasswords is disabled (Scored)
+#
+# Profile Applicability
+# ---------------------
+# - Level 1 - Server
+# - Level 1 - Workstation
+#
+# Description
+# -----------
+# The PermitEmptyPasswords parameter specifies if the SSH server allows login to accounts
+# with empty password strings.
+#
+# Rationale
+# ---------
+# Disallowing remote shell access to accounts that have an empty password reduces the
+# probability of unauthorized access to the system
+#
+# Audit
+# -----
+# Run the following command and verify that output matches:
+#
+#   # grep "^PermitEmptyPasswords" /etc/ssh/sshd_config
+#   PermitEmptyPasswords no
+#
+# Remediation
+# -----------
+# Edit the /etc/ssh/sshd_config file to set the parameter as follows:
+#
+#   PermitEmptyPasswords no
+
+parameters:
+  openssh:
+    server:
+      permit_empty_passwords: False
diff --git a/metadata/service/server/cis/init.yml b/metadata/service/server/cis/init.yml
new file mode 100644
index 0000000..8c6400e
--- /dev/null
+++ b/metadata/service/server/cis/init.yml
@@ -0,0 +1,14 @@
+classes:
+- service.openssh.server.cis.cis-5-2-2
+- service.openssh.server.cis.cis-5-2-3
+- service.openssh.server.cis.cis-5-2-4
+- service.openssh.server.cis.cis-5-2-5
+- service.openssh.server.cis.cis-5-2-6
+- service.openssh.server.cis.cis-5-2-7
+- service.openssh.server.cis.cis-5-2-8
+- service.openssh.server.cis.cis-5-2-9
+- service.openssh.server.cis.cis-5-2-10
+- service.openssh.server.cis.cis-5-2-11
+- service.openssh.server.cis.cis-5-2-12
+- service.openssh.server.cis.cis-5-2-13
+- service.openssh.server.cis.cis-5-2-15
diff --git a/openssh/files/sshd_config b/openssh/files/sshd_config
index 95ed4ae..5404e84 100755
--- a/openssh/files/sshd_config
+++ b/openssh/files/sshd_config
@@ -15,13 +15,15 @@
 ListenAddress {{ server.bind.address }}
 {%- endif %}
 
-Protocol 2
+Protocol {{ server.get('protocol', 2) }}
+
 # HostKeys for protocol version 2
 HostKey /etc/ssh/ssh_host_rsa_key
 HostKey /etc/ssh/ssh_host_dsa_key
 {%- if grains.os_family != 'CentOS' %}
 HostKey /etc/ssh/ssh_host_ecdsa_key
 {%- endif %}
+
 #Privilege Separation is turned on for security
 UsePrivilegeSeparation yes
 
@@ -30,20 +32,25 @@
 ServerKeyBits {{ server.get('server_key_bits', '2048') }}
 
 # Logging
-SyslogFacility AUTH
-LogLevel INFO
+SyslogFacility {{ server.get('syslog_facility', 'AUTH')|upper }}
 
-# Authentication:
-LoginGraceTime 120
+LogLevel {{ server.get('log_level', 'INFO')|upper }}
 
-# FIXME: PermitRootLogin its not boolean variable! need to be refactored!
-PermitRootLogin {% if server.get('permit_root_login', False) %}yes{% else %}no{% endif %}
+LoginGraceTime {{ server.get('login_grace_time', 120) }}
+
+{%- set permit_root_login = server.get('permit_root_login', 'no') %}
+{%- if permit_root_login not in ('yes', 'no', 'prohibit-password',
+                                 'without-password', 'forced-commands-only') %}
+{# permit_root_login might be boolean for historical reasons #}
+{%- set permit_root_login = {True: 'yes', False: 'no'}.get(permit_root_login, 'no') %}
+{%- endif %}
+PermitRootLogin {{ permit_root_login }}
 
 StrictModes yes
 
 RSAAuthentication yes
 
-PubkeyAuthentication {% if server.get('public_key_auth', True) %}yes{% else %}no{% endif %}
+PubkeyAuthentication {{ 'yes' if server.get('public_key_auth', True) else 'no' }}
 AuthorizedKeysFile     %h/.ssh/authorized_keys
 
 {%- if server.authorized_keys_command is defined %}
@@ -72,26 +79,28 @@
 AllowGroups {{ server.allow_groups|join(' ') }}
 {% endif %}
 
-# Don't read the user's ~/.rhosts and ~/.shosts files
-IgnoreRhosts yes
+IgnoreRhosts {{ 'yes' if server.get('ignore_rhosts', True) else 'no' }}
+
 # For this to work you will also need host keys in /etc/ssh_known_hosts
 RhostsRSAAuthentication no
 # similar for protocol version 2
 
-HostbasedAuthentication {% if server.get('host_auth', False) %}yes{% else %}no{% endif %}
+HostbasedAuthentication {{ 'yes' if server.get('host_auth', False) else 'no' }}
 
 # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
 #IgnoreUserKnownHosts yes
 
 # To enable empty passwords, change to yes (NOT RECOMMENDED)
-PermitEmptyPasswords no
+PermitEmptyPasswords {{ 'yes' if server.get('permit_empty_passwords', False) else 'no' }}
+
+PermitUserEnvironment {{ 'yes' if server.get('permit_user_environment', False) else 'no' }}
 
 # Change to yes to enable challenge-response passwords (beware issues with
 # some PAM modules and threads)
 ChallengeResponseAuthentication no
 
 # Change to no to disable tunnelled clear text passwords
-PasswordAuthentication {% if server.get('password_auth', True) %}yes{% else %}no{% endif %}
+PasswordAuthentication {{ 'yes' if server.get('password_auth', True) else 'no' }}
 
 # Kerberos options
 {%- if server.get('kerberos_auth', False) %}
@@ -114,7 +123,8 @@
 {%- if server.use_dns is defined %}
 UseDNS {{ server.use_dns }}
 {%- endif %}
-X11Forwarding {% if server.get('x11', {}).get('forwarding', True) %}yes{% else %}no{% endif %}
+
+X11Forwarding {{ 'yes' if server.get('x11', {}).get('forwarding', True) else 'no' }}
 X11DisplayOffset {{ server.get('x11', {}).get('display_offset', '10') }}
 PrintMotd {% if server.get('print_motd', False) %}yes{% else %}no{% endif %}
 PrintLastLog {% if server.get('print_lastlog', True) %}yes{% else %}no{% endif %}
@@ -124,6 +134,7 @@
 {%- if server.get('alive', {'interval': None}).interval is number %}
 ClientAliveInterval {{ server.alive.interval }}
 {% endif %}
+
 {%- if server.get('alive', {'count': None}).count is number %}
 ClientAliveCountMax {{ server.alive.count }}
 {% endif %}
@@ -139,10 +150,16 @@
 #MaxStartups 10:30:60
 {%- endif %}
 
+{%- if server.max_auth_tries is defined %}
+MaxAuthTries {{ server.max_auth_tries }}
+{%- endif %}
+
 {%- if server.banner is defined %}
-Banner /etc/banner
-{%- else %}
-#Banner /etc/banner
+# CIS 5.2.15 requires Banner option configured. It also proposes
+# file name '/etc/issue.net' as a solution, if Banner is not configured.
+# WARNING: Some security scanners accepts only '/etc/issue.net'
+# as a valid banner file name, so please do not change it.
+Banner /etc/issue.net
 {%- endif %}
 
 # Allow client to pass locale environment variables
@@ -167,3 +184,32 @@
 {%- if server.get('dss_enabled', false) %}
 PubkeyAcceptedKeyTypes=+ssh-dss
 {%- endif %}
+
+{%- if server.get('mac_algorithms', False) %}
+{%- set supported_macs = ('hmac-md5',
+                          'hmac-md5-96',
+                          'hmac-ripemd160',
+                          'hmac-sha1',
+                          'hmac-sha1-96',
+                          'hmac-sha2-256',
+                          'hmac-sha2-512',
+                          'umac-64@openssh.com',
+                          'umac-128@openssh.com',
+                          'hmac-md5-etm@openssh.com',
+                          'hmac-md5-96-etm@openssh.com',
+                          'hmac-ripemd160-etm@openssh.com',
+                          'hmac-sha1-etm@openssh.com',
+                          'hmac-sha1-96-etm@openssh.com',
+                          'hmac-sha2-256-etm@openssh.com',
+                          'hmac-sha2-512-etm@openssh.com',
+                          'umac-64-etm@openssh.com',
+                          'umac-128-etm@openssh.com') %}
+{%- set mac_algorithms = [] %}
+{%- for k, v in server.mac_algorithms.items() %}
+{%- set _ = mac_algorithms.append(k) if v.get('enabled', False) and k in supported_macs %}
+{%- endfor %}
+{%- if mac_algorithms|length >0 %}
+MACs {{ mac_algorithms|join(',') }}
+{%- endif %}
+{%- endif %}
+
diff --git a/openssh/schemas/server.yaml b/openssh/schemas/server.yaml
index 7b07859..86e1abe 100644
--- a/openssh/schemas/server.yaml
+++ b/openssh/schemas/server.yaml
@@ -16,6 +16,14 @@
     description: |
       Enables openssh server configurathion.
     type: boolean
+  banner:
+    description: |
+      Banner
+      ------
+      The contents of the specified file are sent to the remote user
+      before authentication is allowed.  If the argument is “none” then
+      no banner is displayed.  By default, no banner is displayed.
+    type: string
   bind:
     description: Specifies sshd servcive listen on configurathion.
     type: object
@@ -28,16 +36,176 @@
         description: Specifies the port on which the server listens for connections. Multiple options are permitted.
         type: string
         example: 127.0.0.1 192.168.1.1
+  host_auth:
+    description: |
+      HostbasedAuthentication
+      -----------------------
+      Specifies whether rhosts or /etc/hosts.equiv authentication
+      together with successful public key client host authentication is
+      allowed (host-based authentication). The default is False(“no”).
+    type: boolean
+  ignore_rhosts:
+    description: |
+      IgnoreRhosts
+      ------------
+      Specifies that .rhosts and .shosts files will not be used in
+      RhostsRSAAuthentication or HostbasedAuthentication.
+      .
+      /etc/hosts.equiv and /etc/ssh/shosts.equiv are still used.  The
+      default is True (“yes”).
+    type: boolean
+  kerberos_auth:
+    description: |
+      KerberosAuthentication
+      ----------------------
+      Specifies whether the password provided by the user for
+      PasswordAuthentication will be validated through the Kerberos
+      KDC.  To use this option, the server needs a Kerberos servtab
+      which allows the verification of the KDC's identity. The default
+      is False (“no”).
+    type: boolean
+  syslog_facility:
+    description: |
+      SyslogFacility
+      --------
+      Gives the facility code that is used when logging messages from
+      sshd(8). The possible values are: DAEMON, USER, AUTH, AUTHPRIV,
+      LOCAL0, LOCAL1, LOCAL2, LOCAL3, LOCAL4, LOCAL5, LOCAL6, LOCAL7.
+      The default is AUTH.
+    enum:
+      - daemon
+      - user
+      - auth
+      - authpriv
+      - local0
+      - local1
+      - local2
+      - local3
+      - local4
+      - local5
+      - local6
+      - local7
+  log_level:
+    description: |
+      LogLevel
+      --------
+      Gives the verbosity level that is used when logging messages from
+      sshd(8).  The possible values are: QUIET, FATAL, ERROR, INFO,
+      VERBOSE, DEBUG, DEBUG1, DEBUG2, and DEBUG3.  The default is INFO.
+      DEBUG and DEBUG1 are equivalent.  DEBUG2 and DEBUG3 each specify
+      higher levels of debugging output.  Logging with a DEBUG level
+      violates the privacy of users and is not recommended.
+    enum:
+      - quiet
+      - fatal
+      - error
+      - info
+      - verbose
+      - debug
+      - debug1
+      - debug2
+      - debug3
+  login_grace_time:
+    description: |
+      LoginGraceTime
+      --------------
+      The server disconnects after this time if the user has not
+      successfully logged in.  If the value is 0, there is no time
+      limit.  The default is 120 seconds.
+    type: integer
+  mac_algorithms:
+    description: |
+      MACs
+      ----
+      Specifies the available MAC (message authentication code)
+      algorithms.  The MAC algorithm is used for data integrity
+      protection.  Multiple algorithms must be comma-separated.  If the
+      specified value begins with a ‘+’ character, then the specified
+      algorithms will be appended to the default set instead of
+      replacing them.
+      .
+      The algorithms that contain “-etm” calculate the MAC after
+      encryption (encrypt-then-mac).  These are considered safer and
+      their use recommended. The supported MACs are:
+        hmac-md5
+        hmac-md5-96
+        hmac-ripemd160
+        hmac-sha1
+        hmac-sha1-96
+        hmac-sha2-256
+        hmac-sha2-512
+        umac-64@openssh.com
+        umac-128@openssh.com
+        hmac-md5-etm@openssh.com
+        hmac-md5-96-etm@openssh.com
+        hmac-ripemd160-etm@openssh.com
+        hmac-sha1-etm@openssh.com
+        hmac-sha1-96-etm@openssh.com
+        hmac-sha2-256-etm@openssh.com
+        hmac-sha2-512-etm@openssh.com
+        umac-64-etm@openssh.com
+        umac-128-etm@openssh.com
+      .
+      The default is:
+        umac-64-etm@openssh.com,umac-128-etm@openssh.com,
+        hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com,
+        hmac-sha1-etm@openssh.com,
+        umac-64@openssh.com,umac-128@openssh.com,
+        hmac-sha2-256,hmac-sha2-512,hmac-sha1
+    type: object
+    properties:
+      enabled:
+        description: |
+          Enables / disabled specific MAC algorithm.
+        type: boolean
+  max_auth_tries:
+    description: |
+      MaxAuthTries
+      ------------
+      Specifies the maximum number of authentication attempts permitted
+      per connection.  Once the number of failures reaches half this
+      value, additional failures are logged.  The default is 6.
+    type: integer
   password_auth:
-    description: Specifies whether password authentication is allowed.
+    description: |
+      PasswordAuthentication
+      ----------------------
+      Specifies whether password authentication is allowed.  The
+      default is True(“yes”).
+    type: boolean
+  permit_empty_passwords:
+    description: |
+      PermitEmptyPasswords
+      --------------------
+      When password authentication is allowed, it specifies whether the
+      server allows login to accounts with empty password strings.  The
+      default is False (“no”).
     type: boolean
   permit_root_login:
     description: |
-      Specifies whether root can log in using ssh.
-      # TODO currently its only boolean option, need to be fixed.
-      # The argument must be ``yes'', ``prohibit-password'',
-      # ``without-password'', ``forced-commands-only'', or ``no''.
-      # The default is ``prohibit-password''.
+      PermitRootLogin
+      ---------------
+      Specifies whether root can log in using ssh(1).  The argument
+      must be “yes”, “prohibit-password”, “without-password”,
+      “forced-commands-only”, or “no”.  The default is
+      “prohibit-password”.
+      .
+      If this option is set to “prohibit-password” or
+      “without-password”, password and keyboard-interactive
+      authentication are disabled for root.
+      .
+      If this option is set to “forced-commands-only”, root login with
+      public key authentication will be allowed, but only if the
+      command option has been specified (which may be useful for taking
+      remote backups even if root login is normally not allowed).  All
+      other authentication methods are disabled for root.
+      .
+      If this option is set to “no”, root is not allowed to log in.
+      # TODO Currently its only boolean option, however, support for other
+      #      values has been added recently to sshd_config template, now
+      #      it may use both booleans and strings.
+      #      Now the next step is to update reclass models and switch
+      #      from boolean values to strings.
     # enum:
     #  - yes
     #  - no
@@ -45,6 +213,38 @@
     #  - forced-commands-only
     #  - prohibit-password
     type: boolean
+  permit_user_environment:
+    description: |
+      PermitUserEnvironment
+      ---------------------
+      Specifies whether ~/.ssh/environment and environment= options in
+      ~/.ssh/authorized_keys are processed by sshd(8).  The default is
+      False (“no”).  Enabling environment processing may enable users to
+      bypass access restrictions in some configurations using mechanisms
+      such as LD_PRELOAD.
+    type: boolean
+  protocol:
+    description: |
+      Protocol
+      --------
+      Specifies the protocol versions sshd(8) supports.  The possible
+      values are ‘1’ and ‘2’.  Multiple versions must be comma-
+      separated.  The default is ‘2’.  Protocol 1 suffers from a number
+      of cryptographic weaknesses and should not be used.  It is only
+      offered to support legacy devices.
+      .
+      Note that the order of the protocol list does not indicate
+      preference, because the client selects among multiple protocol
+      versions offered by the server.  Specifying “2,1” is identical to
+      “1,2”.
+    type: integer
+  public_key_auth:
+    description: |
+      PubkeyAuthentication
+      --------------------
+      Specifies whether public key authentication is allowed.  The
+      default is True (“yes”).
+    type: boolean
   user:
     description: |
       List of openssh user's, to be configured.
@@ -64,13 +264,13 @@
             description: List of pub keys for user (> authorized_keys)
             type: array
             items:
-              - type: object
-                additionalProperties: false
-                properties:
-                  key:
-                    type: string
-                    description: ssh public key
-                    example: "ssh-rsa AAAAXXX username@example.com"
+              type: object
+              additionalProperties: false
+              properties:
+                key:
+                  type: string
+                  description: ssh public key
+                  example: "ssh-rsa AAAAXXX username@example.com"
             example:
             - key: "ssh-rsa AAAAXXX1111 username@example.com"
             - key: "ssh-rsa AAAAXXX2222 username@example.com"
@@ -89,17 +289,35 @@
           - no
       interval:
         description: |
-          Configure ClientAliveInterval option.
-          Sets a timeout interval in seconds after which if no data has been
-          received from the client, sshd(8) will send a message through the
-          encrypted channel to request a response from the client.
+          ClientAliveInterval
+          -------------------
+          Sets a timeout interval in seconds after which if no data has
+          been received from the client, sshd(8) will send a message
+          through the encrypted channel to request a response from the
+          client.  The default is 0, indicating that these messages will
+          not be sent to the client.
         type: integer
         example: 600
       count:
         description: |
-          Configure ClientAliveCountMax option
-          Sets the number of client alive messages which may be sent without ssh receiving
-          any messages back from the client.
+          ClientAliveCountMax
+          -------------------
+          Sets the number of client alive messages (see below) which may be
+          sent without sshd(8) receiving any messages back from the client.
+          If this threshold is reached while client alive messages are
+          being sent, sshd will disconnect the client, terminating the
+          session.  It is important to note that the use of client alive
+          messages is very different from TCPKeepAlive (below).  The client
+          alive messages are sent through the encrypted channel and
+          therefore will not be spoofable.  The TCP keepalive option
+          enabled by TCPKeepAlive is spoofable.  The client alive mechanism
+          is valuable when the client or server depend on knowing when a
+          connection has become inactive.
+          .
+          The default value is 3.  If ClientAliveInterval (see below) is
+          set to 15, and ClientAliveCountMax is left at the default,
+          unresponsive SSH clients will be disconnected after approximately
+          45 seconds.
         type: integer
         example: 3
   force_command:
diff --git a/openssh/server/service.sls b/openssh/server/service.sls
index fdb6989..682857e 100644
--- a/openssh/server/service.sls
+++ b/openssh/server/service.sls
@@ -7,7 +7,13 @@
 
 {%- if server.banner is defined %}
 
-/etc/banner:
+{# CIS 5.2.15 requires Banner option configured. It also proposes
+   file name '/etc/issue.net' as a solution, if Banner is not configured.
+   WARNING: Some security scanners accepts only '/etc/issue.net'
+   as a valid banner file name, so please do not change it.
+#}
+
+/etc/issue.net:
   file.managed:
   - user: root
   - group: root
diff --git a/tests/pillar/server.sls b/tests/pillar/server.sls
index ccfcbcb..4bdf62b 100644
--- a/tests/pillar/server.sls
+++ b/tests/pillar/server.sls
@@ -13,6 +13,7 @@
   server:
     enabled: true
     use_dns: yes
+    syslog_facility: auth
     user:
       testusername:
         enabled: true
