Consentire richieste ad un porto solo dopo accesso ssh
-
- Prode Principiante
- Messaggi: 2
- Iscrizione: martedì 16 ottobre 2012, 21:32
Consentire richieste ad un porto solo dopo accesso ssh
Ciao a tutti,
volevo porre una domanda a chi è più esperto di me riguardo le policy del firewall. Vorrei ottenere questo scenario:
Ho un server che rilascia dei token di abilitazione (delle licenze praticamente) a un certo numero di utenti che facciano una richiesta ad un porto di ascolto X.
Sulla stessa macchina risiede un server ssh che utilizziamo per degli altri scopi.
L'accesso ssh è regolato da chiave DSA asimmetrica e, data la robustezza di tale sistema, non è ristretto per IP sorgente: in pratica ci si può lavorare da qualsiasi posizione.
Viceversa il token server rilascia le licenze a chiunque le richieda sul porto apposito, senza restrizioni: devo per forza imporre, nel file iptables, delle restrizioni sugli IP consentiti per le richieste entranti su tale porto X.
Ora mi domandavo: posso fare in modo che le policy di INPUT sul porto X facciano passare le richieste solo se "precedentemente" (entro un certo intervallo di tempo) dallo stesso ip è stato effettuato con successo un accesso ssh?
L'unica alternativa cui avevo pensato era creare uno script bash da eseguire una volta loggati via ssh per "registrare" l'IP sorgente nelle iptables (e rilanciarle) e uno script "duale" da lanciare prima di disconnettere la sessione. (in particolare c'è un comando bash che restituisca l'IP da cui mi sto collegando in ssh?). Ovviamente è un sistema molto più seccante...Che ne dite?
volevo porre una domanda a chi è più esperto di me riguardo le policy del firewall. Vorrei ottenere questo scenario:
Ho un server che rilascia dei token di abilitazione (delle licenze praticamente) a un certo numero di utenti che facciano una richiesta ad un porto di ascolto X.
Sulla stessa macchina risiede un server ssh che utilizziamo per degli altri scopi.
L'accesso ssh è regolato da chiave DSA asimmetrica e, data la robustezza di tale sistema, non è ristretto per IP sorgente: in pratica ci si può lavorare da qualsiasi posizione.
Viceversa il token server rilascia le licenze a chiunque le richieda sul porto apposito, senza restrizioni: devo per forza imporre, nel file iptables, delle restrizioni sugli IP consentiti per le richieste entranti su tale porto X.
Ora mi domandavo: posso fare in modo che le policy di INPUT sul porto X facciano passare le richieste solo se "precedentemente" (entro un certo intervallo di tempo) dallo stesso ip è stato effettuato con successo un accesso ssh?
L'unica alternativa cui avevo pensato era creare uno script bash da eseguire una volta loggati via ssh per "registrare" l'IP sorgente nelle iptables (e rilanciarle) e uno script "duale" da lanciare prima di disconnettere la sessione. (in particolare c'è un comando bash che restituisca l'IP da cui mi sto collegando in ssh?). Ovviamente è un sistema molto più seccante...Che ne dite?
Re: Consentire richieste ad un porto solo dopo accesso ssh
Potresti usare la variabile di ambiente SSH_CLIENT che restituisce l'ip remoto, la porta remota e la porta locale da dove è stato eseguito l'accesso ssh
Per curiosità, il fatto che il token server deve rilasciare licenze solo se precedentemente è stato eseguito un accesso ssh, ti server per garantire che solo chi ha un accesso ssh possa avere il token? Cioè garantire che non vengano rilasciati token a chi si collega alla porta ?
Per curiosità, il fatto che il token server deve rilasciare licenze solo se precedentemente è stato eseguito un accesso ssh, ti server per garantire che solo chi ha un accesso ssh possa avere il token? Cioè garantire che non vengano rilasciati token a chi si collega alla porta ?
-
- Prode Principiante
- Messaggi: 2
- Iscrizione: martedì 16 ottobre 2012, 21:32
Re: Consentire richieste ad un porto solo dopo accesso ssh
Esatto, voglio evitare che chiunque possa fare una richiesta alla porta X e ottenere una licenza. Invece se l'accesso alla porta X è consentito solo a chi in quel momento è connesso via SSH riesco a restringere gli accessi come voglio. ma la variabile SSH_CLIENT elenca tutti i clients connessi in quel momento? Poso utilizzarla anche dentro il file iptables?
Grazie
Grazie
- Alien321
- Entusiasta Emergente
- Messaggi: 1388
- Iscrizione: sabato 20 maggio 2006, 20:39
- Desktop: KDE 5.16.4
- Distribuzione: KDE Neon
- Località: Venere
Re: Consentire richieste ad un porto solo dopo accesso ssh
No, è meglio se fai uno script che parserizza il file "/var/log/auth.log" e estrai li informazioni che ti servono.giorgiolopez » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4218188#p4218188]ieri, 14:50[/url] ha scritto:Esatto, voglio evitare che chiunque possa fare una richiesta alla porta X e ottenere una licenza. Invece se l'accesso alla porta X è consentito solo a chi in quel momento è connesso via SSH riesco a restringere gli accessi come voglio. ma la variabile SSH_CLIENT elenca tutti i clients connessi in quel momento? Poso utilizzarla anche dentro il file iptables?
Grazie
Potresti farne 2 o uno con diversi parametri. il Primo inserisce le regole di autenticazione sul firewall basandosi sulle informazioni estrapolate dal file auth.log.
Il secondo resetta i privilegi di del firewall.
Poi vedi tu secondo la tua fantasia e esigenza.
Spoiler
Mostra
Finalmente è finito carnevale, anche se vedo ancora gente in maschera
Re: Consentire richieste ad un porto solo dopo accesso ssh
Eseguire una scansione periodica di un file e adeguare firewall e applicazione, potrebbe andare bene, ma considera sempre il tempo di polling e la dimensione del delta da elaborare, cioè se il file auth.log lo controlli ogni 5 minuti, il token potrà essere generato solo dopo 5 minuti + il tempo di elaborazione del file dall'accesso in ssh
La variabile SSH_CLIENT contiene solo le informazioni alla sessione in corso. Ad esempio
ma l'utenza deve poter usare SSH?
Se no, puoi usare l'opzione "command" dell'authorized_keys, eseguire un programma specifico nel momento in cui l'utente esegue il collegamento in ssh, e li restituire il token
L'ho usato con SVN e nel blog ho spiegato come, non so se può tornarti utile
Ciao
La variabile SSH_CLIENT contiene solo le informazioni alla sessione in corso. Ad esempio
Codice: Seleziona tutto
echo $SSH_CLIENT
192.168.1.9 49669 22
Se no, puoi usare l'opzione "command" dell'authorized_keys, eseguire un programma specifico nel momento in cui l'utente esegue il collegamento in ssh, e li restituire il token
L'ho usato con SVN e nel blog ho spiegato come, non so se può tornarti utile
Ciao
- Alien321
- Entusiasta Emergente
- Messaggi: 1388
- Iscrizione: sabato 20 maggio 2006, 20:39
- Desktop: KDE 5.16.4
- Distribuzione: KDE Neon
- Località: Venere
Re: Consentire richieste ad un porto solo dopo accesso ssh
mmmm, come soluzione è elegante ma ha un problema IMHO, per inserire una regola in iptables devi essere root e in questo modo tu avresti i privilegi di accessopaper0k » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4220277#p4220277]oggi, 8:07[/url] ha scritto:Eseguire una scansione periodica di un file e adeguare firewall e applicazione, potrebbe andare bene, ma considera sempre il tempo di polling e la dimensione del delta da elaborare, cioè se il file auth.log lo controlli ogni 5 minuti, il token potrà essere generato solo dopo 5 minuti + il tempo di elaborazione del file dall'accesso in ssh
La variabile SSH_CLIENT contiene solo le informazioni alla sessione in corso. Ad esempioma l'utenza deve poter usare SSH?Codice: Seleziona tutto
echo $SSH_CLIENT 192.168.1.9 49669 22
Se no, puoi usare l'opzione "command" dell'authorized_keys, eseguire un programma specifico nel momento in cui l'utente esegue il collegamento in ssh, e li restituire il token
L'ho usato con SVN e nel blog ho spiegato come, non so se può tornarti utile
Ciao
del utente che si collega in SSH. Potresti usare "sudo" con restrizioni o altri trucchi, ma genereresti dei buchi di sicurezza non indifferenti (far usare iptables a utenti non root?? Paura!!)
Spoiler
Mostra
Finalmente è finito carnevale, anche se vedo ancora gente in maschera
Re: Consentire richieste ad un porto solo dopo accesso ssh
Se ho capito bene la richiesta di giorgiolopez, non serve aggiornare iptables, perché direttamente con l'accesso in SSH generi il token e lo restituisci, in pratica "salti" un passaggioAlien321 » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4220426#p4220426]ieri, 12:01[/url] ha scritto: mmmm, come soluzione è elegante ma ha un problema IMHO, per inserire una regola in iptables devi essere root e in questo modo tu avresti i privilegi di accesso
del utente che si collega in SSH. Potresti usare "sudo" con restrizioni o altri trucchi, ma genereresti dei buchi di sicurezza non indifferenti (far usare iptables a utenti non root?? Paura!!)
Ciao
- Alien321
- Entusiasta Emergente
- Messaggi: 1388
- Iscrizione: sabato 20 maggio 2006, 20:39
- Desktop: KDE 5.16.4
- Distribuzione: KDE Neon
- Località: Venere
Re: Consentire richieste ad un porto solo dopo accesso ssh
paper0k » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4221288#p4221288]oggi, 8:08[/url] ha scritto:Se ho capito bene la richiesta di giorgiolopez, non serve aggiornare iptables, perché direttamente con l'accesso in SSH generi il token e lo restituisci, in pratica "salti" un passaggioAlien321 » [url=http://forum.ubuntu-it.org/viewtopic.php?p=4220426#p4220426]ieri, 12:01[/url] ha scritto: mmmm, come soluzione è elegante ma ha un problema IMHO, per inserire una regola in iptables devi essere root e in questo modo tu avresti i privilegi di accesso
del utente che si collega in SSH. Potresti usare "sudo" con restrizioni o altri trucchi, ma genereresti dei buchi di sicurezza non indifferenti (far usare iptables a utenti non root?? Paura!!)
Ciao
A me sembra che deve fare tutto lui da questa frase, tralasciamo che è semi incomprensibile (porto?? Mica siamo su una nave è "PORTA"; file iptables?? Al limite è regola) per cui è plausibile che o io o tu abbiamo frainteso ^^Viceversa il token server rilascia le licenze a chiunque le richieda sul porto apposito, senza restrizioni: devo per forza imporre, nel file iptables, delle restrizioni sugli IP consentiti per le richieste entranti su tale porto X.
Spoiler
Mostra
Finalmente è finito carnevale, anche se vedo ancora gente in maschera
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 12 ospiti