Назад | Перейти на главную страницу

Может ли злоумышленник обойти принудительную команду ssh authorized_keys?

Используя Linux и Openssh:

Пользователь может подключиться с помощью ssh к серверу, на котором его ключ находится в списке authorized_keys. Его публичному ключу предшествует command="command..." который принудительно выполняет определенную команду (не оболочку):

command="/path/to/somescript...",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-user-rc ssh-rsa AAAff...................

Если разрешенный набор команд включает демон sftp (или internal-sftp), тогда SFTP будет разрешен. Однако, если вы устанавливаете принудительную команду в файле authorized_keys и у пользователя есть доступ к sftp, без дополнительной работы они могут заменить файл на файл, не ограниченный тем, что вы определяете. Это, конечно, будет работать с любым приложением, которому пользователь может дать указание изменить этот файл (намеренно или обманом). Лучшим вариантом может быть ограничение пользователем или группой в основном sshd_config, возможно, с помощью ChrootDirectory.

Самая распространенная угроза исходит от разрешения им использовать команду, способную делать то, о чем администратор не думал. Например, CVS и SVN позволяют запускать сценарии до и после фиксации. Если пользователь может изменить сценарий после фиксации, он может запускать свои собственные команды.

вы можете установить атрибут с помощью chattr в папке .ssh и файле authorized_keys после того, как вы внесли необходимые записи в файл authorized_keys, так что таким образом никто не сможет внести какие-либо изменения или даже перезаписать папку .ssh или даже authorized_keys файл.

вы можете сделать рекурсивный чат:

chattr -R +i .ssh