Установка и настройка сервера SSH
В установке сервера SSH нет ничего сложного. Выполним команду:
$sudo aptitude install ssh
Далее приступим к настройке. Откроем для редактирования файл /etc/ssh/sshd_conf.
Установим в нем запрет удаленного входа в систему с правами root.
Для этого переменную PermitRootLogin установим в no.
Для большей безопасности явно определим список пользователей, которым разрешено удаленное подключение к серверу.
Для этого добавим в файл конфигурации строку AllowUsers user, где user — имя нашего пользователя.
Для применения изменений перезапустим ssh-сервер:
$sudo /etc/init.d/ssh restart
Установка и настройка DenyHosts
Для того, чтобы обезопасить нашу систему от подбора пароля по ssh, установим программу DenyHosts:
$sudo aptitude install denyhosts
Далее перейдем к настройке программы. Для этого откроем для редактирования файл /etc/denyhosts.conf.
PURGE_DENY
Переменную PURGE_DENY оставим пустой для того, чтобы хосты, с которых была зарегистрирована атака, всегда оставались в черном списке. При необходимости их всегда можно добавить в белый список, который имеет больший приоритет.
BLOCK_SERVICE
Данную переменную предпочтительно выставить в «all», так как, в случае атак с какого-либо адреса на ssh, могут начаться и любые другие атаки с данного адреса.
DENY_THRESHOLD_INVALID
Переменная показывает, сколько раз можно попробовать подобрать пароль к несуществующему пользователю. Рекомендуемое значение «5».
DENY_THRESHOLD_VALID
Переменная показывает, сколько раз можно попробовать подобрать пароль к существующему пользователю. Рекомендуемое значение «3».
DENY_THRESHOLD_ROOT
Переменная показывает, сколько раз можно попробовать подобрать пароль к пользователю root. Рекомендуется выставить значение в «1». В случае запрета соединения для root в настройках ssh-сервера, данная переменная особого значения не имеет.
SYNC_SERVER
Раскомментируем строку с переменой SYNC_SERVER для обмена списком «плохих» хостов (хостов, с которых была зарегистрирована атака) с центральным сервером программы.
SYNC_INTERVAL
Переменная показывает промежуток времени для синхронизации. Установим значение этой переменной в «1h».
SYNC_UPLOAD
Переменная показывает, можно ли загрузить на центральный сервер список «плохих» хостов. Рекомендуется установить в «yes», чтобы другие пользователи могли от них превентивно защититься.
SYNC_DOWNLOAD
Переменная показывает, можно ли загружать с сервера список «плохих» хостов. По умолчанию имеет значение «yes». Рекомендуется не изменять значение.
Остальные параметры рекомендуется не изменять. Рекомендуется изменять только в том случае, если возникнет необходимость настроить оповещения об отбитых атаках и, соответственно, о заблокированных хостах.
Дополнение к статье
При обновлении может возникнуть ошибка "long int exceeds XML-RPC limits"
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=546772)
Данная ошибка связана с обработкой longint и питонскими библиотеками.
Здесь было предложено временное решение:
в файле /usr/share/denyhosts/DenyHosts/sync.py в строке 47 изменить
timestamp = long(timestamp.strip()) на timestamp = timestamp.strip()