Невинные SSH'алости в сетях

Andrushock

Xakep, номер #057, стр. 057-078-3


# groupadd -v -g 22 sshd

# useradd -v -u 22 -g sshd -s /dev/null -d /var/empty -c "sshd privsep" sshd

<Элегантное конфигурирование>

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

# vi /etc/ssh/sshd_config

TCP-порт для ожидания подключений, по умолчанию равен 22; чтобы немного сбить с толку сканирующего, можно выставить 1022:

Port 22

Используемые протоколы; записи "1,2" и "2,1" идентичны:

Protocol 2,1

Следующая запись означает, что производится ожидание подключений по всем доступным сетевым интерфейсам:

ListenAddress 0.0.0.0

Интервал регенерации ключа сервера для протокола SSH1:

KeyRegenerationInterval 3600

Длина ключа сервера в битах для протокола SSH1:

ServerKeyBits 768

Параметр, определяющий, по истечении какого времени простаивающее подключение будет разорвано (в секундах):

LoginGraceTime 120

Запрещаем регистрацию суперпользователя:

PermitRootLogin no

Перед регистрацией пользователя проверяем права доступа к его домашнему каталогу:

StrictModes yes

Запрещаем беспарольную аутентификацию:

PasswordAuthentication yes

PermitEmptyPasswords no

Периодически будем отправлять клиенту запросы для проверки функционирования сеанса работы:

KeepAlive yes

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

UsePrivilegeSeparation yes

Сжимаем передаваемые данные; высшую степень компрессии стоит применять при дорогостоящем трафике, по умолчанию используется значение 6:

Compression yes

CompressionLevel 9

Определяем, какие пользователи с каких хостов могут регистрироваться в системе:

AllowUsers andrushock shocker@1.2.3.4

После сохранения конфигурационного файла важно проверить, правильно ли заданы права доступа к конфигам и ключам ssh: каталог /etc/ssh должен принадлежать суперпользователю и иметь биты (в восьмеричном значении) 755, файловые разрешения ssh_config и sshd_config должны быть 644, приватные и публичные ключи 600 и 644 соответственно.

<PAM - деликатный контроль>

Назад на стр. 057-078-2  Содержание  Вперед на стр. 057-078-4