Запрещаем использование root в SSH

29.10.2008, рубрики: how-to, Безопасность | Теги: | 4 комментариев »

Сегодня, сидя на работе, я забрел через SSH на один удаленный сервер, проблема в том, что при вводе рутового пароля он отказался пускать меня. В старые времена такое положение вещей меня бы озадачило, но тут я сразу смекнул в чем дело, root’y доступ на сервер просто запрещен. Мне такая штука очень понравилась, и так как часто с рабочего компьютера захожу на свой ноутбук по SSH я решил примутить такую же и у себя, для пущей безопасности. Зайдя на сервер я немного поковырялся в конфигах SSH и нашел то что искал.
Для чего необходимо закрывать доступ root’y? Ответ довольно простой, кто нибудь может перехватить или украсть пароль, после чего получить права суперпользователя на сервере где у вас крутиться Web-шоп, правда неприятно?
Так вот, чтобы решить эту проблему необходимо отредактировать файл файл sshd_config, который является основным конфигурационным файлом для службы sshd. В разных системах он может находиться по разному, но зачастую это /etc/ssh/

Напомню, чтобы иметь возможность присоединяться по SSH к компьютеру, нужно установить пакет OpenSSH-server как один из вариантов:
#sudo apt-get install openssh-server

Открываем конфиг любым текстовым редактором:
#gedit /etc/ssh/sshd_config/

Найдите в нем секцию, содержащую строку «PermitRootLogin»
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

Отредактируйте строку как показано ниже для отключения возможности подключаться через ssh рутом, изменив «yes» на «no».
PermitRootLogin no

После этого перезапустите sshd:
#/etc/init.d/sshd restart

Теперь вы в безопасности.

Немного о свойствах файла sshd_config и простейших параметрах которые стоит сразу изменить.

Port 22 – номер порта можно и поменять, в особенности если SSH пользуетесь вы один, а не целая группа админов. Именно 22-ой порт стоит первый в списке для сканирования и атак.
PermitRootLogin no – об этой строчке собственно и вся статья. Повторяться не стоит.
AllowUsers sasha – этого параметра нет в sshd_config, допишите его обязательно.
sasha – имя вашего юзера с ограниченными правами.
К имени sasha можно прикрутить IP-адрес – sasha@192.168.1.132 – если на клиентской машине именно этот статический IP. Такой параметр разрешит логинится только пользователю sasha и только при условии, что его хост совпадает с заданным в файле.
PermitEmptyPasswords no – Запрет на установку пустого пароля.

И напоследок, всем кто часто юзает SSH советую детально изучить тему безопасности, прочитать маны, дабы предостеречь себя от несчастных случаев…


4 комментариев на запись “Запрещаем использование root в SSH”

  1. 1 Казанская группа пользователей Linux сказала в 18:27, 29.10.2008:

    Как же злоумышленник может перехватить пароль root, если процесс соединения зашифрован тем же самым SSH?!! ;)))))
    да и не припомню я относительно свежих дистрибутивов Linux, в которых по умолчанию разрешен логин root в SSH.

  2. 2 admin сказала в 23:35, 30.10.2008:

    Смотрите, ошибка в том, что можно логиниться по SSH под root’ом или нет не зависит от дистрибутива, это зависит от установленного вами пакета SSH-server, когда я ставил свой openssh-server у меня по дефолту было разрешено.
    Ну а на счет зашифрованного соединения вы абсолютно правы, я лично работаю еще и через OpenVPN, и с фаирволом, это так для пущей безопасности)))

  3. 3 Will сказала в 23:56, 14.04.2010:

    Еще лучше можно защититься, применив sshguard. А также есть способ авторизации только по ключу.

  4. 4 admin сказала в 9:34, 15.04.2010:

    SSHguard не спорю, метод аутентификации по ключу описан тут http://www.linuxspace.org/archives/2078


Оставить комментарий

  • Доступные теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code lang=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" extra="">

  • *