Ubuntu запретить root ssh

Обновлено: 03.07.2024

Оригинал: 4 Ways to Disable Root Account in Linux
Автор: Aaron Kili
Дата публикации: 19 октября 2018 года
Перевод: А. Кривошей
Дата перевода: июль 2019 г.

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

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

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

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

Внимание: Прежде чем заблокировать доступ к учетной записи root, убедитесь, что вы создали административную учетную запись, способную использовать команду sudo для получения привилегий пользователя root, с помощью команды useradd, и задайте для этой учетной записи надежный пароль. Флаг -m означает создание домашнего каталога пользователя, а -c позволяет указать комментарий:

Затем добавьте этого пользователя в соответствующую группу системных администраторов с помощью команды usermod, где ключ -a означает добавление учетной записи пользователя, а -G указывает группу, в которую нужно добавить пользователя (wheel или sudo в зависимости от вашего дистрибутива Linux):

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

1. Изменение командной оболочки пользователя root

Самый простой способ отключить вход в систему для пользователя root - это изменить его оболочку с /bin/bash (или любой другой оболочки, разрешающей вход пользователя) на /sbin/nologin в файле /etc/passwd, который вы можете открыть для редактирования, используя любой из ваших любимых текстовых редакторов, как показано ниже.

редактирование файла /etc/passwd

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

Этот метод эффективен только для программ, которым требуется оболочка для входа пользователя, в противном случае клиенты sudo, ftp и email могут получить доступ к учетной записи root.

2. Отключение авторизации root с устройства консоли (TTY)

Во втором методе используется модуль PAM с именем pam_securetty, который разрешает root-доступ, только если пользователь входит в «защищенный» TTY, как определено в листинге в /etc/securetty.

Приведенный выше файл позволяет вам указать, на каких устройствах TTY разрешен вход в систему пользователю root, очистка этого файла предотвращает вход в систему root на всех устройствах, подключенных к системе.

Чтобы создать пустой файл, выполните:

Этот метод имеет некоторые ограничения, он затрагивает только такие программы, как вход в систему, менеджеры дисплеев (например, gdm, kdm и xdm) и другие сетевые службы, которые запускают TTY. Такие программы, как su, sudo, ssh и другие связанные утилиты openssh будут иметь доступ к учетной записи root.

3. Отключение доступа к Root по SSH

Самый распространенный способ доступа к удаленным серверам или VPS - через SSH, и для блокировки входа пользователя root под ним необходимо отредактировать файл /etc /ssh /sshd_config.

Затем раскомментируйте (если это закомментировано) директиву PermitRootLogin и установите для нее значение no, как показано на скриншоте.

раскомментирование директивы PermitRootLogin

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

Как вы, возможно, уже знаете, этот метод влияет только на набор инструментов openssh, такие программы, как ssh, scp, sftp, будут заблокированы от доступа к учетной записи root.

4. Ограничение доступа root к службам с помощью PAM

Pluggable Authentication Modules (сокращенно PAM) - это централизованный, подключаемый, модульный и гибкий метод аутентификации в системах Linux. PAM через модуль /lib/security/pam_listfile.so обеспечивает большую гибкость в ограничении привилегий определенных учетных записей.

Вышеупомянутый модуль может использоваться для ссылки на список пользователей, которым не разрешено входить через некоторые целевые сервисы, такие как login, ssh и любые программы, поддерживающие PAM.

В этом случае мы хотим отключить доступ пользователя root к системе, ограничив доступ к службам входа и sshd. Сначала откройте и отредактируйте файл для целевой службы в каталоге /etc/pam.d/, как показано ниже.

Затем добавьте приведенную ниже конфигурацию в один из этих файлов (или в оба).

Когда вы закончите, сохраните и закройте каждый файл. Затем создайте простой файл /etc/ssh/deniedusers, который должен содержать по одному элементу в строке и не должен читаться всеми.

Добавьте в него имя root, затем сохраните и закройте его.

Также установите необходимые разрешения на это.

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

Для получения дополнительной информации обратитесь к соответствующим справочным страницам.


Это краткое руководство проведет вас через шаги, чтобы разрешить или запретить 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.


Мануал

Учетная запись root является конечной учетной записью в Linux и других Unix-подобных операционных системах.

Эта учетная запись имеет доступ ко всем командам и файлам в системе с полными разрешениями на чтение, запись и выполнение.

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

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

В этом отношении любые ошибки пользователя root могут иметь серьезные последствия для нормальной работы системы.

Кроме того, этой учетной записью можно также злоупотреблять, используя ее ненадлежащим образом либо случайно, либо злонамеренно, либо путем незнания политик безопасности.

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

В этой статье мы объясним четыре способа отключения учетной записи пользователя root в Linux.

Внимание. Прежде чем блокировать доступ к учетной записи root, убедитесь, что вы создали админскую учетную запись, способную использовать команду sudo для получения привилегий пользователя root, с помощью команды useradd и предоставить этой учетной записи надежный пароль. Флаг -m означает создание домашнего каталога пользователя, а -c позволяет указать комментарий:

Затем добавьте этого пользователя в соответствующую группу системных администраторов, используя команду usermod, где ключ -a означает добавление учетной записи пользователя, а -G указывает группу для добавления пользователя в (колесо или sudo в зависимости от вашего дистрибутива Linux):

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

1. Изменение оболочки пользователя root

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

Этот метод эффективен только для программ, для которых требуется учетная запись пользователя для входа в систему, иначе sudo, ftp и почтовые клиенты смогут получить доступ к учетной записи root.

2. Отключить root через консольное устройство (TTY)

Второй метод использует модуль PAM, называемый pam_securetty, который разрешает root-доступ только в том случае, если пользователь регистрируется в «защищенном» TTY, как определено в списке в /etc/securetty.

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

Чтобы создать пустой файл, запустите

Этот метод имеет некоторые ограничения, он влияет только на такие программы, как логин, диспетчеры отображения (например, gdm, kdm и xdm) и другие сетевые службы, запускающие TTY.

Такие программы, как su, sudo, ssh и другие связанные с ними средства openssh, будут иметь доступ к учетной записи root.

3. Отключить вход root по SSH

Затем раскомментируйте (если она закомментирован) директиву PermitRootLogin и установите ее значение равным no, как показано на скриншоте.

Как только вы закончите, сохраните и закройте файл.

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

Как вы уже знаете, этот метод влияет только на набор инструментов openssh, такие программы, как ssh, scp, sftp, будут заблокированы для доступа к учетной записи root.

4. Ограничение доступа root к службам через PAM

PAM через модуль /lib/security/pam_listfile.so обеспечивает большую гибкость в ограничении привилегий конкретных учетных записей.

Вышеупомянутый модуль может использоваться для ссылки на список пользователей, которым не разрешено входить в систему через некоторые целевые службы, такие как login, ssh и любые программы, поддерживающие PAM.

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

Сначала откройте и отредактируйте файл для целевой службы в каталоге /etc/pam.d/, как показано ниже:

Затем добавьте конфигурацию ниже в оба файла.

Когда все будет готово, сохраните и закройте каждый файл. Затем создайте простой файл / etc / ssh / deniedusers, который должен содержать один элемент на строку, а не читаемый в мире.

Добавьте в него имя root, затем сохраните и закройте его.

Также установите необходимые разрешения для этого файла.

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

Вы можете заблокировать доступ root к системе через ftp и почтовые клиенты и многое другое.

Для получения дополнительной информации обратитесь к соответствующим страницам руководства.

Базовая защита от взлома вашего 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-сервер в Ubuntu 20.04 от базового до расширенного

Как изменить стандартный порт SSH в Linux (правильно и безопасно)

К ак и все другие серверы, SSH-сервер также подвержен попыткам несанкционированного доступа. Поэтому всякий раз, когда вы хотите использовать SSH-сервер, вы должны сначала подумать о его защите, чтобы спастись от любых нежелательных ситуаций в долгосрочной перспективе. Обычно термин «защита сервера» также известен как «усиление защиты сервера». Это можно сделать, приняв несколько мер. Эти меры зависят от требуемого уровня безопасности.

Меры защиты SSH-сервера варьируются от базовых до расширенных, и, как мы уже говорили ранее, вы можете выбрать их в соответствии с нужным вам уровнем безопасности. Вы можете пропустить любую из предписанных мер, если у вас есть достаточные знания о последствиях и если вы в состоянии противостоять им. Кроме того, мы никогда не можем сказать, что один шаг обеспечит 100% безопасность или что один шаг лучше другого.

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

Метод защиты SSH-сервера в Ubuntu 20.04:

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

Если эта команда выполнена успешно, вы не увидите никаких результатов.

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

Теперь вы можете начать защищать свой SSH-сервер, переходя от основных шагов к расширенным в Ubuntu 20.04.

Основные шаги для защиты SSH-сервера в Ubuntu 20.04:

Основные шаги по защите SSH-сервера в Ubuntu 20.04 следующие:

Шаг № 1: Открытие файла конфигурации SSH:

Вы можете открыть файл конфигурации SSH, выполнив в терминале команду, указанную ниже:

Шаг № 2: Отключение аутентификации на основе пароля:

Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Вместо использования паролей для аутентификации ключи SSH считаются более безопасными. Поэтому, если вы сгенерировали ключи SSH для аутентификации, вы должны отключить аутентификацию на основе пароля. Для этого вам нужно найти переменную PasswordAuthentication, раскомментировать ее и установить для нее значение «нет», как показано на изображении, показанном ниже:

Шаг № 3: Отклонение пустых паролей:

Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Иногда пользователям очень удобно создавать пустые пароли, чтобы не запоминать сложные пароли. Такая практика может нанести ущерб безопасности вашего SSH-сервера. Следовательно, вам необходимо отклонить все попытки аутентификации с пустыми паролями. Для этого вам нужно найти переменную PermitEmptyPasswords и просто раскомментировать ее, поскольку по умолчанию для нее уже установлено значение «нет», как показано на следующем изображении:

Шаг № 4: Запрет входа в систему с правами root:

Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Вы должны строго запретить вход в систему с правами root для защиты любого злоумышленника от получения доступа root к вашему серверу. Вы можете сделать это, найдя переменную PermitRootLogin, раскомментируя ее и установив для нее значение «no», как показано на изображении ниже:

Шаг № 5: Использование протокола SSH 2:

Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Сервер SSH может работать с двумя разными протоколами, т. е. Протоколом 1 и протоколом 2. Протокол 2 реализует более продвинутые функции безопасности, поэтому он предпочтительнее протокола 1. Однако протокол 1 является протоколом SSH по умолчанию, а не протоколом. явно упоминается в файле конфигурации SSH. Поэтому, если вы хотите работать с протоколом 2 вместо протокола 1, вам необходимо явно добавить строку «Protocol 2» в файл конфигурации SSH, как показано на следующем изображении:

Шаг № 6: Установка тайм-аута сеанса:

Иногда пользователи оставляют свои компьютеры без присмотра на очень долгое время. Между тем, любой злоумышленник может подойти и получить доступ к вашей системе, нарушив ее безопасность. Здесь в игру вступает концепция тайм-аута сеанса. Эта функция используется для выхода пользователя из системы, если он остается неактивным в течение длительного времени, чтобы ни один другой пользователь не мог получить доступ к его системе.

Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Этот тайм-аут можно установить, найдя переменную ClientAliveInterval, раскомментируя ее и присвоив ей любое значение (в секундах) по вашему выбору. В нашем случае мы присвоили ему значение «300 секунд» или «5 минут». Это означает, что если пользователь находится вдали от SSH-сервера в течение «300 секунд», он автоматически выйдет из системы, как показано на изображении ниже:

Читать Удалить cтроку запроса Google Adwords gclid в Nginx

Шаг № 7: Разрешение определенным пользователям доступа к SSH-серверу:

Шаг № 8: Ограничение количества попыток аутентификации:

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

Как защитить SSH-сервер в Ubuntu 20.04 от базового до расширенного

Вот почему настоятельно рекомендуется ограничить количество попыток аутентификации, чтобы предотвратить атаки подбора пароля. Значение по умолчанию для попыток аутентификации на сервере SSH установлено на «6». Однако вы можете изменить его в зависимости от требуемого уровня безопасности. Для этого вам нужно найти переменные «MaxAuthTries», раскомментировать их и установить для них любое желаемое число. Мы хотели ограничить количество попыток аутентификации числом «3», как показано на изображении ниже:

Шаг № 9: Запуск SSH-сервера в тестовом режиме:

К настоящему времени мы предприняли все основные шаги для защиты нашего SSH-сервера в Ubuntu 20.04. Однако нам по-прежнему необходимо убедиться, что только что настроенные параметры работают правильно. Для этого мы сначала сохраним и закроем наш файл конфигурации. После этого мы попробуем запустить наш SSH-сервер в тестовом режиме. Если он успешно работает в тестовом режиме, это будет означать, что в вашем файле конфигурации нет ошибок. Вы можете запустить свой SSH-сервер в тестовом режиме, выполнив следующую команду в своем терминале:

Шаг № 10: Перезагрузка SSH-сервера с новыми конфигурациями:

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

Если ваш SSH-сервер перезапущен успешно, терминал не будет отображать никаких выходных данных.

Расширенные действия по защите SSH-сервера в Ubuntu 20.04:

После выполнения всех основных шагов по защите SSH-сервера в Ubuntu 20.04 вы, наконец, можете перейти к расширенным шагам. Это всего лишь шаг вперед к защите вашего SSH-сервера. Однако, если вы намереваетесь достичь умеренного уровня безопасности, описанных выше шагов будет достаточно. Но если вы хотите пойти немного дальше, вы можете выполнить шаги, описанные ниже:

Шаг №1: Открытие файла

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

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

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

Шаг № 2: Определение конкретных конфигураций для определенных ключей:

Для достижения повышенного уровня безопасности доступны следующие пять опций:

  • no-agent-forwarding
  • no-port-forwarding
  • no-pty
  • no-user-rc
  • no-X11-forwarding

Эти параметры можно записать перед любым ключом SSH по вашему выбору, чтобы сделать их доступными для этого конкретного ключа. Для одного ключа SSH можно настроить даже несколько параметров. Например, вы хотите отключить переадресацию портов для любого конкретного ключа или, другими словами, вы хотите реализовать переадресацию без переадресации портов для определенного ключа, тогда синтаксис будет следующим:

Здесь вместо DesiredSSHKey у вас будет фактический SSH-ключ в вашем файле

/.ssh/authorized_keys. После применения этих параметров для желаемых ключей SSH вам необходимо сохранить файл

/.ssh/authorized_keys и закрыть его. Этот расширенный метод хорош тем, что вам не потребуется перезагружать SSH-сервер после внесения этих изменений. Скорее, эти изменения будут автоматически прочитаны вашим SSH-сервером.

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

Некоторые дополнительные советы по защите SSH-сервера в Ubuntu 20.04:

Помимо всех основных и дополнительных шагов, которые мы предприняли выше, есть также несколько дополнительных советов, которые могут оказаться очень полезными для защиты SSH-сервера в Ubuntu 20.04. Эти дополнительные советы обсуждаются ниже:

Держите свои данные в зашифрованном виде:

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

Держите свое программное обеспечение в актуальном состоянии:

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

Убедитесь, что SELinux включен:

Используйте строгие политики паролей:

Если вы защитили свой SSH-сервер паролями, вы должны создать надежные политики паролей. В идеале пароли должны быть длиннее 8 символов. Их нужно менять через определенное время, скажем, каждые 2 месяца. Они не должны содержать словарных слов; скорее, они должны быть комбинацией алфавитов, цифр и специальных символов. Точно так же вы можете определить некоторые другие дополнительные строгие меры для своих политик паролей, чтобы убедиться, что они достаточно надежны.

Мониторинг и ведение журналов аудита вашего SSH-сервера:

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

Регулярно создавайте резервные копии ваших данных:

И последнее, но не менее важное: вы всегда должны хранить резервную копию всего вашего SSH-сервера. Это не только спасет ваши данные от повреждения или полной потери; скорее, вы также можете использовать этот резервный сервер, когда ваш основной сервер выходит из строя. Это также ограничит время простоя сервера и обеспечит его доступность.

Заключение:

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

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