31 agosto 2009

2/2 - Fortificación del servicio SSH


Primera parte de esta entrada: 1/2 Fortificación del servicio SSH.
  • PasswordAuthentication (por defecto: si)
El método más seguro para autenticar contra un servicio SSH es el uso de certificados y la prohibición de otras opciones más clásicos y sencillas de automatizar en un posible ataque. Si se modifica la directiva PasswordAuthentication a "no", solo usuarios con certificados correctamente configurados podrán conectar al sistema.
  • ChallengeResponseAuthentication (por defecto: yes, depende de la distribución)
Mediante ChallangeResponseAuthentication se determina si el servidor seguro utilizará los métodos de autenticación "keyboard-interactive", utilizado en sistemas OTP u otros métodos basados en PAM. OJO, modificar esta directiva si no se utiliza certificados puede causar la perdida de acceso al sistema.
  • AllowAgentForwarding (por defecto: yes)
La directiva AllowAgentForwarding especifica cuando el cliente ssh-agent permite encaminamiento. La propia ayuda de OpenSSH especifica que se define a "yes", por defecto ya que alguien con acceso al sistema podría utilizar su propio cliente de encaminamiento. En todo caso, si no se va a utilizar se recomienda su desactivación.
  • AllowTcpForwarding (por defecto: yes)
Especifica cuando se permite hacer encaminamiento TCP, el valor por defecto, al igual que en el parámetro anterior y bajo la misma premisa activa la opción. La polémica se desarrolla en distintos análisis como el siguiente: http://kitenet.net/~joey/blog/entry/ssh_port_forwarding/. Salvo sea necesario, se recomienda su configuración al valor "no"
  • Banner (por defecto: none)
Especifica el archivo que será mostrado antes de la autenticación de un usuario en el sistema. En este tipo de ficheros se suele mostrar un mensaje de advertencia con la política en caso de que se detecten intentos de intrusión. Solo funciona en SSH con protocolo versión 2.
  • MaxStartups (por defecto: 10)
Especifica el número máximo permitido de conexiones simultaneas no autenticadas, todos los intentos de conexión siguientes serán denegados hasta que uno de los anteriores realice correctamente el proceso completo. Si el sistema no tiene demasiada carga de usuarios, un número inferior ahorra recursos y ralentizará ataques de fuerza bruta. Un ejemplo podría ser "3"
  • Ciphers (por defecto: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128..)
Tras la vulnerabilidad reportada por CPNI en la implantación de CBC en OpenSSH, el equipo de desarrollo decidió cambiar el orden de preferencia de los cifrados a utilizar. Pese a que en las versiones más actuales son correctos y se utiliza preferiblemente CTR, es conveniente revisar que la versión de SSH instalada mantiene esta configuración. Desde la nota de seguridad de OpenSSH se recomienda:
aes128-ctr,aes256-ctr,arcfour256,arcfour,aes128-cbc,aes256-cbc
  • Otros valores por defecto
Otros valores por defecto deben comprobarse en un proceso de fortificación para evitar que en instalaciones y configuraciones anteriores no se hayan modificado erroneamente. Entre ellos los más importantes son: X11forwarding que ha de menter "no" y PermitEmptyPasswords que ha de permanecer como "no".

Primera parte de esta entrada: 1/2 Fortificación del servicio SSH.