Add address masks
[mirror/dsa-puppet.git] / modules / ssh / templates / sshd_config.erb
index 6828606..e51a8f6 100644 (file)
@@ -21,6 +21,14 @@ HostKey /etc/ssh/ssh_host_rsa_key
 <%- if has_variable?("has_etc_ssh_ssh_host_ed25519_key") && @has_etc_ssh_ssh_host_ed25519_key -%>
 HostKey /etc/ssh/ssh_host_ed25519_key
 <% end %>
+<% if scope.function_has_role(['ssh.upload.d.o']) -%>
+# On ssh upload hosts we have many clients doing ssh connections to us.
+# sshd has - by default - a limit of 10 on the number of currently
+# unauthenticated (or not yet authenticated) connections.  Raise that limit.
+MaxStartups 100:30:200
+<% end %>
+
+LogLevel VERBOSE
 
 # Authentication:
 PermitRootLogin without-password
@@ -41,6 +49,21 @@ AuthorizedKeysFile /etc/ssh/userkeys/%u /var/lib/misc/userkeys/%u /etc/ssh/userk
 
 PasswordAuthentication no
 
+Match Address <%=
+  allnodeinfo = scope.lookupvar('site::allnodeinfo')
+  dbs = []
+  allnodeinfo.keys.sort.each do |node|
+      next unless allnodeinfo[node].has_key?('ipHostNumber')
+      if allnodeinfo[node]['ipHostNumber'] =~ ":"
+          dbs << "#{allnodeinfo[node]['ipHostNumber']}/128"
+      else
+          dbs << "#{allnodeinfo[node]['ipHostNumber']}/32"
+      end
+  end
+  dbs.flatten.join(',')
+%>
+  Banner "You're coming from a debian.org host"
+
 Match Group sftponly
   AllowStreamLocalForwarding no
   AllowTCPForwarding no