- Запрещаем использование root в SSH
- Включение и Отключение входа по SSH. Ограничение доступа по SSH в Linux
- Отключить вход по SSH
- Включить корневой вход по SSH
- Ограничить вход пользователей SSH
- Disable or Enable SSH Root Login and Limit SSH Access in Linux
- Disable SSH Root Login
- Enable SSH Root Login
- Limit SSH User Logins
Запрещаем использование root в SSH
Сегодня, сидя на работе, я забрел через SSH на один удаленный сервер, проблема в том, что при вводе рутового пароля он отказался пускать меня. В старые времена такое положение вещей меня бы озадачило, но тут я сразу смекнул в чем дело, root’y доступ на сервер просто запрещен. Мне такая штука очень понравилась, и так как часто с рабочего компьютера захожу на свой ноутбук по SSH я решил примутить такую же и у себя, для пущей безопасности. Зайдя на сервер я немного поковырялся в конфигах SSH и нашел то что искал.
Для чего необходимо закрывать доступ root’y? Ответ довольно простой, кто-нибудь может перехватить или украсть пароль, после чего получить права суперпользователя на сервере где у вас крутиться Web-шоп, правда неприятно?
Так вот, чтобы решить эту проблему необходимо отредактировать файл sshd_config , который является основным конфигурационным файлом для службы sshd . В разных системах он может находиться по разному, но зачастую это /etc/ssh/
Напомню, чтобы иметь возможность присоединяться по SSH к компьютеру, нужно установить пакет OpenSSH-server как один из вариантов:
#sudo apt-get install openssh-server
Открываем конфиг любым текстовым редактором:
Найдите в нем секцию, содержащую строку «PermitRootLogin»
# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
Отредактируйте строку как показано ниже для отключения возможности подключаться через ssh рутом, изменив «yes» на «no».
После этого перезапустите sshd:
Немного о свойствах файла sshd_config и простейших параметрах которые стоит сразу изменить.
Port 22 — номер порта можно и поменять, в особенности если SSH пользуетесь вы один, а не целая группа админов. Именно 22-ой порт стоит первый в списке для сканирования и атак.
- PermitRootLogin no — об этой строчке собственно и вся статья. Повторяться не стоит.
- AllowUsers sasha — этого параметра нет в sshd_config, допишите его обязательно. sasha — имя вашего юзера с ограниченными правами.
- PermitEmptyPasswords no — Запрет на установку пустого пароля.
И напоследок, всем кто часто юзает SSH советую детально изучить тему безопасности, прочитать маны, дабы предостеречь себя от несчастных случаев…
Включение и Отключение входа по SSH. Ограничение доступа по SSH в Linux
Всем известно, что системы Linux имеет доступ пользователя root, и по умолчанию SSH доступ включен для внешнего мира.
По соображениям безопасности не рекомендуется включать доступ ssh для неавторизованных пользователей. Потому что любой хакер может попытаться взломать ваш пароль и получить доступ к вашей системе.
Поэтому лучше завести другую учетную запись, которой вы регулярно пользуетесь, а затем переключиться на пользователя root, используя команду «su–«, когда это необходимо. Прежде чем начать, убедитесь, что у вас есть обычная учетная запись пользователя, и с ее помощью вы можете получить root-доступ.
В Linux очень легко создать отдельную учетную запись, войти в систему как пользователь root и просто запустить команду adduser, чтобы создать отдельного пользователя. Как только пользователь будет создан, просто выполните следующие действия, чтобы отключить вход в систему root через SSH.
Вам может быть интересно:
Мы используем главный файл конфигурации sshd, чтобы отключить вход в систему root, и это может помешать хакеру получить доступ к вашей системе Linux. Здесь же мы можем и включить доступ, а также как ограничить доступ по ssh на основе списка пользователей.
Отключить вход по SSH
Чтобы отключить вход в систему с root, откройте основной файл конфигурации ssh /etc/ssh/sshd_config с выбранным вами редактором. В моем случае я использую редактор Vi или Vim
Найдите в файле следующую строку.
Удалите «#» из начала строки. Сделайте строку похожей на эту.
Далее нам нужно перезапустить службу SSH.
# systemctl restart sshd
или
# /etc/init.d/sshd restart
Теперь попробуйте войти в систему пользователем root, вы получите сообщение об ошибке “Permission denied”.
$ ssh root@192.168.0.102
root@192.168.0.102’s password:
Permission denied, please try again.
Итак, с этого момента войдите в систему как обычный пользователь, а затем используйте команду «su», чтобы переключиться на пользователя root.
$ ssh root@192.168.0.102
tecmint@192.168.0.102’s password:
Last login: Mon Dec 27 15:04:58 2021 from 192.168.0.161$ su —
Password:
Last login: Mon Dec 27 15:05:07 IST 2021 on pts/1
Включить корневой вход по SSH
Чтобы включить ведение журнала ssh, откройте файл /etc/ssh/sshd_config.
Найдите следующую строку удалите «#» в начале и сохраните файл. (это называется раскоментирование)
Теперь перезапустите службу sshd.
# systemctl restart sshd
или
# /etc/init.d/sshd restart
Теперь попробуйте войти в систему с помощью корневого пользователя.
$ ssh root@192.168.0.102
root@192.168.0.102’s password:
Last login: Mon Dec 27 15:14:54 2021 from 192.168.0.161
Ограничить вход пользователей SSH
Если у вас в системе большое количество учетных записей пользователей, то имеет смысл ограничить пользователям удаленный доступ по SSH. А тем которым он действительно нужен предоставить доступ по SSH. Откройте файл /etc/ssh/sshd_config.
Добавьте строку разрешенных пользователей в нижней части файла, разделяя пользователей пробелом. Например, пользователи tecmint и sheena имеют доступ к удаленному ssh.
Теперь перезапустите службу ssh
Возможно вам будет интересно: Как исправить ошибку “W: Some index files failed to download” Ошибка в Ubuntu
Вот в принципе и все. Мы рассказали как ограничить доступ SSH, а так же как включить и отключить вход по SSH в системе Linux.
Спасибо за то что дочитали до конца. Оставьте свои отзывы и замечания в разделе комментариев, а так же подписывайтесь на наш Дзен канал.
Disable or Enable SSH Root Login and Limit SSH Access in Linux
Everyone knows that Linux systems come with root user access and by default, root access is enabled for the outside world.
For security reasons, it’s not a good idea to have ssh root access enabled for unauthorized users. Because any hacker can try to brute force your password and gain access to your system.
So, it’s better to have another account that you regularly use and then switch to the root user by using the ‘su –‘ command when necessary. Before we start, make sure you have a regular user account and with that, you su or sudo to gain root access.
In Linux, it’s very easy to create a separate account, log in as a root user and simply run the adduser command to create a separate user. Once the user is created, just follow the below steps to disable root login via SSH.
We use sshd master configuration file to disable root login and this will may decrease and prevent the hacker from gaining root access to your Linux box. We also see how to enable root access again as well as how to limit ssh access based on users’ list.
Disable SSH Root Login
To disable root login, open the main ssh configuration file /etc/ssh/sshd_config with your choice of editor.
Search for the following line in the file.
Remove the ‘#‘ from the beginning of the line. Make the line look similar to this.
Next, we need to restart the SSH daemon service.
# systemctl restart sshd OR # /etc/init.d/sshd restart
Now try to log in with the root user, you will get a “Permission denied” error.
$ ssh [email protected] [email protected]'s password: Permission denied, please try again.
So, from now onwards login as a normal user and then use the ‘su’ command to switch to root user.
$ ssh [email protected] [email protected]'s password: Last login: Mon Dec 27 15:04:58 2021 from 192.168.0.161 $ su - Password: Last login: Mon Dec 27 15:05:07 IST 2021 on pts/1
Enable SSH Root Login
To enable ssh root logging, open the file /etc/ssh/sshd_config.
Search for the following line and remove the ‘#‘ at the beginning and save the file.
Restart the sshd service.
# systemctl restart sshd OR # /etc/init.d/sshd restart
Now try to log in with the root user.
$ ssh [email protected] [email protected]'s password: Last login: Mon Dec 27 15:14:54 2021 from 192.168.0.161
Limit SSH User Logins
If you have a large number of user accounts on the systems, then it makes sense that we limit remote SSH access to those users who really need it. Open the /etc/ssh/sshd_config file.
Add an AllowUsers line at the bottom of the file with a space separated by a list of usernames. For example, user tecmint and sheena both have access to remote ssh.
AllowUsers tecmint sheena
Now restart ssh service.