Linux запретить подключение по ssh

Обновлено: 07.07.2024

В этом руководстве мы рассмотрим, как разрешить или запретить доступ SSH к определенному пользователю или группе в Linux

Файл конфигурации OpenSSH по умолчанию имеет две директивы для разрешения и запрета доступа SSH к определенному пользователю (пользователям) или группе.

Во-первых, мы увидим, как разрешить SSH-доступ для определенного пользователя, например sk.

Обратите внимание, что все команды должны выполняться как пользователь root.

Разрешить SSH Доступ пользователю или группе

Перейдите на ваш удаленный сервер и отредактируйте файл sshd_config:

$ sudo vi /etc/ssh/sshd_config

Добавьте или отредактируйте следующую строку:

Замените «sk» на свое имя пользователя.

Вы также можете указать несколько пользователей, как показано ниже.

AllowUsers sk itsecforu

Чтобы разрешить целую группу, скажем, например, root, добавьте / отредактируйте следующую строку:

Те, кто входит в группу, могут передавать ssh на удаленный сервер.

Сохраните и закройте конфигурационный файл SSH.

Перезапустите службу SSH, чтобы изменения вступили в силу.

$ sudo systemctl restart sshd

Теперь пользователям sk, itsecfor или всем пользователям под группой «root» разрешено ssh на ваш удаленный сервер. Другие пользователи (кроме sk, itsecforu и пользователи «root») не могут.

Теперь давайте рассмотрим, как запретить / отключить доступ ssh определенному пользователю или группе.

Запретить SSH Доступ пользователю или группе

Чтобы отключить или запретить доступ SSH к любому пользователю или группе, вам необходимо добавить / изменить следующие директивы в файле sshd_config вашего удаленного сервера.

Чтобы запретить доступ SSH к определенному пользователю с именем «sk», отредактируйте файл sshd_config:

Добавьте / отредактируйте следующую строку в файле sshd_config.

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

DenyUsers sk itsecforu

Чтобы запретить доступ SSH ко всей группе, например root, добавьте:

Сохраните и закройте файл конфигурации ssh.

Перезапустите службу ssh, чтобы внести изменения.

$ sudo systemctl restart sshd

если вы пытаетесь использовать ssh для сервера с использованием запрещенных пользователей, например sk:

Что еще более важно, вы также должны отключить вход пользователя root.

Доступ root по ssh считается плохой практикой с точки зрения безопасности.

Чтобы отключить root ssh login, отредактируйте файл sshd_config:

Найдите следующую строку, Раскомментируйте ее и установите значение равным no.


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

В конфигурационном файле openSSH по умолчанию есть две директивы для разрешения и запрета доступа по SSH определенным пользователям или группе. Во-первых, давайте посмотрим, как разрешить или включить SSH-доступ для пользователя и группы. Обратите внимание, что все приведенные ниже команды должны запускаться от имени пользователя root или sudo.

1. Разрешить SSH-доступ пользователю или группе

Чтобы разрешить доступ по SSH для определенного пользователя, например sk, отредактируйте файл sshd_config:

Нажмите «i», чтобы войти в режим вставки и добавить или изменить следующую строку:


Вы также можете указать более одного пользователя, как показано ниже.

Чтобы разрешить всю группу, например, root , добавьте/отредактируйте следующую строку:

Этот параметр позволит всем членам «корневой» группы подключаться к серверу Linux по ssh.

Нажмите клавишу ESC, чтобы выйти из режима вставки, и введите : wq, чтобы сохранить и выйти из файла конфигурации SSH. Перезапустите службу SSH, чтобы изменения вступили в силу.

Теперь пользователю sk и всем членам «корневой» группы разрешено подключаться к вашему Linux-серверу по ssh. Остальные пользователи (кроме sk и членов группы «root») не имеют доступа к системе через ssh.

Чтобы проверить это, попробуйте подключиться к серверу Linux по ssh от имени любого из запрещенных пользователей:


2. Запретить доступ по SSH пользователю или группе

Чтобы отключить или запретить доступ по SSH для пользователя или группы, вам необходимо добавить/изменить следующие директивы в файле sshd_config вашего удаленного сервера.

Чтобы запретить доступ по SSH конкретному пользователю с именем «sk», отредактируйте файл sshd_config:

Добавьте/отредактируйте следующую строку в файле sshd_config.

Убедитесь, что отступы правильные. Не используйте клавишу пробела. Нажмите клавишу Tab и добавьте имя пользователя.

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

Аналогичным образом, чтобы запретить доступ по SSH для всей группы, например root , добавьте:

Сохраните и выйдите из файла конфигурации ssh. Перезапустите службу ssh, чтобы изменения вступили в силу.

Теперь попробуйте ssh на свой Linux-компьютер из заблокированной учетной записи пользователя, например sk:

3. Отключить вход в систему через SSH-root

Доступ с root-доступом по ssh считается плохой практикой с точки зрения безопасности . Поэтому настоятельно рекомендуется отключить вход в систему SSH Root для защиты вашей системы.

Чтобы отключить вход в систему root ssh, отредактируйте файл sshd_config:

Найдите следующую строку, раскомментируйте ее и установите значение no .

Перезапустите службу SSH, чтобы изменения вступили в силу немедленно:

Теперь вы знаете, как предоставлять и ограничивать доступ по SSH для определенных пользователей или групп в Linux. Вы также узнали, как запретить или отключить вход root по SSH в Linux. Это одна из рекомендуемых мер безопасности, которую должен применять каждый администратор Linux при настройке сервера Linux.

Базовая защита от взлома вашего linux сервера. Запрет входа для root пользователя, смена стандартного порта и другие способы защиты.

Гайд по защите Linux сервера от взлома

Каюсь, давным-давно я был молод и силен входил на сервер с помощью root пользователя. Времена меняются, паранойя растет, так что разберемся как не дать школьнику доступ к нашему серверу.

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

Как только все заработает, вы можете безопасно закрывать любые сеансы.

Cтатья не является “рецептом”, в котором надо выполнить все пункты. Некоторые пункты не нужны, если вы выполнили другие. Поэтому выберете только необходимые вам. Я же придерживаюсь следующего рецепта.

Устанавливайте обновления

Эффективность: 🛡️ 🛡️ 🛡️

Самое простое что вы можете сделать, и я заклинаю вас это делать – обновляйте систему. Своевременное обновление защитит вас от больнитсва известных уязвимостей.

Для CentOS команда на обновление выглядит так

Замена стандартного порта SSH

Эффективность: 🛡️ 🛡️

Один из самых простых способов защититься от неумелых атакующих и тупых ботов – это изменение дефолтного порта подключения по SSH. Большинство ботов сканируют только дефолтный порт, сменив его вы защититесь от ботов работающих на дурака.

Перед сменой порта разберитесь, какой firewall стоит на вашей системе. Например на CentOS 8 это скорее всего firewalld.

Вам необходимо открыть новый порт для ssh, и закрыть старый. Например, если у вас установлен firewalld, а порт вы выбрали 58291, то команды для открытия порта будут такие:

Для изменения порта нужно отредактировать файл /etc/ssh/sshd_config . В этой статье мы будем часто этим заниматься. Всякий раз, когда вам нужно отредактировать этот файл, используйте следующую команду:

После этого необходимо перезапустить службу ssh:

Для входа с использованием нового порта используйте следующий флаг:

Config SSH

Чтобы не запоминать порты ко всем своим серверам, можно воспользоваться файлом

.ssh/config . Создайте этот файл, если его нет на вашей локальной машине.


Пример .ssh/config

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

🔐 Используйте SSH ключ вместо пароля

Эффективность: 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️

Сервер OpenSSH поддерживает различную аутентификацию. Пароли можно угадывать, взламывать или подбирать методом перебора. Ключи SSH не подвержены таким атакам.

Когда вы генерируете ключи SSH, вы создаете пару ключей. Один из них - открытый ключ, другой - закрытый. Открытый ключ устанавливается на серверах, к которым вы хотите подключиться. Закрытый ключ, хранится в безопасности на вашем компьютере.


Схематичный процесс авторизации по SSH ключу

Создание ssh ключей

И так, генерация ключей ssh выполняется командой:

Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке

/.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.

Затем утилита предложит ввести пароль для дополнительного шифрования ключа на диске. Его можно не указывать, если не хотите.

Теперь у вас есть открытый и закрытый ключи SSH и вы можете использовать их для проверки подлинности. Дальше нам осталось разместить открытый ключ на удаленном сервере.

Никогда и никому не передавайте свой закрытый ключ.

Загрузка ключа на сервер

Самый простой способ скопировать ключ на удаленный сервер - это использовать утилиту ssh-copy-id . Она входит в пакет программ OpenSSH. Но для работы этого метода вам нужно иметь пароль доступа к серверу по SSH.

Если вы хотите указать путь до публичного ключа, используйте команду:

При первом подключении к серверу система может его не распознать, поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу, а затем использует содержимое ключа id_rsa.pub для загрузки его на сервер в файл

/.ssh/authorizedkeys. Дальше вы можете выполнять аутентификацию с помощью этого ключа.

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

/.ssh , а затем поместим наш ключ в файл authorized_keys с помощью символа >> , это позволит не перезаписывать существующие ключи:

Здесь вам тоже нужно набрать yes, если вы подключаетесь к новому серверу, а затем ввести пароль.

Также необходимо убедиться, что имеется возможность входа по ssh ключу. Для этого в файле /etc/ssh/sshd_config должна присутствовать строка PubkeyAuthentication yes .

После этого вы можете использовать созданный ключ для аутентификации на сервере:

Если вы не захотели создать ssh ключ с доступом по паролю, то вы сразу же будете авторизованы, что очень удобно. Иначе, сначала вам придется ввести фразу-пароль для расшифровки ключа.

🙅‍♂️ Запрет авторизации по паролю

Эффективность: 🛡️ 🛡️ 🛡️ 🛡️ 🛡️

Логическим продолжением использования ключей SSH является полное отключение аутентификации по паролю для всех пользователей.

Прежде чем запрещать вход по паролю, проверьте возможность входа по ssh ключу.

Нам нужно отредактировать ваш файл конфигурации SSH.

Находим строчку PasswordAuthentication yes и меняем ее на PasswordAuthentication no .

Теперь сохраните файл и перезапустите службу ssh:

Создание нового пользователя

Эффективность: 🛡️ 🛡️ 🛡️

Это плохая практика - входить в систему как root на вашем сервере. Вы должны войти в систему как обычный пользователь и использовать sudo для выполнения действий, требующих привилегий root.

Root«Root» — это учётная запись, которая имеет доступ ко всем без исключения действиям. Да, вообще ко всем.

Более того, вы не должны позволять root входить в ваш SSH-сервер. Подключение должно быть разрешено только обычным пользователям. Если им нужно выполнить административную задачу, им также следует использовать sudo.

Добавим нового пользователя, на замену root.

Если вас не попросили придумать пароль для пользователя, то установите его вручную.

Я предполагаю, что мы заблокируем root пользователя, поэтому после этого добавим пользователя в группу sudo:

На некоторых ОС эта гурппа называется wheel.

Для каждого пользователя sudo можно задать ограничения: разрешить запускать только определенные команды от имени супер пользователя.

🙅‍♂️ Запрет доступа root на сервер

Эффективность: 🛡️ 🛡️ 🛡️ 🛡️ 🛡️

Самый лучший вариант – это когда у root пользователя нет возможности войти на сервер.

Если вы вынуждены разрешить пользователю root вход в систему, вы можете хотя бы заставить его использовать ключи SSH.

Открываем текстовый файл в любом редакторе:

Нас интересует параметр PermitRootLogin :

  • Если вы хотите вообще запретить пользователю root вход в систему, установите PermitRootLogin no .
  • Если вы собираетесь разрешить пользователю root входить в систему, но хотите использовать только SSH-ключи, установите PermitRootLogin prohibit-password .

После внесения вышеуказанных изменений сохраните и закройте файл. Затем перезапустите службу SSH, чтобы внесенные изменения вступили в силу.

Favorite

Добавить в избранное

Главное меню » Linux » Как отключить вход по SSH с паролем

Как настроить SSH ключи в Debian 10

О дним из основных шагов по усилению SSH является отключение входа по SSH на основе пароля.

Вы знаете, что вы можете использовать ssh с паролем root или другой учетной записи для удаленного входа на сервер Linux.

Но это создает угрозу безопасности, потому что огромное количество ботов всегда пытаются войти в вашу систему со случайными паролями. Это называется атакой грубой силы.

Вы мне не верите? Вы можете проверить логин на вашем сервере Linux. Вы будете удивлены, увидев так много неудачных попыток на вашем сервере.

Таким образом, только те системы, чьи открытые ssh-ключи добавлены на сервер (так называемая аутентификация на основе ключей), смогут подключаться к серверу. Читайте о настройке конфигурации SSH.

Отключить аутентификацию по паролю SSH

Прежде чем сделать это, вы должны помнить следующее:

  • Обязательно создайте пару ключей ssh на своем персональном/рабочем компьютере и добавьте этот открытый ключ SSH на сервер, чтобы по крайней мере вы могли войти на сервер.
  • Отключение аутентификации на основе пароля означает, что вы не можете подключиться к серверу ssh со случайных компьютеров.
  • Вы не должны терять свои ключи SSH. Если вы отформатируете свой персональный компьютер и потеряете ssh-ключи, вы никогда не сможете получить доступ к серверу.
  • Если вы заблокированы, вы никогда не сможете получить доступ к вашему серверу.

Некоторые поставщики облачных серверов предоставляют VNC-консоль, которая может вам помочь.

Отключайте аутентификацию SSH на основе пароля только в том случае, если вы знакомы с SSH и другими концепциями системного администратора. Вы также должны знать, как использовать текстовый редактор на основе терминала, такой как Vim или Nano.

Ладно. Итак, теперь вы знаете риски, связанные с отключением входа по SSH с помощью пароля. Посмотрим, как это сделать.

Войдите в систему как root на ваш сервер Linux, используя аутентификацию на основе ключей. Используйте редактор, такой как Nano или Vim, для редактирования следующего файла:

Найдите следующую строку:

И измените его на:

Сохраните файл после внесения этих изменений и перезапустите службу SSH с помощью этой команды:

Вот и все. Вы успешно отключили аутентификацию на основе пароля в SSH.

Вопросы и предложения всегда приветствуются.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте также: