Наскільки ризикованим є запуск домашнього сервера, захищеного за SSH?
Якщо вам потрібно відкрити щось у вашій домашній мережі до більшого інтернету, це тунель SSH, достатньо безпечний для цього?
Сьогоднішня сесія запитань та відповідей приходить до нас люб'язно SuperUser - підрозділ Stack Exchange, групування веб-сайтів із запитаннями та відповідями на рівні спільноти..
Питання
Читач SuperUser Альфред М. хоче знати, чи знаходиться він на правильному шляху з безпекою підключення:
Нещодавно я створив невеликий сервер з комп'ютером з низьким рівнем доступу, який працює під управлінням debian з метою використання його як особистого сховища git. Я увімкнув ssh і був дуже здивований швидкістю, з якою він страждав від нападу грубої сили тощо. Потім я прочитав, що це досить поширене явище і дізнався про основні заходи безпеки, які можна відвернути від цих атак (багато запитань і дублікатів на сервері припускаються з ним, див., Наприклад, цей або цей).
Але тепер мені цікаво, якщо все це варто зусиль. Я вирішив створити свій власний сервер, головним чином, для задоволення: я міг би покладатися на рішення третіх сторін, такі як ті, що пропонуються gitbucket.org, bettercodes.org і т.д. достатньо часу, щоб присвятити йому стати експертом і бути майже впевненим, що я вжив правильних заходів профілактики.
Щоб вирішити, чи буду я продовжувати грати з цим іграшковим проектом, я хотів би знати, що я дійсно ризикую. Наприклад, в якій мірі загрожують також інші комп'ютери, підключені до моєї мережі? Деякі з цих комп'ютерів використовуються людьми з ще меншими знаннями, ніж мої Windows.
Яка ймовірність того, що я потрапляю в справжню неприємність, якщо я дотримуваюся основних рекомендацій, таких як надійний пароль, відключений кореневий доступ для ssh, нестандартний порт для ssh і, можливо, вимкнення пароля і використання правил fail2ban, denyhosts або iptables?
Іншими словами, чи є деякі великі погані вовки, яких я повинен боятися, або це все в основному про вигадування скриптових дітей?
Якщо Альфред дотримується рішень третіх сторін, чи це безпечне рішення DIY?
Відповідь
Співробітник SuperUser TheFiddlerWins переконує Альфреда, що це цілком безпечно:
IMO SSH - це одне з найбезпечніших речей, які потрібно прослухати на відкритому інтернеті. Якщо ви дійсно стурбовані, що він слухає на нестандартному високому кінці порт. Я б ще мав міжмережевий брандмауер між пристроями та справжнім Інтернетом, і просто використовую перенаправлення портів для SSH, але це застереження щодо інших служб. Сам SSH - це досить тверде тіло.
I є люди іноді вдарили по домашньому серверу SSH (відкриті для Time Warner Cable). Ніколи не мав реального впливу.
Ще один учасник, Стефан, підкреслює, наскільки легко захистити SSH:
Налаштування системи аутентифікації з відкритим ключем з SSH дійсно тривіальне і займає приблизно 5 хвилин.
Якщо ви змусите все SSH з'єднання використовувати його, то це зробить вашу систему майже так само стійкою, як ви можете сподіватися, не вкладаючи LOT в інфраструктуру безпеки. Чесно кажучи, це настільки просто і ефективно (якщо у вас немає 200 облікових записів - то це стає брудним), що невикористання його має бути публічним злочином.
Нарешті, Крейг Уотсон пропонує ще один відгук, щоб мінімізувати спроби вторгнення:
Я також запускаю персональний git-сервер, який відкритий у світі на SSH, і у мене також є ті самі проблеми, як і ви, так що я можу співчувати вашій ситуації.
TheFiddlerWins вже розглядає основні наслідки безпеки відкритих SSH на загальнодоступному IP, але найкращим інструментом IMO у відповідь на спроби грубої сили є Fail2Ban - програмне забезпечення, яке контролює файли журналу аутентифікації, виявляє спроби проникнення та додає правила брандмауера до місцеві машини
iptables
брандмауер. Можна налаштувати як кількість спроб до заборони, так і тривалість заборони (моє значення за умовчанням - 10 днів).
Маєте щось додати до пояснення? Звучить в коментарях. Хочете прочитати більше відповідей від інших технологічних користувачів Stack Exchange? Перегляньте повний потік обговорення тут.