Re: ssh -N en alleen maar ssh -N toestaan (succes)

2023-04-02 Berichten over hetzelfde onderwerp Geert Stappers
On Tue, Mar 28, 2023 at 09:32:56PM +0200, Paul van der Vlis wrote:
> Op 27-03-2023 om 23:22 schreef Geert Stappers:
> > Op 26-03-2023 om 12:50 schreef Geert Stappers:
> > > 
> > > Uit `man 1 ssh`
> > > 
> > >     -N  Do not execute a remote command.
> > >     This is useful for just forward ports.
> > > 
> > > Nu is `ssh -N` een client kant ding.
> > > 
> > > Hoe aan server kant borgen dat alleen maar port forwarding gebeurd?
> > > 
> > > Ik had gedacht om het dicht te timmeren door aan authorized_keys
> > > op de server wat toe te voegen aan de regel met de pubkey voor
> > > het account dat de `ssh -N` moet gaan doen.
> > > 
> > > Er is "no-port-forwarding"
> > > https://www.ssh.com/academy/ssh/authorized-keys-openssh#no-port-forwarding
> > > maar niet iets als "only-port-forwarding"
> > >  

> > 
> > kunnen oplossen door
> > 
> > command="echo Don\'t do that"
> > 
> > voor de pubkey in ~/.ssh/authorized_keys te zetten. Dat is aan server
> > kant.
> > 
> > Als ik `ssh -N -R :127.0.0.1:22 server` doe, krijg ik de gewenste
> > portforward. Als ik iets zonder `-N` doe, komt er "Don't do that" terug.
> 
> Waarom geen shell die alles weigert?

Poortnummer van de gewenste port forward is langer dan 1025. Om dan de port
open te krijgen is superuserprivilege nodig. Daar ga ik de shell niet van
dichtzetten.

 
> Groet,
> Paul


Groeten
Geert Stappers
-- 
Silence is hard to parse



Re: ssh -N en alleen maar ssh -N toestaan (succes)

2023-03-28 Berichten over hetzelfde onderwerp Paul van der Vlis

Hoi Geert,

Op 27-03-2023 om 23:22 schreef Geert Stappers:

On Mon, Mar 27, 2023 at 12:07:38AM +0200, Paul van der Vlis wrote:

Op 26-03-2023 om 23:51 schreef Paul van der Vlis:

Hoi Geert en anderen,

Op 26-03-2023 om 12:50 schreef Geert Stappers:

Hoi,

Uit `man 1 ssh`

    -N  Do not execute a remote command.
    This is useful for just forward ports.


Nu is `ssh -N` een client kant ding.

Hoe aan server kant borgen dat alleen maar port forwarding gebeurd?



Ik had gedacht om het dicht te timmeren door aan authorized_keys
op de server wat toe te voegen aan de regel met de pubkey voor
het account dat de `ssh -N` moet gaan doen.

Er is "no-port-forwarding"
https://www.ssh.com/academy/ssh/authorized-keys-openssh#no-port-forwarding
maar niet iets als "only-port-forwarding"
    https://www.ssh.com/academy/ssh/authorized-keys-openssh

Wat zien jullie zoal aan mogelijkheden om aan server kant
er voor te zorgen dat SSH client alleen maar een verbinding
voor de portforward maakt, dat shell access niet kan?


Wat ik doe aan de server-kant is /usr/sbin/nologin als shell gebruiken.


Oh, en ik zie dat ik ook dit nog doe in sshd_config:
-
UsePAM no
Match User een,twee
   AllowTcpForwarding remote
   AllowStreamLocalForwarding no
   X11Forwarding no
   PermitTTY no
   PermitEmptyPasswords yes
   PasswordAuthentication yes
-

Kritiek is welkom ;-)
  
Stukje zelfkritiek:

er voor te zorgen dat SSH client alleen maar een verbinding
voor de portforward maakt, dat shell access niet kan?

had

er voor te zorgen dat SSH client alleen maar een verbinding
voor de portforward maakt.

zullen zijn.
Dat aandacht op "alleen maar een verbinding voor portforward" blijft.


Oorspronkelijke vraag heb ik kunnen oplossen door


command="echo Don\'t do that"

voor de pubkey in ~/.ssh/authorized_keys te zetten. Dat is aan server
kant.

Als ik `ssh -N -R :127.0.0.1:22 server` doe, krijg ik de gewenste
portforward. Als ik iets zonder `-N` doe, komt er "Don't do that" terug.


Waarom geen shell die alles weigert?


Ik heb trouwens nog een kleine extra beveiliging in de firewall, mensen
moeten zich eerst ergens aanmelden, dan pas krijgt hun IP toegang.


Met behulp van   from="hun IP"   voor de pubkey in authorized_keys?


Ze moeten eerst ergens naar een webpagina gaan, die triggert een script 
wat de firewall openzet voor hun IP voor een dag. Normaal staat die 
firewall dicht.


Ze kunnen "inloggen" zonder key en zonder paswoord, maar krijgen dus 
"nologin" als prompt. Het is alleen bedoeld voor portforward, via die 
portforward kan ik op hun machine komen voor support.


Groet,
Paul


--
Paul van der Vlis Linux systeembeheer Groningen
https://vandervlis.nl/



Re: ssh -N en alleen maar ssh -N toestaan (succes)

2023-03-27 Berichten over hetzelfde onderwerp Geert Stappers
On Mon, Mar 27, 2023 at 12:07:38AM +0200, Paul van der Vlis wrote:
> Op 26-03-2023 om 23:51 schreef Paul van der Vlis:
> > Hoi Geert en anderen,
> > 
> > Op 26-03-2023 om 12:50 schreef Geert Stappers:
> > > Hoi,
> > > 
> > > Uit `man 1 ssh`
> > > 
> > >    -N  Do not execute a remote command.
> > >    This is useful for just forward ports.
> > > 
> > > 
> > > Nu is `ssh -N` een client kant ding.
> > > 
> > > Hoe aan server kant borgen dat alleen maar port forwarding gebeurd?
> > > 
> > > 
> > > 
> > > Ik had gedacht om het dicht te timmeren door aan authorized_keys
> > > op de server wat toe te voegen aan de regel met de pubkey voor
> > > het account dat de `ssh -N` moet gaan doen.
> > > 
> > > Er is "no-port-forwarding"
> > > https://www.ssh.com/academy/ssh/authorized-keys-openssh#no-port-forwarding
> > > maar niet iets als "only-port-forwarding"
> > >    https://www.ssh.com/academy/ssh/authorized-keys-openssh
> > > 
> > > Wat zien jullie zoal aan mogelijkheden om aan server kant
> > > er voor te zorgen dat SSH client alleen maar een verbinding
> > > voor de portforward maakt, dat shell access niet kan?
> > 
> > Wat ik doe aan de server-kant is /usr/sbin/nologin als shell gebruiken.
> 
> Oh, en ik zie dat ik ook dit nog doe in sshd_config:
> -
> UsePAM no
> Match User een,twee
>   AllowTcpForwarding remote
>   AllowStreamLocalForwarding no
>   X11Forwarding no
>   PermitTTY no
>   PermitEmptyPasswords yes
>   PasswordAuthentication yes
> -
> 
> Kritiek is welkom ;-)
 
Stukje zelfkritiek:
> > > er voor te zorgen dat SSH client alleen maar een verbinding
> > > voor de portforward maakt, dat shell access niet kan?
had
> > > er voor te zorgen dat SSH client alleen maar een verbinding
> > > voor de portforward maakt.
zullen zijn.
Dat aandacht op "alleen maar een verbinding voor portforward" blijft.


Oorspronkelijke vraag heb ik kunnen oplossen door


   command="echo Don\'t do that"

voor de pubkey in ~/.ssh/authorized_keys te zetten. Dat is aan server
kant.

Als ik `ssh -N -R :127.0.0.1:22 server` doe, krijg ik de gewenste
portforward. Als ik iets zonder `-N` doe, komt er "Don't do that" terug.


> Ik heb trouwens nog een kleine extra beveiliging in de firewall, mensen
> moeten zich eerst ergens aanmelden, dan pas krijgt hun IP toegang.

Met behulp van   from="hun IP"   voor de pubkey in authorized_keys?



Groeten
Geert Stappers
-- 
Silence is hard to parse