La règle Netfilter / tc pour séparer le trafic SSH et SFTP?

2

Lorsque je me connecte à distance à mon serveur (RasPI 2 avec Raspbian), je souhaite que mes sessions SSH interactives soient toujours prioritaires sur toutes les sessions SFTP en cours d'exécution. De plus, les sessions SFTP devraient avoir une priorité inférieure à celle du trafic SMB, par exemple, sur le réseau local.

Le serveur est derrière un routeur dd-wrt, connecté à son tour à un modem câble avec une bande passante de liaison montante de 5 Mbps.

Je comprends que je devrais utiliser iptablespour marquer les paquets sortants dans différentes classes et tcles mettre dans différentes classes. Mais comment puis-je dire à iptables de discerner les paquets SSH à partir de paquets SFTP et de les marquer différemment? Dans le scénario ci-dessus, ils proviennent du même port, le nom du processus est identique ( sshd), l'utilisateur est identique et l'adresse IP de destination.

Le démon sshd utilise son serveur SFTP interne pour utiliser cette ChrootDirectoryfonctionnalité.

ris8_allo_zen0
la source

Réponses:

1

Non, ce n'est pas possible avec cette configuration. sftpest un sous-système de sshdet les sftpcommandes sont simplement encapsulées dans un sshprotocole, qui a pour processus serveur appelé, sftp-serverau lieu de bash, processus commun aux sessions ssh normales.

La possibilité serait d'exécuter une autre instance de sshdservice avec le sous-système sftp sur un port différent, que vous pouvez ensuite différencier simplement iptablespar port. Vous pouvez même créer un autre service sftp-onlyen définissant ForcedCommand /path/to/sftp-serverde ne pas accepter les sessions ssh normales.

Jakuje
la source