Когда вам нужно открыть что-то в своей домашней сети для большого интернета, является ли туннель SSH достаточно безопасным способом сделать это?
Сегодняшняя сессия вопросов и ответов приходит к нам благодаря SuperUser – подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Вопрос
Читатель SuperUser Альфред М. хочет знать, находится ли он на правильном пути с безопасностью соединения:
Недавно я установил небольшой сервер с компьютером низкого уровня, на котором запущен Debian, с целью использования его в качестве личного репозитория git. Я включил ssh и был довольно удивлен быстротой, с которой он пострадал от атак грубой силы и тому подобного. Затем я прочитал, что это довольно часто, и узнал об основных мерах безопасности для предотвращения этих атак (с ними связано множество вопросов и дубликатов на сервере, см., Например, этот или этот).
Но теперь мне интересно, стоит ли все это усилий. Я решил настроить свой собственный сервер в основном для развлечения: я мог просто положиться на сторонние решения, такие как предлагаемые gitbucket.org, bettercodes.org и т. Д. В то время как часть забавы связана с изучением безопасности в Интернете, я не достаточно времени, чтобы посвятить его тому, чтобы стать экспертом и быть почти уверенным, что я принял правильные профилактические меры.
Чтобы решить, буду ли я продолжать играть с этим игрушечным проектом, я хотел бы знать, чем я действительно рискую при этом. Например, в какой степени другие компьютеры, подключенные к моей сети, также представляют угрозу? Некоторые из этих компьютеров используются людьми, обладающими даже меньшими знаниями, чем мой, использующий Windows.
Какова вероятность того, что у меня возникнут реальные проблемы, если я буду следовать основным рекомендациям, таким как надежный пароль, отключенный доступ с правами root для ssh, нестандартный порт для ssh и, возможно, отключение входа с паролем и использование одного из правил fail2ban, denyhosts или iptables?
Другими словами, есть ли какие-то большие плохие волки, которых я должен бояться, или это все в основном из-за того, что они прогоняют сценаристов?
Должен ли Альфред придерживаться сторонних решений, или его решение «сделай сам» безопасно?
Ответ
Участник SuperUser TheFiddlerWins заверяет Альфреда, что это довольно безопасно:
IMO SSH – одна из самых безопасных вещей, которую можно слушать в открытом Интернете. Если вы действительно обеспокоены, прослушайте его на нестандартном порте высокого класса. У меня все еще есть межсетевой экран (на уровне устройства) между вашим компьютером и Интернетом, и я просто использую переадресацию портов для SSH, но это предосторожность против других сервисов. Сам SSH довольно чертовски тверд.
У меня было , когда люди время от времени заходили на мой домашний SSH-сервер (открытый для Time Warner Cable). Никогда не имел реального воздействия.
Другой участник, Стефан, подчеркивает, насколько легко обеспечить дополнительную безопасность SSH:
Настройка системы аутентификации с открытым ключом с помощью SSH очень проста и занимает около 5 минут.
Если вы заставите все соединения SSH использовать его, то это сделает вашу систему настолько же устойчивой, насколько вы можете надеяться, не вкладывая ЛОТ в инфраструктуру безопасности. Откровенно говоря, это настолько просто и эффективно (если у вас нет 200 учетных записей – тогда это становится грязным), что не использовать его должно быть публичным преступлением.
Наконец, Крейг Уотсон предлагает еще один совет, чтобы минимизировать попытки вторжения:
Я также использую персональный сервер git, открытый для всего мира по SSH, и у меня есть те же проблемы с перебором, что и у вас, поэтому я могу сочувствовать вашей ситуации.
TheFiddlerWins уже рассматривает основные последствия для безопасности, связанные с открытием SSH на общедоступном IP-адресе, но лучшим средством IMO в ответ на попытки перебора является Fail2Ban – программное обеспечение, которое отслеживает ваши файлы журнала проверки подлинности, обнаруживает попытки вторжения и добавляет правила брандмауэра в локальный iptables
брандмауэр компьютера. Вы можете настроить как количество попыток до бана, так и продолжительность бана (по умолчанию 10 дней).
Есть что добавить к объяснению? Звук выключен в комментариях. Хотите узнать больше ответов от других опытных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь.