Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
puppet-ssh-hardening — Questo modulo Puppet fornisce configurazioni sicure per ssh-client e ssh-server. | Kitploit
Strumenti/GitHubGitHub/dev-sec/puppet-ssh-hardening
Sicurezza dell'Infrastruttura CloudAudit di ConfigurazioneSicurezza di ReteDevSecOpsAutenticazione
GitHubdev-sec/puppet-ssh-hardening

puppet-ssh-hardening

Questo modulo Puppet fornisce configurazioni sicure per ssh-client e ssh-server.

Vedi Repository
6031482 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Sito web
Condividi

Hardening SSH con Puppet

Puppet Forge Build Status Gitter Chat

Descrizione

Questo modulo Puppet fornisce configurazioni sicure per ssh-client e ssh-server.

Requisiti

  • Puppet
  • Moduli Puppet: saz/ssh (>= 2.3.6), puppetlabs/stdlib (>= 4.2.0)

Parametri

  • ipv6_enabled = false - true se è necessario IPv6
  • cbc_required = false - true se CBC è richiesto per i cifrari. Di solito è necessario solo se vecchi meccanismi M2M devono comunicare con SSH e non hanno abilitato nessuno dei cifrari sicuri configurati. CBC è un'alternativa debole. Qualsiasi cosa più debole dovrebbe essere evitata e pertanto non è disponibile.
  • weak_hmac = false - true se sono richiesti meccanismi HMAC più deboli. Di solito è necessario solo se vecchi meccanismi M2M devono comunicare con SSH e non hanno abilitato nessuno degli HMAC sicuri configurati.
  • weak_kex = false - true se sono richiesti meccanismi di Key-Exchange (KEX) più deboli. Di solito è necessario solo se vecchi meccanismi M2M devono comunicare con SSH e non hanno abilitato nessuno dei KEX sicuri configurati.
  • allow_root_with_key = false - false per disabilitare del tutto il login di root. Impostare a true per consentire a root di accedere tramite meccanismo basato su chiave.
  • ports = [ 22 ] - porte su cui ssh-server deve rimanere in ascolto e a cui ssh-client deve connettersi
  • listen_to = [ "0.0.0.0" ] - uno o più indirizzi IP a cui ssh-server deve rimanere in ascolto. Il valore predefinito è vuoto, ma dovrebbe essere configurato per motivi di sicurezza!
  • remote_hosts - uno o più host a cui ssh-client può connettersi. Il valore predefinito è vuoto, ma dovrebbe essere configurato per motivi di sicurezza!
  • allow_tcp_forwarding = false - impostare a true per consentire il forwarding TCP
  • allow_agent_forwarding = false - impostare a true per consentire il forwarding dell'agente
  • use_pam = false per disabilitare l'autenticazione PAM
  • client_options = {} - impostare valori nell'hash per sovrascrivere le impostazioni del modulo
  • server_options = {} - impostare valori nell'hash per sovrascrivere le impostazioni del modulo

Utilizzo

Dopo aver aggiunto questo modulo, puoi usare la classe:

class { 'ssh_hardening': }

Questo installerà ssh-server e ssh-client. In alternativa puoi sceglierne solo uno tramite:

class { 'ssh_hardening::server': }
class { 'ssh_hardening::client': }

Dovresti configurare gli attributi principali:

class { 'ssh_hardening::server':
  "listen_to" : ["10.2.3.4"]
}

Il valore predefinito per listen_to è 0.0.0.0. È fortemente consigliato modificare il valore.

Sovrascrivere le opzioni predefinite

Le opzioni predefinite verranno unite con le opzioni passate tramite i parametri client_options e server_options. Se un'opzione è impostata sia come predefinita sia tramite il parametro delle opzioni, vincerà quest'ultima.

L'esempio seguente abiliterà X11Forwarding, che è disabilitato per impostazione predefinita:

class { 'ssh_hardening':
  server_options => {
    'X11Forwarding' => 'yes',
  },
}

Test locali

Per i test locali puoi usare vagrant e Virtualbox o VMWare per eseguire i test in locale. Dovrai installare Virtualbox e Vagrant sul tuo sistema. Vedi Vagrant Downloads per un pacchetto vagrant adatto al tuo sistema. Per tutti i nostri test usiamo test-kitchen. Se non hai familiarità con test-kitchen, dai un'occhiata alla loro guida.

Successivamente installa test-kitchen:

# Installa le dipendenze
gem install bundler
bundle install

# Recupera i test
bundle exec thor kitchen:fetch-remote-tests

# Esegui i controlli lint
bundle exec rake lint

# Esegui i controlli spec
bundle exec rake spec

# test rapido su una macchina
bundle exec kitchen test default-ubuntu-1204

# test su macchine basate su Debian
bundle exec kitchen test

# per lo sviluppo
bundle exec kitchen create default-ubuntu-1204
bundle exec kitchen converge default-ubuntu-1204

Per maggiori informazioni vedi test-kitchen

FAQ / Insidie

Non riesco ad accedere al mio account. Ho registrato la chiave del client, ma non mi fa comunque entrare.

Se hai esaurito tutti i problemi tipici (firewall, rete, chiave mancante, chiave sbagliata, account disabilitato, ecc.), potrebbe essere che il tuo account sia bloccato. Il modo più rapido per scoprirlo è guardare l'hash della password per il tuo utente:

sudo grep myuser /etc/shadow

Se l'hash include un !, il tuo account è bloccato:

myuser:!:16280:7:60:7:::

Il modo corretto per risolvere è sbloccare l'account (passwd -u myuser). Se l'utente non ha una password, puoi sbloccarlo tramite:

usermod -p "*" myuser

In alternativa, se intendi usare PAM, lo hai abilitato tramite use_pam = true. PAM consentirà agli utenti bloccati di accedere con le chiavi.

Perché la mia applicazione non si connette più tramite SSH?

Guarda sempre prima i file di log e, se possibile, osserva la negoziazione tra client e server che avviene durante la connessione.

Abbiamo visto alcuni problemi in applicazioni (basate su python e ruby) dovuti al loro uso di un set crittografico obsoleto. Questo collide con questo modulo di hardening, che ha ridotto l'elenco di cifrari, codici di autenticazione del messaggio (MAC) e algoritmi di scambio chiave (KEX) a una selezione più sicura.

Se scopri che questo non basta, sentiti libero di attivare cbc_required per i cifrari, weak_hmac per i MAC e weak_kex per i KEX.

Collaboratori + Riconoscimenti

  • Dominik Richter arlimus
  • Edmund Haselwanter ehaselwanter
  • Christoph Hartmann chris-rock
  • Patrick Meier atomic111
  • Matthew Haughton 3flex
  • Bernhard Schmidt bernhardschmidt
  • Kurt Huwig kurthuwig
  • Artem Sidorenko artem-sidorenko
  • Guillaume Destuynder gdestuynder
  • Bernhard Weisshuhn bkw
  • stribika

Licenza e Autore

  • Autore:: Dominik Richter [email protected]
  • Autore:: Deutsche Telekom AG

Concesso in licenza secondo la Apache License, Versione 2.0 (la "Licenza"); non puoi usare questo file se non in conformità con la Licenza. Puoi ottenere una copia della Licenza all'indirizzo

http://www.apache.org/licenses/LICENSE-2.0

Salvo quanto richiesto dalla legge applicabile o concordato per iscritto, il software distribuito secondo la Licenza è distribuito su base "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o implicite. Vedi la Licenza per il linguaggio specifico che regola i permessi e le limitazioni previsti dalla Licenza.

Scarica lo strumento