Защита SSH сервера » Записки старого сисадмина Защита SSH сервера » article » Записки старого сисадмина

Защита SSH сервера

28 июня 2008 Версия для печати Версия для печати

Сегодня в комментарии к одной из записей написали мне о том, что весьма неплохой способ защиты ssh через pam. Теперь вот я решил объединить и дополнить все свои статьи так или иначе связанные с SSH.

Итак начнем. Для начала пройдемся по настройкам самого сервера. Первое, что нужно проверить - это параметр Protocol. Сервер поддерживает все версии протоколов, но рекомендуется использовать только 2-ю, т.к. она самая надежная и не подвержена видам атак, как то man-in-the-midle, TCPHijacking, DNSSpoofing. Да и все нынешние клиенты поддерживают 2-ю версию протокола, а значит поддерживать сервером ранние версии не имеет смысла.

Protocol 2

Дальше смотрим что слушает наш сервер. Если Вам необходим доступ только на определенном адресе, то и прописать надо только этот адрес.

ListenAddress 192.168.0.1

Или же если надо на всех интерфейсах, то указываем:

ListenAddress 0.0.0.0

Дальше отключаем прямой рутовый вход, т.е. чтоб пользователь root не мог зайти через SSH. Этот вход администратору сервера не требуется, т.к. всегда можно выполнить команду su.

PermitRootLogin no

Дальше уменьшаем время простаивания соединения:

LoginGraceTime 60

Теперь разберем как разрешить вход только для определенных пользователей. Самый простой метод - это разрешить доступ с помощью самого sshd. Делается это просто:

AllowUsers admin

Так же можно указать с каких адресов даный пользователь может входить:

AllowUsers admin @ 192.168.0.*

Если у Вас таких пользователей много, то можно присвоить им какую либо общую группу (для примера sshlogin) и разрешить вход этой группе:

AllowGroups sshlogin

Еще один вариант - это разрешить доступ через PAM.

Теперь нам надо бы еще закрыть доступ для всяких ботов-брутфорсеров. Как это сделать я описывал в этой заметке.

Ну и для совсем уж параноидального закрытия можно использовать так называемый PortKnocking. Т.е. для того, чтоб открыть 22-й порт, надо "постучать" телнетом на какой-то другой порт (например, 1500). А чтоб закрыть доступ - в другой порт (например, 1499 или 1501). Правила для iptables Вы можете найти в этой заметке. Кстати, порт открывается только для того IP, с которого Вы "постучали" в порт 1500.

Сам по себе конфиг sshd довольно гибко настраивается, так что советую почитать еще и man'ы.

Популярность: 64% [?]




И не забываем подписываться на RSS. ;)

6 комментариев, “Защита SSH сервера”

  1. NanoRobocop |

    AllowUsers admin @ 192.168.0.*

    Разве нужны пробелы возле “собаки”?

  2. Silver Ghost |

    Ну думаю и так понятно, что не надо. Не могу ВП отучить ссылки ставить автоматом. Если пробел не поставить, то он сильно коверкает код и половина статьи не видно тогда. :(

  3. Александр |

    Блин,а я первый раз не поставил…

  4. Юлия |

    Реально понимаю, что человек, практически не знакомый с компьютером может просто не разобраться в этих программах. Хорошо было бы опубликовать подробную статью, с пошаговым описанием. Я вот встречала нечто подобное у Небомжа, но вот хоть убейте меня, сейчас не могу вспомнить, где именно. Эх, жаль…

  5. Silver Ghost |

    Юлия, А что тут не так?

  6. Andr2 |

    Очень хороший пост! Спасибо за проделанную работу!

Комментировать