Configurazione sshd su OS X Lion

5

Sto provando a impostare alcuni (rudimenti) sicurezza ssh sulla mia workstation dietro un router su una rete domestica. È in esecuzione Mac OS X Lion (10.7).

A quanto ho capito, ciò che si farebbe normalmente in tali circostanze è modificare le parti appropriate di un file /etc/sshd_config . Ad esempio, potrei avere

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

E questo, rispettivamente, ascolta solo sulla porta 12345, accetta solo il metodo di autenticazione "2", non consente il login di root e consente solo accessi chiave. Vorrei quindi riavviare il demone ssh e poi tutto sarebbe fantastico.

A quanto pare questo ha funzionato con Snow Leopard (OS X 10.6), ma non sembra funzionare per Lion. Lion sembra ignorare qualsiasi cosa nel file sshd_config .

Per cambiare la porta, puoi seguire il consiglio di alcuni blog e post di forum (1,2) che ti indirizzano a cambiare (a) aggiungere un nuovo servizio ssh modificando /System/Library/LaunchDaemons/ssh.plist e (b) definendo la porta di il nuovo servizio in /etc/services .

Funziona - facendo ssh [email protected] rifiuta la connessione, ma ora ssh [email protected] -p 12345 funziona bene.

Il problema è che non ho idea di come usare passi simili per cambiare qualcos'altro: come posso disabilitare i login di root e / o le autenticazioni delle password?

1: Modifica della porta sshd su Lion

2: Modifica della porta sshd su OS X 10.4

    
posta CajunLuke 10.08.2011 - 15:35
fonte

2 risposte

4

Non puoi cambiare la porta sshd ascoltandola cambiandola in sshd_config dato che sshd non è ancora in esecuzione quando arriva la connessione. sshd viene lanciato istantaneamente all'avvio di una connessione. Quindi è necessario cambiare la porta nell'elemento appropriato lanciato, o crearne un'altra per avere una seconda porta in ascolto per le connessioni ssh in entrata.

Puoi trovare il file corretto in /System/Library/LaunchDaemons/ssh.plist

Copia quello in /Library/LaunchDaemons/ssh-alternative.plist e cambia la seguente parte:

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

Si noti che il SockServiceName è stato cambiato da ssh a ssh-alt. Per farlo funzionare devi aggiungere un servizio chiamato ssh-alt a /etc/services Ad esempio, come questo (per abbinare il tuo esempio) aggiungi questa linea:

ssh-alt 12345 / tcp # ssh-alt

Puoi quindi caricare la tua nuova configurazione alternativa ssh con sudo launchctl load -w /Library/LaunchDaemons/ssh-alt.plist

Se stai utilizzando ipfw assicurati di consentire le connessioni TCP alla nuova porta. Sharing.PrefPanel ti permetterà solo di accendere e della porta standard 22 ascoltare sshd (A meno che tu non cambi ssh in /etc/services che io raccomando non ).

Inoltre puoi impedire che questo servizio sia pubblicizzato da Bonjour rimuovendo la parte corrispondente dall'elemento lanciato.

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

Se era già in esecuzione, è necessario scaricare e caricare nuovamente l'elemento.

    
risposta data 11.08.2011 - 00:07
fonte
1

Per quanto riguarda la porta, ho sempre trovato più facile rimapparlo nel mio router che in OS X. Non è sempre possibile, ma se il tuo router lo supporta, è banale.

Come per l'autenticazione, sshd sta leggendo il file di configurazione, c'è solo più di un tipo di meccanismo usato. Nel tuo caso, oltre a impostare PasswordAuthentication devi impostare ChallengeResponseAuthentication su "no".

    
risposta data 10.08.2011 - 19:42
fonte

Leggi altre domande sui tag