Comment enregistrer les transferts de port SSH?


8

Disons que j'ai un serveur SSH, avec la redirection de port activée. Il est assez simple pour un utilisateur de configurer une connexion SSH et de transmettre le trafic BitTorrent ou tout autre trafic illégal ou abusif par-dessus. Comment configurer la journalisation pour enregistrer le port que les utilisateurs transfèrent?


Pour tout niveau de sécurité raisonnable, vous devrez vous assurer que le même niveau de journalisation est disponible dans tous les autres programmes de votre système qui pourraient être utilisés pour transférer le trafic - y compris les programmes que les utilisateurs écrivent / compilent eux-mêmes.
Alex Holst

2
Si vous ne faites pas confiance à quelqu'un, il vaudrait certainement mieux ne pas simplement lui donner accès à votre réseau.
Zoredache du

@Zoredache Donc la réponse est de ne donner à personne accès à votre réseau?
rox0r

Réponses:



2

Je pose une question ici Comment un processus hôte SSH peut-il détecter les ports qui ont été transmis par le client (-R pas -L) pour trouver une manière plus élégante de faire la même chose.

Cependant, comme il ne semble pas y avoir de meilleure façon, je le fais avec lsof:

sudo lsof -aPni@127.0.0.1 -Fn -p99999 | grep "^n" | grep -v '\->' | awk -F: '{print $NF}' | sort | uniq

99999 est le PID de la sshdgestion de la connexion qui vous intéresse.

Il existe plusieurs façons d'utiliser cet extrait de code. Soit avoir un processus de longue durée qui surveille les nouvelles instances de sshdpuis les introspecte en utilisant la commande ci-dessus, ou vous préfixez toutes les .ssh/authorized_keysentrées avec une commande personnalisée qui fait cela, l'enregistre quelque part, puis execla commande prévue d'origine ( SSH_ORIGINAL_COMMANDou le shell de connexion dans la plupart des cas) cas).


0

vous pourriez essayer WireShark . Honnêtement, je ne sais pas s'il fera exactement ce que vous voulez, mais il peut certainement déterminer ce que les utilisateurs font sur le réseau. Spiceworks est une autre option gratuite


0

netstat, pset une coupe et une greping intelligentes. Netstat peut vous donner les ID de programme et ps peut vous donner l'utilisateur.

user@myhome:~$ ssh user@some.server -R 12345:other.server:22

en attendant de l'autre côté de la console

root@some.server# netstat -plnt | grep 12345
tcp        0      0 127.0.0.1:12345         0.0.0.0:*               LISTEN     12998/15            
tcp6       0      0 ::1:12345               :::*                    LISTEN     12998/15 
                                                                                 ^ PID!

Bien sûr, vous ne connaîtrez pas le port spécifié dans grep, grep il est là pour limiter ma sortie

et

ps -aux | grep 12998 # the PID
user   12998  0.0  0.1   6624  1920 ?        S    07:57   0:00 sshd: user@pts/15

et voilà! vous savez que l'utilisateur "utilisateur" redirige le port 12345 à l'aide de sshd

script & cron quelque chose en utilisant cela

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.