[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



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 2222: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/


Reply to: