Как я могу ограничить ssh *удаленный* перенаправление портов?

rsync делает сравнение контрольной суммы прежде, чем скопировать (в некоторых случаях), постараться не копировать то, что уже там. Точка сравнения контрольной суммы не должна проверять, что копия была успешна. Это - задание базовой инфраструктуры: драйверы файловой системы, дисковые драйверы, сетевые драйверы, и т.д. Отдельные приложения такой как rsync не должны беспокоиться этим безумием. Все rsync потребности сделать (и делает!) должен проверить возвращаемые значения системных вызовов, чтобы удостовериться, что не было никакой ошибки.

22
22.12.2016, 21:57
4 ответа

Это реализовано в OpenSSH 7.8p1, выпущенном в 2018 г. -08 -24. Цитата из примечаний к выпуску:

add a PermitListen directive to sshd_config(5) and a corresponding permitlisten= authorized_keys option that control which listen addresses and port numbers may be used by remote forwarding (ssh -R...).

4
27.01.2020, 19:43

Существует опция no-port-forwarding то, что можно использовать, который предотвращает все перенаправление портов. Существующий, по крайней мере, с OpenSSH 4.3p2 (CentOS 5.3 - самая старая машина у меня есть доступ к). Поместите его в то же место, которое Вы поместили бы permitopen.

4
27.01.2020, 19:43
  • 1
    Полностью отключение перенаправления портов кажется излишеством и не подходящее для вопроса. Я предполагаю, что OP хочет ограничить его, все же позволяя некоторые определенные передачи удаленного порта. –  gertvdijk 28.12.2012, 16:35
  • 2
    Да, я должен позволить некоторую передачу портов –  Lluís 28.12.2012, 18:59

Дубликат: https://superuser.com/questions/516417/how-to-restrict-ssh-port-forwarding-without-denying-it

Похоже, вы можете использовать следующее?

В конфигурационном файле сервера есть опция PermitOpen. Эта опция может быть использована для указания хостов и портов, для которых могут быть установлены переадресации. Эта опция может быть использована внутри блока Match, поэтому ее можно ограничить по пользователю, группе, имени хоста или IP-адресу.

Редактировать:

PermitOpen host:port

PermitOpen IPv4_addr:port

PermitOpen [IPv6_addr]:port

-1
27.01.2020, 19:43

Невозможно ограничить это с помощью ssh. Возможно, для этого можно использовать selinux или iptables. Тем не менее, существует альтернативная стратегия, которая может соответствовать или не соответствовать вашим потребностям. Используйте привязку к сокетам UNIX. Это должно быть доступно, начиная с версии openssh 6.8.

При использовании сокетов у вас есть ACL файловой системы (, хотя сокеты учитывают, что они могут *зависеть от nix ), и вы можете использовать его, чтобы предотвратить привязку одного пользователя к другому сокету. Однако это никоим образом не предотвращает привязку к портам, поэтому в зависимости от вашего варианта использования это может не помочь, но, возможно, порты не имеют значения, если вы можете постоянно использовать только сокеты.

При обработке сокетов UNIX висячих файлов сокетов могут возникнуть проблемы, поскольку обратные издатели пытаются повторно подключиться. У меня есть еще вопрос (и ответ )на эту проблему. Короче говоря, вы, вероятно, также захотите использоватьStreamLocalBindUnlink yes:

Как очистить сокет обратного туннеля SSH после закрытия соединения?

0
27.01.2020, 19:43

Теги

Похожие вопросы