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

Сегодня в комментарии к одной из записей написали мне о том, что весьма неплохой способ защиты 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’ы.

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

12 комментариев(я)

  • 29.06.2008 10:13, NanoRobocop сказал:

    AllowUsers admin @ 192.168.0.*

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

    • 29.06.2008 13:54, Silver Ghost сказал:

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

      • 07.07.2008 08:49, Юлия сказал:

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

        • 07.07.2008 10:39, Silver Ghost сказал:

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

          • 31.08.2008 16:22, Vanyla сказал:

            Это написано на основе личного опыта?

            • 31.08.2008 16:25, Patrick сказал:

              Самый короткий пост, который я встретил в блогах. Но в нем заключена соль — действительно лучше молчать чем писать всякую лажу

              • 01.09.2008 14:56, Silver Ghost сказал:

                Vanyla, именно так. Практически все в моем блоге на основе личного опыта.

                Patrick, спасибо.

                • 22.09.2008 21:11, Piter_Reader сказал:

                  Спасибочки за написаное! Очень ценно для написание курсовой.

                  • 05.01.2009 19:55, Вирусное СЕО сказал:

                    Silver Ghost,
                    Patrick — это, имхо, спам 😀

                    А вообще, спасибо за статью! Это азы, но уверен, что очень многим это будет полезно к прочтению.

                    (Обязательно)
                    (Обязательно, не публикуется)

                    "АБЫРВАЛГ!", сказал линукс после руссификации.
                    Яндекс.Метрика beget