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

Предоставление SSH-доступа пользователю и вопросы безопасности

Хорошо, у меня есть VPS, и я создал учетную запись для друга, чтобы он мог размещать свои собственные домены (используя функции реселлера в DirectAdmin). Он запрашивает доступ по SSH, и я знаю, что это, вероятно, плохая идея. Есть ли у него доступ ко всему моему серверу, например, для выполнения команд, доступа к моим доменам, которые я размещаю на своем сервере? Я вошел в свой SSH, используя данные его учетной записи, и это позволило мне перемещаться по всем корневым папкам / файлам, а его учетная запись находится в / home / AccountName /.

Есть ли способ ограничить его доступ только к его папке? А какие команды он может использовать?

Изменить: может ли он устанавливать программы и многое другое на моем сервере?

Как обычный пользователь, ваш друг не сможет причинить слишком много вреда вашему серверу (конечно, он может спровоцировать вилочную бомбу или заполнить ваш диск, но если они действительно друг, они, вероятно, не будут тянуть член как это). Мои друзья получают настоящие оболочки для входа на мою машину, если они просят учетную запись, и строгую лекцию о том, что, если они сделают что-нибудь, что меня бесит, они будут загружены с машины.

Похоже, вы не очень доверяете своему «другу», поэтому в дополнение к ответу Ладьи я также скажу, что полудуплексный человек со способностью запускать PHP-скрипт может быть почти так же опасен, как и пользователь с неограниченным доступом. (возможность входа в систему) SSH-доступ, и я предполагаю, что ваш сервер поддерживает PHP. Помните, что пользователь может запускать ненадежный код через PHP, включая загрузку, компиляцию и запуск других произвольных программ в вашей системе (хотя и в рамках ограничений привилегий пользователя веб-сервера). Вообще говоря, если вы не используете chroot / jailing для своего веб-сервера, что-то, что ваш друг мог видеть с помощью своей оболочки входа, он может увидеть с помощью некоторых не очень креативных сценариев PHP.

Итог: предоставление кому-то учетной записи в вашей системе, а затем блокировка его оболочки в / etc / passwd и установка параметра chroot SFTP помогает, но вы действительно должны учитывать последствия для безопасности любой доступ и уровень вашего доверия к этому человеку.

Предоставление кому-либо доступа по FTP - одна из худших вещей, которые вы можете сделать с точки зрения безопасности сети. Черви будут прослушивать сетевой трафик в поисках ftp и использовать его для распространения. Я лично очистил несколько сайтов, которые были заражены подобным образом.

Вы можете отключить доступ оболочки к учетной записи пользователя в / etc / passwd, в этом случае ssh используется только для SFTP. Вы также можете установить ChrootDirectory в вашем файле sshd_config, чтобы запретить пользователю доступ к файлам за пределами дерева каталогов по вашему выбору. ChrootDirectory не нужен, вы должен использовать встроенный в Linux контроль доступа к файлам. Например, если файл не принадлежит пользователю, а глобальные привилегии были удалены, этот пользователь не сможет получить доступ к файлу. Используйте chmod 700 вместо 777. Последний номер - это глобальные привилегии, а 7 дает всем пользователям полный доступ к этому файлу. chown user:group filename используется для смены пользователя / группы, владеющей файлом.

Если вы беспокоитесь, вы можете создать для него среду chroot с доступом только к нужным ему инструментам и файлам.

SSH, FTP и т. Д. ТРЕБУЕТСЯ доступ к остальным файлам, так как они запускают команды из каталогов bin для вывода списка файлов и т. Д. Некоторые серверы FTP / SSH поддерживают chroot для предоставления доступа только к нужным файлам или даже полностью подделывают доступ.

Вы можете (и должны) защитить свои домашние каталоги и заблокировать любые файлы веб-сайтов только для тех пользователей, которым они нужны. Вероятно, ваш сайт (-ы) должен быть заблокирован для владения yourname: www-data (в системах debian) или yourname: apache (в системах redhat), в то время как его будут заблокированы для владения hisname: www-data или hisname: apache ( таким же образом). Домашний каталог и каталог веб-сайта. Тогда разрешения должны быть o = rwx, g = rx, o = файлы будут одинаковыми без x. Установите g + w и g + x, если необходимо, чтобы определенные веб-приложения обновляли свои файлы. В частности, для каталогов загрузки, временных каталогов и кеша на сайтах часто требуются разрешения g + w.

Запустите man chmod и man chown на своем сервере и прочтите, если вы не уверены, что все это означает.

Кроме того, подумайте о том, чтобы запустить что-то вроде plesk / webmin на своем сервере, чтобы упростить управление (не очень хорошо, но, возможно, лучше, если вы новичок во всем этом). Или изучите другие варианты посредников, которые лучше блокируют работу, чтобы вам не приходилось делать это.