Блокируем ssh доступ root'у в Linux
Добавил: Amro   Дата: 27.09.2014 22:27

Одной из самых больших проблем безопасности на вашем сервер будет являться то, что вы откроете root возможность непосредственно коннектиться через ssh. Любой может перехватить ваш root  пароль и потенциально получить доступ к системе.

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

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

1. создаем пользователя под которым будем работать(самый простой способ):

# adduser user

где user — имя пользователя
Далее мы увидим диалог что-то вроде:

Добавляется пользователь «user» ...
Добавляется новая группа «user» (1001) ...
Добавляется новый пользователь «user» (1001) в группу «user» ...
Создаётся домашний каталог «/home/user» ...
Копирование файлов из «/etc/skel» ...
Введите новый пароль UNIX:
Повторите ввод нового пароля UNIX:
passwd: пароль успешно обновлён
Изменение информации о пользователе user
Введите новое значение или нажмите ENTER для выбора значения по умолчанию
Полное имя []:
Номер комнаты []:
Рабочий телефон []:
Домашний телефон []:
Другое []:
Данная информация корректна? [Y/n] Y

Пишем сложный пароль(который вы не забудете!) и заполняем данные которые считаем нужными, или просто нажимаем enter.

2. Разрешаем user выполнение sudo

Добавляем user в специальную группу sudo:

# usermod -a -G sudo user

где собственно user — имя пользователя.
Всё, можем выходить и логинится под user

$ ssh user@93.189.xx.xx -p 22

и в дальнейшем уже использовать sudo если нужны привилегии root-а

Немного обезопасим SSH

Практически сразу после запуска сервера заметил подозрительную активность в ану.. на порту 22. По всей видимости китайские порно-сканеры разнюхали и начали брутить пароли.

Самый простой выход — сменить порт ssh с 22 на любой другой.

1. Для этого откроем файл конфигурации ssh сервера:

$ sudo nano /etc/ssh/sshd_config

Ищем строку «Port 22» и заменяем её на «Port 354» где 354 любое число в пределах от 1 до 65535
На всякий случай посмотрим открытые порты:

netstat -tupln | grep LISTEN

и выберем любой не из этого списка.

Скажу сразу, порты 80, 443, 3306, 22, 21, 8080 — советую не использовать.

2. Дальше, ограничим тип адресов для подключения(IPv6 либо IPv4). Если у вас на сервере не используется IPv6, то дописываем файл /etc/ssh/sshd_config:

AddressFamily inet

3. Запретим авторизацию под root, ищем в файле PermitRootLogin и выставляем no. Если данного параметра нет, дописываем:

PermitRootLogin no

4. Разрешаем подключение только по определенным логинам, дописываем файл /etc/ssh/sshd_config:

AllowUsers user

где список пользователей пишется через пробел.

5. Запрещаем попытку входа с пустым паролем. Ищем PermitEmptyPasswords и выставляем no

PermitEmptyPasswords no

6. Сохраняем и перезапускаем ssh демон:

$ sudo /etc/init.d/ssh restart

Для начала всё, можем перелогиниваться с новыми параметрами($ ssh user@93.189.xx.xx -p 354)

comments powered by HyperComments