Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "PaoloVisnoviz/Prove1"
Differenze tra le versioni 19 e 20
Versione 19 del 12/12/2008 19.34.32
Dimensione: 3408
Commento:
Versione 20 del 13/12/2008 11.40.00
Dimensione: 4045
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 6: Linea 6:
## Port Knoking
Linea 9: Linea 8:
[[VersioniSupportate(hardy intrepid)]]
Linea 12: Linea 12:
Le tecniche di port knocking permettono di aumentare considerevolmente la sicurezza di un server del quale si ha la necessità di erogare servizi non permanenti attraverso IP Pubblici.
In sintesi, si inviano dei pacchetti a delle porte prestabilite sulle quali un demone è in ascolto e, nel caso la sequenza sia corretta, questi attiverà un comando che potrà eseguire delle regole di iptables che apriranno le porte prestabilite. Il vantaggio è notevole in quanto il server potrebbe rimanere sempre in "stealth" ed aprire la porta per il servizio SSH solo quando se ne ha bisogno.
Le tecniche di '''Port knocking''' permettono di aumentare considerevolmente la sicurezza di un server che deve garantire alcuni servizi non permanenti attraverso IP pubblici.
Se s'inviano dei pacchetti a delle porte prestabilite sulle quali un demone è in ascolto e nel caso la sequenza sia corretta, questi attiverà un comando che potrà eseguire delle regole di [:Sicurezza/Iptables:iptables] che apriranno le porte necessarie alla connessione. Il vantaggio è notevole in quanto il server potrebbe rimanere sempre in ''stealth'' e aprire le porte per un determinato servizio solo in caso di necessità.
Linea 15: Linea 15:
= Requisiti = = Preparativi =
Linea 17: Linea 17:
1 Ubuntu Server 8.04 LTS oppure 8.10.

2 Knockd.

3 Iptables.
È necessario che il firewall [:Sicurezza/Iptables: iptables] sia configurato e attivo.
Linea 25: Linea 21:
Knockd è presente nei repository, quindi basterà digitare:
{{{
sudo apt-get install knockd
}}}
Il demone non partirà in automatico, all'avvio del server, fino a quando non si modificherà il file: `/etc/default/knockd`.
{{{
Per utilizzare le tecniche di '''Port knocking''' è necessario [:AmministrazioneSistema/InstallareProgrammi:installare] il pacchetto ''knockd'', reperibile dal [:Repository/Componenti:componente] '''universe''' dei [:Repository:repository ufficiali].

= Configurazione =
 0. Per fare in modo che il demone parta all'avvio del computer modificare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] il file `/etc/default/knockd` in questo modo:{{{
Linea 34: Linea 28:
La riga seguente controlla su quale interfaccia il demone dovrà rimanere in ascolto:
{{{
 0. Sempre nel medesimo file `/etc/default/knockd` modificare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] impostando su quale interfaccia il demone dovrà rimanere in ascolto:{{{
Linea 39: Linea 32:
L'altro file che bisogna modificare è `/etc/knockd.conf`:
{{{
 0. Modificare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] il file `/etc/knockd.conf` impostandolo come segue:{{{

BR Indice() VersioniSupportate(hardy intrepid)

Introduzione

Le tecniche di Port knocking permettono di aumentare considerevolmente la sicurezza di un server che deve garantire alcuni servizi non permanenti attraverso IP pubblici. Se s'inviano dei pacchetti a delle porte prestabilite sulle quali un demone è in ascolto e nel caso la sequenza sia corretta, questi attiverà un comando che potrà eseguire delle regole di [:Sicurezza/Iptables:iptables] che apriranno le porte necessarie alla connessione. Il vantaggio è notevole in quanto il server potrebbe rimanere sempre in stealth e aprire le porte per un determinato servizio solo in caso di necessità.

Preparativi

È necessario che il firewall [:Sicurezza/Iptables: iptables] sia configurato e attivo.

Installazione

Per utilizzare le tecniche di Port knocking è necessario [:AmministrazioneSistema/InstallareProgrammi:installare] il pacchetto knockd, reperibile dal [:Repository/Componenti:componente] universe dei [:Repository:repository ufficiali].

Configurazione

  1. Per fare in modo che il demone parta all'avvio del computer modificare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] il file /etc/default/knockd in questo modo:

    START_KNOCKD=1
  2. Sempre nel medesimo file /etc/default/knockd modificare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] impostando su quale interfaccia il demone dovrà rimanere in ascolto:

    KNOCKD_OPTS="-i eth0"
  3. Modificare con un [:Ufficio/EditorDiTesto:editor di testo] e con i [:AmministrazioneSistema/Sudo:privilegi di amministrazione] il file /etc/knockd.conf impostandolo come segue:

    [options]
            logfile = /var/log/knockd.log
    
    [openSSH]
            sequence    = 7000,8000,9000
            seq_timeout = 30
            command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
            tcpflags    = syn
    
    [closeSSH]
            sequence    = 9000,8000,7000
            seq_timeout = 30
            command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
            tcpflags    = syn

Come si potrà notare è estremamente semplice ed efficace. Quando il demone riconosce la giusta sequenza della sezione [openSSH], effettuata entro 30 secondi, eseguirà il "command" realtivo, che in questo caso lancerà una regola di iptables che aprirà la porta SSH filtrando l'ip di chi ha "bussato" correttamente. Quando il client uscirà dalla sessione, effettuando la seconda sequenza [closeSSH] la regola verrà cancellata.

Client

In realtà potrebbe essere sufficiente telnet o netcat ma sono comodi i client che si trovano sul sito di zeroflux (vedere sezione riferimenti)

Note

Si consiglia vivamente di non mantenere le porte di default. Queste possono essere a scelta tra 0 e 65535, preferibilmente non usare porte occupate. La sequenza può essere di numero superiore ai tre dell'esempio e si possono usare porte UDP e TCP. Si può configurare anche una chiusura a tempo delle porte, per questi ed altri parametri controllare il wiki che si trova nei riferimenti. La sezione "command" non è detto debba essere un comando iptables, potrebbe essere qualsiasi cosa, p.es.: "init 6", per un riavvio remoto del server, oppure un comando "sh" che lancia uno script complesso. Esistono altre soluzioni alle tecniche di port knocking, vedere la sezione riferimenti.

Ulteriori risorse

Port knocking in perl:

[http://www.portknocking.org/]

Wiki del progetto trattato in questa sede e vari client:

[http://www.zeroflux.org/cgi-bin/cvstrac.cgi/knock/wiki]

The PortKnockO Project

[http://portknocko.berlios.de/]


CategoryHomepage