homebrew openssh pci-compliance

Actualiza openssh en OS X con homebrew para el cumplimiento de PCI



pci-compliance (2)

La versión existente de openssh en OS X 10.7.4 es SSH-2.0-OpenSSH_5.6, que no es, lamentablemente, compatible con PCI. Entonces, necesito actualizarlo y he estado tratando de hacerlo con Homebrew.

Hasta ahora, lo que he hecho es:

brew tap homebrew/dupes brew install openssh

No hay problema, todo salió bien, y ahora, cuando intento which ssh obtengo:

/usr/local/bin/ssh

Lo que parece bien, también lo which sshd da which sshd :

/usr/local/sbin/sshd

y ssh -v informa debidamente:

OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011

Hasta ahora tan bueno. Pero aquí es donde estoy fuera de mi elemento. El puerto 22 sigue utilizando la versión instalada del sistema operativo, es decir, que el telnet hostname 22 informa:

SSH-2.0-OpenSSH_5.6

He intentado remendarme con /System/Library/LaunchDaemons/ssh.plist sin suerte.

Entonces, mis preguntas son (probablemente en orden inverso de importancia):

  1. ¿Cómo consigo que mi instalación Homebrew de openssh sea la que esté escuchando en el puerto 22?
  2. Si lo hago, ¿esto causará algún conflicto con OS X u otro software?
  3. ¿Es la forma en que estoy haciendo esto una razonable en primer lugar?
  4. ¿No estoy pensando en cosas que debería ser?
  5. ¿Es una idea terrible para empezar?

Estoy frustrado por no pasar el escaneo de Cumplimiento de PCI y necesito resolverlo, y francamente estoy considerando cambiar todos los sitios web de comercio electrónico de mi servidor a stripe.com, pero me gustaría que esto se solucione . Además, ¿alguien sabe si openssh se actualizará en Mountain Lion?

Edición: Esto es lo que he estado probando en /System/Library/LaunchDaemons/ssh.plist:

Solo he editado una línea, cambiando:

<string>/usr/sbin/sshd</string>

A

<string>/usr/local/sbin/sshd</string>

Y luego intenté sudo kill -HUP 1 como lo sugiere @ the-paul a continuación, así como reiniciar la Mac.

Telnetting desde un control remoto aún muestra SSH-2.0-OpenSSH_5.6

Mi archivo ssh.plist completo ahora se ve así: http://pastie.org/private/qnhofuxomawjdypp9wgaq


  1. Demonios como este se controlan en OS X mediante launchd , que a su vez está configurado por archivos en directorios como /System/Library/LaunchDaemons/ y /Library/LaunchDaemons . En al menos Lion y Snow Leopard, el daemon ssh predeterminado está definido por /System/Library/LaunchDaemons/ssh.plist .

    Puede abrirlo como root con un editor de texto y cambiar el valor de la clave " Program " de /usr/libexec/sshd-keygen-wrapper a la ruta que desee; en su caso, probablemente sea /usr/local/sbin/sshd . Luego, también debe cambiar la primera de las cadenas ProgramArguments , la que dice /usr/sbin/sshd , ya que se considera un argumento para launchproxy . Luego, para recargar,

    sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

  2. No veo cómo eso podría causar algún conflicto con el software OS X normal o de buen comportamiento.

  3. Sí, eso me parece muy razonable. La seguridad es importante.

  4. Esta no es realmente una pregunta muy respondible. Pero casi seguro, sí, igual que todos los demás: ^)

  5. No Lo único de lo que realmente se debe preocupar es de mantener su sshd actualizado con la seguridad también o mejor que el sistema operativo. Si está al tanto de preocupaciones como la que plantea esta pregunta, entonces no creo que sea un problema para usted.

Editar: corregí mis sugerencias para editar ssh.plist (lo probé esta vez).


Esto es lo que hice. Basado en la discusión anterior. Probado con éxito el 10.11.6 (El Capitán)

Servidor

  1. Edite /System/Library/LaunchDaemons/ssh.plist para que la clave correspondiente refleje ...

    <key>ProgramArguments</key> <array> <string>/usr/local/sbin/sshd</string> <string>-i</string> </array>

  2. Edite el script de shell /usr/libexec/sshd-keygen-wrapper para que el último comando refleje lo siguiente:

    exec /usr/local/sbin/sshd $@

  3. Clone /etc/ssh/ contenido del directorio:

    $ sudo cp /etc/ssh/ssh* /usr/local/etc/ssh/

  4. Asegúrese de la propiedad de archivos sólidos y permisos:

    $ sudo chmod 755 /usr/local/etc/ssh/ $ sudo chmod 600 /usr/local/etc/ssh/*_key $ sudo chmod 644 /usr/local/etc/ssh/ssh{{,d}_config,*.pub} $ sudo chown -R root:wheel /usr/local/etc/ssh/

  5. Recargar SSH dæmon:

    $ sudo launchctl unload -w /System/Library/LaunchDaemons/ssh.plist $ sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

    Nota: la última entrada, por ejemplo, es equivalente a la systemsetup -setremotelogin on de systemsetup -setremotelogin on o la activación de Compartir en el panel de Preferencias del sistema.

  6. Asegúrese de actualizar OpenSSH desde el Cliente :

    $ ssh-audit <Server IP> # general (gen) banner: SSH-2.0-OpenSSH_7.8 (gen) software: OpenSSH 7.8 (gen) compatibility: OpenSSH 6.5+, Dropbear SSH 2013.62+ (gen) compression: enabled ([email protected])

Cliente

  1. Instalar OpenSSH:

    $ brew install openssh

  2. Clone /etc/ssh/ contenido del directorio.

  3. Asegúrese de la propiedad de archivos sólidos y permisos.