En fonction de la raison pour laquelle SSH est nécessaire, vous pourrez peut-être atteindre cet objectif (pour les fichiers non triviaux) en utilisant IPTables pour mettre fin aux sessions si la taille du paquet est supérieure à, disons 1400 octets. Cela signifie que ssh interactif fonctionnera principalement, mais dès que quelque chose essaie d'envoyer un scp de type paquet de 1500 octets pour un fichier plus grand que 1499 octets en supposant une MTU standard de 1500, il mettra fin à la connexion.
Cela empêchera également l'attaque de "catting" que vous mentionnez.
Malheureusement, cela signifie que vous pouvez avoir des problèmes pour modifier certains fichiers avec un éditeur de texte, si l'écran doit dessiner plus de 1400 caractères, ou si vous devez saisir un long fichier ou faire une longue liste de répertoires.
Dans le cas le plus simple, une commande pour ce faire pourrait ressembler à quelque chose comme
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff -j DROP
Nous pouvons améliorer ce fonctionnement en combinant les vérifications de la longueur des paquets avec ipt_recent, de sorte que vous autorisez un nombre limité de paquets supérieurs à 1400 octets dans un délai défini (disons 8 paquets par 5 secondes) - cela permettrait aux paquets jusqu'à 12 Ko de glisser à travers, mais peut vous donner l'interactivité dont vous aurez besoin pour éditer des fichiers, etc. Vous pouvez, bien sûr, modifier le nombre de paquets.
Cela pourrait ressembler à quelque chose
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff \
-m recent --name noscp --rdest --set
iptables -I OUTPUT -p tcp --dport 22 -m length --length 1400:0xffff \
-m recent --name noscp --rdest --update --seconds 5 --hitcount 8 \
-j REJECT --reject-with tcp-reset
Les exemples de règles ci-dessus protègent uniquement contre les téléchargements scp tels que scp myfile.data remote.host:~
. Pour vous protéger en outre contre les téléchargements scp tels que scp remote.host:~/myfile.data /local/path
, répétez les règles ci-dessus mais remplacez --dport
par --sport
.
Un pirate informatique peut contourner ces limitations en définissant un MTU inférieur à 1400 sur sa machine (ou forcer mtu ou similaire). De plus, bien que vous ne puissiez pas limiter cela à certains utilisateurs, vous pouvez le limiter par IP en modifiant les lignes iptables comme il convient !!
À la vôtre, David Go