permitrootlogin prohibit password что значит
Permitrootlogin prohibit password что значит
По умолчанию в Linux Debian для суперпользователя root подключение к серверу по SSH не разрешен.
Если попробовать авторизоваться рутом, то, скорее всего, отобразится сообщение, что доступ не разрешен:
Запрет подключения к серверу по SSH пользователю root обусловлен требованием безопасности, но иногда все-таки нужно поработать именно рутом, для этого можно ВРЕМЕННО разрешить ему подключаться по SSH.
Это можно сделать следующим образом:
1. Создать пользователю root пароль (если нет) с помощью следующей команды:
Нажать Enter и ввести пароль 2 раза (консоль об этом напишет).
2.Открыть с помощью любого текстового редактора файл с настройками SSH, например, с помощью редактора VIM (VI):
И для параметра PermitRootLogin изменить значение с no на yes:
Иногда параметр PermitRootLogin закомментирован, соответственно, нужно его раскоментировать.
Сохранить изменения в файле.
3. Перезапустить ssh server командой:
systemctl restart ssh || systemctl restart sshd
(если не помогает, перезапустить сервер полностью 🙂
После этого пользователь root сможет подключиться по SSH.
Комментарии ( 0 )
Оставьте свой комментарий
Интересные статьи:
Висит получение IP-адреса
Железо: нетбук Lenovo
2010 года выпуска. Операционная система: Windows XP. Описание проблемы: при попытке подключения к сети Wi-Fi агент беспроводной сети нетбука не запрашивает пароль (а он фактически имеется), а сразу пытается подключиться. При этом постоянно отображается «Получение IP-адреса«, и подключения фактически не происходит, доступа к сети Интернет нет.
Состояние ВПП и рулёжных дорожек, перрона по степени их покрытия снегом и льдом, наличие сугробов, а также коэффициент сцепления подробно описывается в японских НОТАМ в виде буквенно-цифровых кодов.
Код зоны покрытия для Jepp View, eLink и Flite Deck
Обновление навигационных баз данных с помощью iPhone
Jeppesen создал JDM (Jeppesen Distribution Manager) для iOS и объявил о стратегическом альянсе с компанией Bad Elf, которая выпустила портативный аксессуар для загрузки /выгрузки данных – Bad Ef Wombat. Устройство Wombat представляет собой беспроводную систему передачи данных, а программа JDM (iOS) позволяет скачать обновления навигационных баз данных Jeppesen в iPad или в iPhone для.
Малыш и Карлсон
— Потрясающе! — удивился Малыш. — Но позвольте! Вы ведь летели с положительным тангажем.— Чего? — Карлсон открыл рот от неожиданности и чуть не подавился. — Ну. Вы летели головой вверх, слегка наклонившись вперед. При этом пропеллер должен был тянуть вас вверх и назад. Почему же вы летели вперед, а не назад? А можно посмотреть на твой пропеллер?— Конечно. — Карлсон развернулся.— С ума сойти! Я так и.
Фразы со словом FROM
Фразы и выражения, в которых используется слово FROM, использование их в повседневной английской речи и сравнение с русскими аналогами. 1. FROM HAND TO HAND (досл.: «от руки к руке»). По-русски это означает: от одного (человека) к другому, из рук в руки.Пример: The book was passed from hand to handКнигу передавали из рук в руки.
Авиационный фотограф Стив Моррис
Гайд по защите Linux сервера от взлома
Базовая защита от взлома вашего linux сервера. Запрет входа для root пользователя, смена стандартного порта и другие способы защиты.
Каюсь, давным-давно я был молод и силен входил на сервер с помощью root пользователя. Времена меняются, паранойя растет, так что разберемся как не дать школьнику доступ к нашему серверу.
Поскольку мы будем вносить изменения в SSH, важно никогда не закрывать ваше первоначальное SSH-соединение. Вместо этого откройте второй сеанс SSH для тестирования. Это сделано для того, чтобы избежать блокировки вашего сервера в случае ошибки в конфигурации SSH.
Как только все заработает, вы можете безопасно закрывать любые сеансы.
Cтатья не является “рецептом”, в котором надо выполнить все пункты. Некоторые пункты не нужны, если вы выполнили другие. Поэтому выберете только необходимые вам. Я же придерживаюсь следующего рецепта.
Устанавливайте обновления
Эффективность: 🛡️ 🛡️ 🛡️
Самое простое что вы можете сделать, и я заклинаю вас это делать – обновляйте систему. Своевременное обновление защитит вас от больнитсва известных уязвимостей.
Для CentOS команда на обновление выглядит так
Замена стандартного порта SSH
Один из самых простых способов защититься от неумелых атакующих и тупых ботов – это изменение дефолтного порта подключения по SSH. Большинство ботов сканируют только дефолтный порт, сменив его вы защититесь от ботов работающих на дурака.
Перед сменой порта разберитесь, какой firewall стоит на вашей системе. Например на CentOS 8 это скорее всего firewalld.
Вам необходимо открыть новый порт для ssh, и закрыть старый. Например, если у вас установлен firewalld, а порт вы выбрали 58291, то команды для открытия порта будут такие:
В открывшемся файле найдите следующую строку: #Port 22 Удалите решетку и измените номер порта, например на 58291. Номер не должен превышать 65535. Рекомендую выбрать пятизначное значение.
После этого необходимо перезапустить службу ssh:
Для входа с использованием нового порта используйте следующий флаг:
Config SSH
Чтобы не запоминать порты ко всем своим серверам, можно воспользоваться файлом
В этот файл записываются параметры для подключения к серверу, после чего можно использовать короткую запись авторизации.
🔐 Используйте SSH ключ вместо пароля
Эффективность: 🛡️ 🛡️ 🛡️ 🛡️ 🛡️ 🛡️
Сервер OpenSSH поддерживает различную аутентификацию. Пароли можно угадывать, взламывать или подбирать методом перебора. Ключи SSH не подвержены таким атакам.
Когда вы делаете запрос на подключение, удаленный компьютер использует свою копию вашего открытого ключа для создания зашифрованного сообщения, которое отправляется обратно на ваш компьютер. Поскольку он был зашифрован с помощью вашего открытого ключа, ваш компьютер может расшифровать его с помощью вашего закрытого ключа.
Затем ваш компьютер извлекает из сообщения некоторую информацию, в частности идентификатор сеанса, шифрует ее и отправляет обратно на сервер. Если сервер может расшифровать его с помощью своей копии вашего открытого ключа, и если информация внутри сообщения совпадает с тем, что сервер отправил вам, ваше соединение будет подтверждено как исходящее от вас.
Схематичный процесс авторизации по SSH ключу
Создание ssh ключей
И так, генерация ключей ssh выполняется командой:
Утилита предложит вам выбрать расположение ключей. По умолчанию ключи располагаются в папке
/.ssh/. Лучше ничего не менять, чтобы все работало по умолчанию и ключи автоматически подхватывались. Секретный ключ будет называться id_rsa, а публичный id_rsa.pub.
Затем утилита предложит ввести пароль для дополнительного шифрования ключа на диске. Его можно не указывать, если не хотите.
Теперь у вас есть открытый и закрытый ключи SSH и вы можете использовать их для проверки подлинности. Дальше нам осталось разместить открытый ключ на удаленном сервере.
Никогда и никому не передавайте свой закрытый ключ.
Загрузка ключа на сервер
Если вы хотите указать путь до публичного ключа, используйте команду:
При первом подключении к серверу система может его не распознать, поэтому вам нужно ввести yes. Затем введите ваш пароль пользователя на удаленном сервере. Утилита подключится к удаленному серверу, а затем использует содержимое ключа id_rsa.pub для загрузки его на сервер в файл
/.ssh/authorizedkeys. Дальше вы можете выполнять аутентификацию с помощью этого ключа.
Если такой способ по какой-либо причине для вас не работает, вы можете скопировать ключ по ssh вручную. Мы создадим каталог
Здесь вам тоже нужно набрать yes, если вы подключаетесь к новому серверу, а затем ввести пароль.
После этого вы можете использовать созданный ключ для аутентификации на сервере:
Если вы не захотели создать ssh ключ с доступом по паролю, то вы сразу же будете авторизованы, что очень удобно. Иначе, сначала вам придется ввести фразу-пароль для расшифровки ключа.
🙅♂️ Запрет авторизации по паролю
Эффективность: 🛡️ 🛡️ 🛡️ 🛡️ 🛡️
Логическим продолжением использования ключей SSH является полное отключение аутентификации по паролю для всех пользователей.
Прежде чем запрещать вход по паролю, проверьте возможность входа по ssh ключу.
Нам нужно отредактировать ваш файл конфигурации SSH.
Теперь сохраните файл и перезапустите службу ssh:
Создание нового пользователя
Эффективность: 🛡️ 🛡️ 🛡️
Root«Root» — это учётная запись, которая имеет доступ ко всем без исключения действиям. Да, вообще ко всем.
Более того, вы не должны позволять root входить в ваш SSH-сервер. Подключение должно быть разрешено только обычным пользователям. Если им нужно выполнить административную задачу, им также следует использовать sudo.
Добавим нового пользователя, на замену root.
Если вас не попросили придумать пароль для пользователя, то установите его вручную.
Я предполагаю, что мы заблокируем root пользователя, поэтому после этого добавим пользователя в группу sudo:
На некоторых ОС эта гурппа называется wheel.
Для каждого пользователя sudo можно задать ограничения: разрешить запускать только определенные команды от имени супер пользователя.
🙅♂️ Запрет доступа root на сервер
Эффективность: 🛡️ 🛡️ 🛡️ 🛡️ 🛡️
Самый лучший вариант – это когда у root пользователя нет возможности войти на сервер.
Если вы вынуждены разрешить пользователю root вход в систему, вы можете хотя бы заставить его использовать ключи SSH.
Открываем текстовый файл в любом редакторе:
Нас интересует параметр PermitRootLogin :
После внесения вышеуказанных изменений сохраните и закройте файл. Затем перезапустите службу SSH, чтобы внесенные изменения вступили в силу.
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
SSH (ч.2): Настройка сервера OpenSSH
Оглавление
Как настроить SSH сервер (sshd)
Служба sshd считывает настройки из конфигурационного файла /etc/ssh/sshd_config. Этот файл содержит пары «ключевое слово — аргумент», одна пара на одной строке. Для каждого ключевого слова будет использовано первое полученное значение (исключение составляют несколько директив, которые можно использовать несколько раз, и каждого значение будет учтено, например это Port и ListenAddress).
Опционально аргументы можно заключить в двойные кавычки («), чтобы передать аргументы, содержащие пробелы.
Ключевые слова не чувствительны к регистру, а аргументы чувствительны к регистру.
Многие директивы закомментированы, но они указывают на значение по умолчанию, которое всё равно используется. Если вас устраивает значение по умолчанию, то не нужно ничего менять. Если же вы хотите другое значение, то нужно раскомментировать строку с соответствующей директивой (убрать символ #) и внести изменения.
Дополнительно можно указать опции командной строки — они имеют приоритет над настройками в конфигурационном файле.
Перезапуск службы SSH
Если между sshd.service и sshd.socket (подробности в разделе «Управление службой OpenSSH») вы выбрали запуск sshd.service, то чтобы внесённые в конфигурационный файл изменения вступили в силу, необходимо перезапустить службу:
Для sshd.socket перезапуск службы требуется только при изменении номера порта (как это показано ниже) и делается так:
Как изменить порт, на котором работает сервер OpenSSH
Все настройки выполняются в файле /etc/ssh/sshd_config или в строке команды запуска sshd.
Для sshd.socket смена прослушиваемого службой порта происходит иначе.
Если вы используете sshd.service (объяснения в первой части), то смена порта также происходит в файле /etc/ssh/sshd_config. Для этого раскомментируйте директиву Port и укажите новое значение:
Опцию Port разрешено использовать несколько раз.
Также порт можно установить с помощью ListenAddress.
Если вы используете сокет sshd.socket и хотите поменять для SSH прослушиваемый порт, то вам нужно редактировать специальный файл следующим образом:
Там можно указать только порт:
Обратите внимание, что использование ListenStream дважды в одном конфигурационном файле не является ошибкой. Если вы используете ListenStream только один раз с указанием порта, тогда будут прослушиваться и 22 порт и порт, который вы указали. Первое использование ListenStream= отключает прослушивание 22 порта.
Для sshd.socket другие настройки, как обычно, в файле /etc/ssh/sshd_config. Но директивы Port и ListenAddress будут игнорироваться (если выбрано прослушивание сокета).
Как выбрать интерфейс (IP) для прослушивания
В системе может быть несколько сетевых интерфейсов с несколькими IP адресами, по умолчанию sshd прослушивает их все, в том числе IPv6 адреса:
Если вы хотите, чтобы компьютер в локальной сети был доступен только для устройств в локальной сети, то можно указать его локальный IP:
Директиву ListenAddress можно использовать несколько раз в одном конфигурационном файле. Разрешены следующие форматы:
Если порт не указан, то sshd будет прослушивать на указанном порту в соответствии со всеми установленными опциями Port в этом файле.
Квалификатор rdomain является необязательным, он имеет отношение к маршрутизации.
Также обратите внимание, что с ListenAddress обязательно должен быть указано имя хоста (адрес) ИЛИ порт. Можно указать отдельно имя хоста (адрес), можно указать отдельно порт, а также можно указать их вместе. Во всех вариантах rdomain может отсутствовать.
Опции командной строки (об их использовании далее) имеют приоритет над директивами конфигурационного файла. В том числе опция для установки используемого порта приводят к тому, что Port в конфигурационном файле игнорируется. Но порты указанные с ListenAddress перезаписывают порты в строке команды.
Вы можете указать конкретный IP, который будет прослушиваться в ожидании подключений. А опцией AddressFamily вы можете выбрать для прослушивания все адреса, только IPv4 или только IPv6:
Почему пользователь root не может подключиться по SSH с верным паролем. Как запретить или разрешить подключение root по SSH
Если при подключении к удалённой системе по SSH вы сталкиваетесь с ошибкой, что не удаётся войти под пользователем SSH даже с верным паролем:
То проверьте значение директивы PermitRootLogin:
По умолчанию она закомментирована, но указанное значение всё равно используется по умолчанию.
Директива PermitRootLogin определяет, может ли root выполнить вход используя ssh. Аргументами могут быть: yes, prohibit-password, forced-commands-only или no. Значением по умолчанию является prohibit-password.
Если эта опция установлена на prohibit-password (или устаревший псевдоним without-password), то вход по паролю и интерактивная аутентификация с клавиатуры отключены для пользователя root.
Если эта опция установлена на forced-commands-only, вход root с аутентификацией по публичному ключу будет разрешён, но только если была указана опция ForceCommand с командой (это может быть полезно для получения удалённых бэкапов, даже если нормальный вход root не разрешён). Все другие методы аутентификации отключены для root.
Если эта опция установлена на no, то root’у не разрешён вход вовсе.
Если опция установлена на yes, то разрешён вход для рута без ограничений.
Итак, если вы столкнулись с проблемой, что не можете выполнить вход с верным паролем под пользователем root, то либо настройте вход без пароля — по публичному ключу, либо установите значение этой директивы на yes.
Запрет и разрешение входа в SSH по паролю обычным пользователям
Чуть выше мы рассмотрели вариант, когда пользователю root запретить вход по паролю. Такую же настройку можно сделать для всех остальных пользователей, для этого используется директива PasswordAuthentication. Значением по умолчанию является yes, то есть вход по паролю разрешён. Для запрета входа по паролю всем пользователям, установите значение этой директивы на no.
Разрешение входа без пароля
За разрешение входа без пароля отвечает директива PermitEmptyPasswords. Она нужна для специфичных случаев, чтобы разрешить вход аккаунтам с пустой парольной строкой. По умолчанию установлена на no.
Как разрешить или запретить пользователям входить через SSH
Всего имеется 4 директивы, которые разрешают или запрещают пользователям и группам подключаться к SSH. Эти директивы в порядке обработки: DenyUsers, AllowUsers, DenyGroups и наконец AllowGroups.
За ключевым словом AllowUsers может следовать список шаблонов имён пользователей, разделённых пробелами, например:
Если директива используется, то вход разрешён только пользователям, имена которых соответствуют шаблонам. Принимаются только имена пользователей, цифровые идентификаторы пользователей не распознаются. По умолчанию вход разрешён для всех пользователей. Если шаблон имеет вид ПОЛЬЗОВАТЕЛЬ@ХОСТ, тогда раздельно проверяются ПОЛЬЗОВАТЕЛЬ и ХОСТ и вход разрешается только определённым пользователям с определённых хостов. В качестве ХОСТа могут быть адреса в формате CIDR, то есть в виде адрес/маска.
Далее о шаблонах, которые могут принимать директивы DenyUsers, AllowUsers, DenyGroups и AllowGroups.
Шаблоны в файле настроек SSH
Шаблон состоит из нуля или более символов, которые не являются белыми пробелами, ‘*’ (подстановочного символа, который соответствует нулю или более символам), а также ‘?’ (подстановочный символ, который соответствует ровно одному любому символу). Например, чтобы охарактеризовать любой хост в наборе доменов «.co.uk» можно использовать следующий шаблон:
Следующий шаблон будет соответствовать любому хосту в сетевом диапазоне 192.168.0.5:
Список шаблонов — это несколько шаблонов, разделённых запятой. Шаблоны внутри списка могут иметь противоположное значение если перед ними стоит восклицательный знак («!»). Например, для разрешения ключа использовать откуда угодно внутри организации, кроме пула «dialup», можно использовать следующее (в authorized_keys):
Помните, что отрицательное совпадение никогда само по себе не даст положительных результатов. Например, попытка сопоставить хост «host3» следующими списку шаблонов не найдёт совпадений:
Решением для предыдущей ситуации является включение термина, который приведёт к положительному совпадению, им может быть подстановочный символ:
Как разрешить подключение только с определённого IP или группы IP. Как заблокировать определённые IP для SSH
С помощью директив (перечислены в порядке обработки) DenyUsers, AllowUsers, DenyGroups и AllowGroups и шаблонов можно настроить разрешения для доступа к SSH по IP.
Рассмотрим несколько примеров. Если в файл sshd_config добавить фильтрацию с AllowUsers:
Это разрешит доступ для johndoe и admin2 только с адресов 192.168.1.*, а для otherid1, otherid2 доступ будет открыт с любого адреса.
Чтобы разрешить доступ к SSH любым пользователям, но только с определённых IP, в файле /etc/ssh/sshd_config используйте директиву AllowUsers с подстановочным символом:
Возможно ограничить ключ ssh или ключ на основе ca набором адресов в файле .ssh/authorized_keys домашнего каталога данного пользователя:
В этом примере открытый ключ для useralias будет действовать только с заданных адресов.
Настройка журналов SSH сервера
Служба SSH не ведёт свой собственный лог и записывает события в системный журнал. О том, как его просмотреть, обратитесь к разделу «Как проверить журнал событий SSH службы».
Можно настроить подробность ведения журнала — уровень вербальности, то есть какие именно сообщения будут записываться в этот журнал. Для этого используется директива LogLevel. Её значем по умолчанию является INFO. Также доступны следующие варианты:
DEBUG и DEBUG1 являются эквивалентами. DEBUG2 и DEBUG3 — каждый указывает на более высокие уровни вывода отладочной информации.
Ведение журнала на уровне DEBUG нарушает политику приватности пользователей и не рекомендуется.
Запуск SSH без отсоединения от терминала
Запуск службы sshd описан в первой части. Также демон sshd можно запустить по имени файла. Для этого нужно указать полный путь до файла sshd, чтобы его узнать:
Запущенная таким образом sshd отключиться от терминала (перейдёт в фоновое выполнение) и не будет выводить что-либо в стандартный вывод.
Можно запустить sshd как процесс без отсоединения от терминала (чтобы процесс не стал демоном), для этого используйте опцию -D — это позволяет упростить процесс мониторинга работы SSH, поскольку сообщения о событиях и проблемах службы будут выводиться в стандартный вывод. Дополнительно можно указать опцию -d для включения режима отладки:
Запуск сервера SSH с другим конфигурационным файлом
С помощью опции -f можно указать путь до другого конфигурационного файла (значение по умолчанию /etc/ssh/sshd_config). sshd откажется запускаться без конфигурационного файла.
Как проверить конфигурационный файл сервера SSH без запуска службы
Тестовый режим. Только проверяет правильность файла конфигурации и работоспособность ключей. Это полезно для надёжного обновления sshd, поскольку параметры конфигурации могут измениться.
Расширенный тестовый режим. С этой опцией sshd проверит правильность файла конфигурации, выведет действующую конфигурацию в стандартный вывод и затем завершит работу. При желании, правила соответствия могут применяться путём указания параметров соединения с использованием одной или нескольких опций -C.
-C connection_spec
Другие важные опции командной строки сервера SSH
-c host_certificate_file
Указывает путь к файлу сертификата для идентификации sshd во время обмена ключами. Файл сертификата должен соответствовать файлу ключа хоста, указанному с помощью параметра -h или директивы конфигурации HostKey.
-h host_key_file
Указывает файл, из которого читается ключ хоста. Эта опция должна быть указана, если sshd не запускается от имени пользователя root (поскольку обычные файлы ключей хоста как правило не читаются никем, кроме root). По умолчанию это /etc/ssh/ssh_host_ecdsa_key, /etc/ssh/ssh_host_ed25519_key и /etc/ssh/ssh_host_rsa_key. Можно иметь несколько файлов ключей хоста для разных алгоритмов ключей хоста.
-E файл_журнала
Добавить журналы отладки в файл_журнала вместо системного журнала.
Записывать журналы отладки в стандартный вывод ошибок вместо системного журнала.
-o опция
Может использоваться для задания параметров в формате, используемом в файле конфигурации (sshd_config). Это полезно для указания параметров, для которых нет отдельного флага командной строки. Самые важные директивы конфигурационного файла рассмотрены выше.
-p порт
Указывает порт, на котором сервер прослушивает соединения (по умолчанию 22). Допускается использование нескольких портов. Порты, указанные в файле конфигурации с параметром «Port», игнорируются, если указан порт командной строки. Порты, указанные с помощью параметра ListenAddress, переопределяют порты командной строки.
Тихий режим. Ничего не отправляется в системный журнал. Без этой опции обычно запуск, аутентификация и завершение каждого соединения регистрируются.
Другие опции sshd
Рассмотрены самые востребованные опции конфигурационного файла sshd, кроме них имеется ещё много других, которые настраивают используемые шифры, могут более тонко определить порядок аутентификации и требования к подключающемуся, настраивают возможности пересылки (forwarding), установить выполняемую команду при подключении пользователя, вывод определённой информации при подключении и так далее.
С другими опциями конфигурационного файла sshd (на английском языке) вы сможете ознакомиться с помощью команды:
Информацию об опциях командной строки можно увидеть с помощью: