Как я могу установить приоритет трафика ssh, чтобы обеспечить малую задержку, но ограничить передачу файлов SCP? Я ищу решение, не зависящее от хоста, поэтому мне не нужно добавлять списки IP-адресов. Спасибо!
Большинство (по крайней мере, все? OpenSSH) реализации SSH устанавливают разные флаги IP TOS в зависимости от того, является ли сеанс интерактивным или является массовым. Он устанавливает флаг lowdelay TOS для интерактивных сеансов.
Затем вы можете сопоставить флаги TOS в вашем ACL.
Вы можете использовать длину пакета, чтобы отличить один от другого, но есть риск, что они будут разрезаны и смешаны транспортом SSH.
class-map match-all ssh-interactive
match access-group name ssh
match packet length max 600
class-map match-all ssh-files
match access-group name ssh
match packet length min 600
ip access-list extended ssh
permit tcp any any eq 22
permit tcp any eq 22 any
Точка отсечки произвольно выбрана из этого воздуха, вам нужно будет настроить и посмотреть, что работает для вас.
Что ж, я согласен с ErikA в отношении технических деталей, я (частично) не согласен с тем, что это невозможно. Вы можете запускать несколько демонов ssh на разных портах и устанавливать приоритеты на основе портов. Вот Сообщение блога о том, как это сделать.
Оттуда вам понадобятся разные учетные данные для каждого демона ssh (не знаете, как это сделать, но держу пари, что вы можете), если вы не доверяете своим пользователям выбор. Другой вариант - разрешить сеанс ssh только с определенных IP-адресов.
На самом деле это невозможно - оба работают с одним и тем же портом, и оба инкапсулируют свой трафик в зашифрованный (и, возможно, сжатый) поток. Там может быть способом для системы DPI сделать предположение о том, какой поток является «стандартным» сеансом ssh терминала, а какой - сеансом SCP, но это было бы в лучшем случае безумным предположением.