Configurando sshd en OS X Lion

5

Estoy tratando de configurar algo de seguridad ssh (rudimentaria) en mi estación de trabajo detrás de un enrutador en una red doméstica. Se está ejecutando Mac OS X Lion (10.7).

Tal como lo entiendo, lo que uno haría normalmente en tales circunstancias es cambiar las partes apropiadas de un archivo /etc/sshd_config . Por ejemplo, podría tener

# akil@computerA:/etc/sshd_config
Port 12345
Protocol 2
PermitRootLogin no
PasswordAuthentication no

Y esto, respectivamente, solo escucharía en el puerto 12345, aceptaría solo el método de autenticación "2", no permitiría inicios de sesión de root y solo permitiría inicios de sesión clave. Luego reiniciaría el demonio ssh y luego todo sería genial.

Al parecer, esto funcionó con Snow Leopard (OS X 10.6), pero no parece funcionar para Lion. Lion parece ignorar cualquier cosa en el archivo sshd_config .

Para cambiar el puerto, puede seguir los consejos de algunos blogs y publicaciones de foros (1,2) que le indican que cambie (a) agregue un nuevo servicio ssh editando /System/Library/LaunchDaemons/ssh.plist y (b) definiendo el puerto de El nuevo servicio en /etc/services .

Esto funciona: hacer ssh [email protected] rechaza la conexión, pero ahora ssh [email protected] -p 12345 funciona bien.

El problema es que no tengo idea de cómo usar pasos similares para cambiar algo más: ¿cómo deshabilito los inicios de sesión de root y / o las autenticaciones de contraseña?

1: Cambio de puerto sshd en Lion

2: Cambio del puerto sshd en OS X 10.4

    
pregunta CajunLuke 10.08.2011 - 15:35

2 respuestas

4

No se puede cambiar el puerto que escucha sshd al cambiarlo en sshd_config, ya que sshd aún no se está ejecutando cuando se establece la conexión. sshd se inicia al iniciarse instantáneamente cuando llega una conexión. Por lo tanto, debe cambiar el puerto en el elemento lanzado apropiado o crear otro para tener un segundo puerto que escuche las conexiones ssh entrantes.

Puedes encontrar el archivo correcto en /System/Library/LaunchDaemons/ssh.plist

Copie eso a /Library/LaunchDaemons/ssh-alternative.plist y cambie la siguiente parte:

            <key>Listeners</key>
            <dict>
                    <key>SockServiceName</key>
                    <string>ssh-alt</string>
            </dict>

Observe que SockServiceName ha cambiado de ssh a ssh-alt. Para que funcione, debe agregar un servicio llamado ssh-alt a /etc/services Por ejemplo, como este (para que coincida con su ejemplo) agregue esta línea:

ssh-alt 12345 / tcp # ssh-alt

Luego puede cargar su nueva configuración ssh-alternative con sudo launchctl load -w /Library/LaunchDaemons/ssh-alt.plist

Si estás ejecutando ipfw , asegúrate de permitir conexiones tcp al nuevo puerto. El Sharing.PrefPanel solo le permitirá encender y el puerto estándar 22 escucha sshd (a menos que cambie ssh en /etc/services , lo que no recomiendo).

Además, puede evitar que Bonjour anuncie este servicio eliminando la parte correspondiente del artículo lanzado.

        <key>Bonjour</key>
        <array>
            <string>ssh</string>
            <string>sftp-ssh</string>
        </array>

Si esto ya se estaba ejecutando, necesita descargar y cargar el elemento nuevamente.

    
respondido por el MacLemon 11.08.2011 - 00:07
1

En cuanto al puerto, siempre me ha resultado más fácil volver a asignarlo en mi enrutador que en OS X. Eso no siempre es posible, pero si su enrutador lo admite, es trivial.

En cuanto a la autenticación, sshd está leyendo el archivo de configuración, solo se está utilizando más de un tipo de mecanismo. En su caso, además de configurar PasswordAuthentication, debe configurar ChallengeResponseAuthentication en 'no'.

    
respondido por el zzz 10.08.2011 - 19:42

Lea otras preguntas en las etiquetas