Чи зміна номера порту за замовчуванням насправді підвищує безпеку?


69

Я бачив поради, які повинні використовувати різні номери портів для приватних додатків (наприклад, інтранет, приватна база даних, все, що не використовує жоден сторонній чоловік).

Я не зовсім впевнений, що може покращити безпеку, оскільки

  1. Порти сканерів існують
  2. Якщо програма є вразливою, вона залишається такою, незалежно від її номера порту.

Я щось пропустив чи відповів на власне запитання?


30
Одне, що я зробив, - це використовувати певні порти за замовчуванням (наприклад, порт SSH 22) в якості горщиків для меду. Кожен, хто намагається підключитися до цих портів, повністю блокується протягом xпевного часу. Він виявився ефективним проти сканування портів. Звичайно, це лише один інструмент у панелі інструментів безпеки.
Белмін Фернандес

Загальне питання щодо безпеки через неясність задається тут: security.stackexchange.com/questions/2430/…
Tony Meyer,

ну це, можливо, перешкода для "сценаріїв дітей"
Лукаш Мадон

1
@BelminFernandez, "один інструмент у панелі інструментів безпеки" ? Ні, це для зменшення навантаження сервера (продуктивності) і не має нічого спільного з безпекою, окрім простої ілюзії. З точки зору безпеки, це абсолютно непотрібно, якщо сервер вже сильний, і якщо сервер вразливий, він не робить його більш захищеним.
Pacerier

@Pacerier, погодився, що зусилля та фокус слід зосередити на впровадженні більш твердих практик безпеки. Однак немає жодної причини, чому ви не можете зробити і те, і інше.
Белмін Фернандес

Відповіді:


68

Це не забезпечує серйозної оборони від цілеспрямованої атаки. Якщо ваш сервер орієнтований, то, як ви кажете, він порту сканує вас і дізнається, де ваші двері.

Однак переміщення SSH з порту за замовчуванням 22 буде стримувати деякі нецільові та аматорські сценарії дитячих атак. Це відносно непідготовлені користувачі, які використовують сценарії для сканування портів великих блоків IP-адрес одночасно, щоб побачити, чи відкритий порт 22, і коли вони знайдуть його, вони розпочнуть якусь атаку на нього (груба сила, атака словника, тощо). Якщо ваша машина знаходиться в тому блоці сканування IP-адрес, і він не працює SSH на порту 22, він не реагує і тому не відображатиметься у списку машин для атаки цього сценарію. Ерго, існує деяка безпека низького рівня, але лише для цього типу умовно-патогенних атак.

Наприклад, якщо у вас є час - зануріться на свій сервер (припустимо, що SSH знаходиться на порту 22) і витягніть всі унікальні невдалі спроби SSH, які ви можете. Потім перемістіть SSH з цього порту, зачекайте деякий час і знову перейдіть до дайвінгу. Ви, безсумнівно, знайдете менше атак.

Раніше я запускав Fail2Ban на загальнодоступному веб-сервері, і це було дійсно, дуже очевидно, коли я перемістив SSH з порту 22. Він вирізав опортуністичні атаки на порядок.


3
Домовились. Я побачив дуже подібне падіння, коли експериментував із переміщенням SSH до нестандартного порту. На щастя, вимкнено авторизацію пароля, це справді не проблема.
EEAA

3
Найкраща відповідь тут поки що. Все зводиться до того, хто атакує. Я колись допомагав адміністратору системи, яка потрапила під час нульової атаки від скануючого малюка. Імовірно, в MS-RDP, оскільки у нас не було IIS, що піддавався брандмауером. Наш хост не дозволив би нам змінити порт RDP (керований хостинг), тому нам в основному довелося сидіти там, поки вони працювали над новою схемою для їх фільтрації IDS / IPS. Хоча це може допомогти не так сильно для більш встановлених серверів, як SSH, які, мабуть, мають менше проблем із безпекою, ніж деякі продукти MS.
Метт Молнар

9
Однозначно згоден. Безпека стосується шарів, і чим більше у вас є, тим безпечніше ви. Це може бути слабкий шар, але все-таки шар. Поки на нього не покладаються виключно, він може лише додати безпеку.
Пол Крун

1
Ще одним моментом у переміщенні SSH з порту 22 є те, що велика кількість SSH намагається плюс послуги, оскільки Fail2Ban часом може зайняти цінний час процесора. Це може бути незначним у верхній частині обладнання, але деякі старі сервери можуть відчувати сплески процесора. Його час, пам'ять і пропускна здатність, яку ви можете використовувати для інших речей.
artifex

Я зробив те ж саме з RDP на сервері 2003 - це значно скоротило кількість невдалих записів аутентифікації в переглядачі подій.
Моше

43

Дуже корисно зберегти журнали в чистоті.

Якщо ви побачите невдалі спроби запуску sshd на порту 33201, ви можете сміливо припустити, що особа націлена на вас, і у вас є можливість вжити відповідних заходів, якщо ви цього хочете. Наприклад, звернутися до органів влади, розслідувати, хто може бути цією особою ( шляхом перехресних посилань на IP-адреси ваших зареєстрованих користувачів або що завгодно) тощо.

Якщо ви використовуєте порт за замовчуванням, тоді буде неможливо дізнатися, чи хтось на вас нападає, чи це просто випадкові ідіоти, які роблять випадкові сканування.


8
чудова відмінність
ZJR

3
+1 Це найкращий аргумент про зміну номерів портів, про які я коли-небудь чув, і поки що єдине, що могло б зробити це
squillman

2
+1 Це чудовий момент. Націлені загрози набагато небезпечніші, ніж випадкові зонди (малюки сценарію просто переходять на більш прості цілі, якщо у вас є гідна безпека). Націлений зловмисник може знати набагато більше про конкретні вразливості або навіть шаблони паролів. Добре, щоб можна було розпізнати ці напади поза роєм спаму в порту 22
Стівен Т. Снайдер

1
Це помилково. Я бачив принаймні один сервер, який скасовується через сканування на нестандартному порті SSH. Немає причин, чому зловмисник не зможе сканувати й інші порти.
Свен Слоотвег

@SvenSlootweg, Правда, особливо з комп’ютерами, що стають швидшими та дешевшими, сканування, яке займає 65535 разів довше, вже не набагато більше.
Pacerier

28

Ні, це не так. Не зовсім. Термін для цього - " Захист від непрозорості", і це не є надійною практикою. Ви правильно в обох своїх пунктах.

Безпека з боку невідповідності в кращому випадку стримує випадкові спроби, які просто намагаються шукати порти за замовчуванням, знаючи, що в якийсь момент вони знайдуть когось, хто залишив вхідні двері відкритими. Однак якщо є якась серйозна загроза, що перед вами буде зміна дорогого порту, то принаймні сповільнить початкову атаку вниз, але лише настільки незначно через те, що ви вже вказали.

Зробіть собі прихильність і залиште свої порти налаштованими належним чином, але вживайте належних заходів безпеки, щоб заблокувати їх належним брандмауером, авторизаціями, ACL тощо.


17
Проекція (сильних) паролів і шифрування в ідею безпеки через неясність - це трохи розтягнення, на мою власну скромну думку ...
squillman

5
Використовуючи лише 8 символів із усім діапазоном буквених та числових символів (і навіть не допускаючи спеціальних символів), кількість можливих комбінацій становить 62 ^ 8 (218,340,105,584,896). 65535 навіть не в тому самому Всесвіті, як це, навіть коли використовують детектори сканування портів. Зауважте, я знижую слабкі паролі.
squillman

3
Знову ж таки , "це не так, якби нестандартний порт - це весь апарат безпеки". Кожна трішки допомагає. Це 10-секундний твік, який, якщо нічого іншого, не зупинить показ вашого сервера на когось, хто шукає SSH, щоб почати стукати у двері.
ceejayoz

8
Мех. Відслідковувати нестандартні порти не варто в моїй книзі. Я погоджуся не погодитися з ким-небудь ... Додавання подальших контрзаходів за зміною порту, безумовно, є частиною рівняння, і я набагато краще залишити речі до тих частин головоломки.
squillman

6
З того, що я бачив, нестандартні порти стали досить стандартними. 2222 для ssh, 1080, 8080, 81, 82, 8088 для HTTP. В іншому випадку він стає занадто темним і вам цікаво , що сервіс на порту 7201 і чому ви не можете підключитися до SSH на 7102.
BillThor

13

Це незначний рівень незрозумілості, але не суттєвий нахил швидкості на дорозі до зламу. Це більш складна конфігурація для довгострокової підтримки, оскільки все, що спілкується з цією службою, повинно бути розказано про різні порти.

Колись це було гарною ідеєю, щоб уникнути мережевих черв’яків, оскільки вони прагнули сканувати лише один порт. Однак час хробака, що швидко розмножується, минув.


2
+1 для більш важкої проблеми конфігурації та підтримки. Ви змушуєте витрачати час, який можна витратити на захист дверей (замість того, щоб шукати, де у вашому будинку ви її поставили).
Macke

12

Як зазначали інші, зміна номера порту не пропонує вам великої безпеки.

Хочу додати, що зміна номера порту насправді може завдати шкоди вашій безпеці.

Уявіть наступний спрощений сценарій. Зломщик сканує 100 господарів. У дев'яносто дев'яти з цих хостів є доступні сервіси на цих стандартних портах:

Port    Service
22      SSH
80      HTTP
443     HTTPS

Але тоді є один хост, який виділяється з натовпу, оскільки власник системи намагався придушити свої послуги.

Port    Service
2222    SSH
10080   HTTP
10443   HTTPS

Тепер це може бути цікавим злому, оскільки сканування пропонує дві речі:

  1. Власник хоста намагається приховати номери портів у своїй системі. Можливо, власник вважає, що в системі є щось цінне. Це може бути не працює система млини.
  2. Вони обрали неправильний метод для захисту своєї системи. Адміністратор допустив помилку, повіривши в затуманення портів, що вказує на те, що вони можуть бути недосвідченим адміністратором. Можливо, вони використовували обфускування портів замість належного брандмауера або належного IDS. Можливо, вони також допустили інші помилки безпеки і можуть бути вразливими до додаткових атак безпеки. Давайте зараз трохи пробуємо, чи не так?

Якщо ви були зломщиком, ви вирішили подивитися на одного з 99 хостів, що працюють на стандартних портах, або на цей хост, який використовує обфускування портів?


14
Я б дивився на 99 господарів, якщо досвід мене не навчив інакше. Хтось, хто пересуває порти навколо, напевно, має більше шансів виправити і захистити, якщо ви запитаєте мене.
ceejayoz

4
Я б дивився на 1 хоста, який виділявся, з випадковою можливістю, що якийсь PFY подумав: "Якщо я зміню номери портів, я НЕВЕРШЕН!" але для кореневого пароля встановлено "пароль".
Андрій

3
@Ceejayoz, повністю згоден. Я запускаю SSH на 2222, не має значення безпеки, але скорочує шлях для дітей із сценарію. Я вважаю, що вони, швидше за все, ігнорують мене, намагалися змінити порт, ймовірно, вжили й інших заходів. Очевидно, це не всі налаштування за замовчуванням ...
Chris S

1
Я розумію, що не всі згодні з моєю думкою. Але, на мій досвід, було багато власників системи, які використовували б обфускування портів, але вони помилялися, як не оновлюючи OpenSSH після викриття критичних уразливостей безпеки, або використовували б незашифровані SSH ключі від загальної університетської системи тощо. Деякі з ці системи були соковитими мішенями.
Стефан Ласєвський

3
За розширенням: переїхавши до нестандартного порту, ви більше відштовхуєте дітей від сценарію, але також більше шансів заінтригувати досвідченого хакера. Хто задає питання: на кого ти більше боїшся, щоб не націлився?
tardate

9

Я збираюся йти проти загальної тенденції, принаймні частково.

Самостійно перехід на інший порт може отримати за пару секунд під час пошуку, а отже, нічого не отримати в реальному вираженні. Однак, якщо ви поєднаєте використання нестандартних портів разом із антипортовими сканерами, це може призвести до справжнього підвищення безпеки.

Ось така ситуація стосується моїх систем: Недержавні послуги працюють на нестандартних портах. Будь-яка спроба підключення до більш ніж двох портів з однієї адреси джерела, незалежно від того, успішна чи ні, протягом визначеного періоду часу призводить до скидання всього трафіку з цього джерела.

Для перемоги над цією системою знадобиться або удача (потрапляння на правий порт перед тим, як заблокувати), або розподілене сканування, яке викликає інші заходи, або дуже тривалий час, який також можна було б помітити і діяти.


Поєднайте це з думкою Андреаса Боніні про націлені атаки, і це вагомий аргумент для використання альтернативних портів.
JivanAmara

5

На мою думку, переміщення порту, на якому працює програма, зовсім не підвищує безпеку - просто з тієї причини, що та сама програма працює (з тими ж сильними і слабкими сторонами) просто на іншому порту. Якщо у вашої програми є слабкість при переміщенні порту, який він слухає на інший порт, це не усуває слабкість. Гірше, що він активно спонукає вас НЕ подолати слабкість, тому що тепер його не забивають постійно автоматизованим скануванням. У ньому прихована реальна проблема - проблема, яка насправді повинна бути вирішена.

Деякі приклади:

  • "Очищає журнали" - тоді у вас виникає проблема з тим, як ви обробляєте свої журнали.
  • "Це зменшує накладні витрати на з'єднання" - Накладні витрати або незначні (як і більшість скануючих), або вам потрібна якась фільтрація / Пом'якшення відмови від надання послуг, здійснене вгору за течією
  • "Це зменшує експозицію програми" - Якщо ваша програма не може протистояти автоматичному скануванню та експлуатації, то у вашій програмі є серйозні недоліки безпеки, які потрібно усунути (тобто тримати її виправленими!).

Справжня проблема адміністративна: люди очікують, що SSH буде в 22, MSSQL в 1433 і так далі. Переміщення їх ще один складний рівень і необхідна документація. Дуже прикро сідати за мережу і доводиться використовувати nmap, щоб зрозуміти, куди перемістилися речі. Доповнення до безпеки є ефемерними в кращому випадку, і недоліки не суттєві. Не робіть цього. Виправте справжню проблему.


2

Ви впевнені, що це не принесе великої безпеки (оскільки діапазон портів серверів TCP має лише 16 біт ентропії), але ви можете зробити це з двох інших причин:

  • як вже говорили інші: зловмисники, які намагаються здійснити багато входів, можуть захаращувати ваші журналові файли (навіть якщо атаки словника з одного IP-адреси можуть бути заблоковані програмою fail2ban);
  • SSH потрібна криптографія відкритого ключа для обміну секретними ключами для створення захищеного тунелю (це дорога операція, яку в нормальних умовах робити не потрібно дуже часто); повторні з'єднання SSH можуть витрачати енергію процесора .

Зауваження: Я не кажу, що вам слід змінити порт сервера. Я просто описую розумні причини (IMO), щоб змінити номер порту.

Якщо ви це зробите, я думаю, що вам потрібно дати зрозуміти кожному другому адміністратору чи користувачеві, що це не слід вважати функцією захисту, а також те, що використовуваний номер порту навіть не є секретом, і що описуйте це як функцію захисту що приносить реальну безпеку, не вважається прийнятною поведінкою.


Файли журналу можуть бути легко захаращені відповідними фільтрами. Якщо ви говорите про продуктивність сервера через скорочення журналів, то ми вже не говоримо про безпеку. Виступ - це зовсім інша тема.
Pacerier

Не тоді, коли комп'ютер стає непридатним через надмірне використання диска.
curiousguy

Так, це проблема з продуктивністю. Продуктивність, безумовно, також важлива, але саме ця тема спеціально обговорює лише питання безпеки. (Для цілей цієї теми, просто уявіть, що ви розміру Google, і Google насправді хоче ці дані для аналізу та / або продажу.)
Pacerier

1

Я бачу одну гіпотетичну ситуацію, коли потенційна користь для безпеки при запуску вашого sshd на альтернативному порту. Це було б у сценарії, коли виявлено тривіально використану віддалену вразливість у програмному забезпеченні sshd, яке ви працюєте. У такому випадку запуск вашого sshd на альтернативному порту може дати вам лише додатковий час, щоб не бути випадковою цільовою адресою.

Сам я запускаю sshd на альтернативному порту на своїх приватних машинах, але це головним чином як зручність утримувати безлад у /var/log/auth.log. У багатокористувацькій системі я дійсно не вважаю представлену вище невелику гіпотетичну перевагу безпеки достатньою причиною того, що додаткові клопоти, спричинені тим, що sshd не знайдеться у стандартній частині.


Сценарій буде дійсним лише в тому випадку, якщо всі адміністратори абсолютно не вільно користуються цим «додатковим часом», коли-небудь ходити на обід та інше
Pacerier

1

Це трохи підвищує безпеку. У тому, що зловмисник, знайшовши відкритий порт, тепер повинен розібратися, що працює в порту. Не маючи доступу до ваших конфігураційних файлів (поки :-)), він не має уявлення, чи працює порт 12345 http, sshd або хтось із тисячі інших загальних служб, тому їм потрібно зробити додаткову роботу, щоб з’ясувати, що працює, перш ніж вони можуть серйозно атакувати його.

Крім того, як вказував інший плакат, тоді як спроби увійти в порт 22 можуть бути безглуздими скриптами-дітками, зомбі-троянами або навіть справжніми користувачами, які неправильно ввели IP-адресу. Спроба увійти в порт 12345 майже впевнена, що це справжній користувач або серйозний зловмисник.

Іншою стратегією є наявність декількох портів «медоловки». Оскільки жоден справжній користувач не знає про ці номери портів, то будь-яка спроба підключення повинна вважатися шкідливою, і ви можете автоматично блокувати / повідомляти про IP-адресу, що порушує право.

Існує особливий випадок, коли використання іншого номера порту обов'язково зробить вашу систему більш захищеною. Якщо у вашій мережі працює публічна служба, така як веб-сервер, але також використовується веб-сервер лише для внутрішнього використання, ви можете абсолютно заблокувати будь-який зовнішній доступ, запустивши інший номер порту та заблокувавши будь-який зовнішній доступ з цього порту.


Збільшення рівня безпеки на 0,1% повинно бути зважене на відповідне зниження безпеки , що може призвести до загальної чистої втрати безпеки в залежності від випадку використання та контексту.
Pacerier

0

Не сама по собі. Однак, не використовуючи порт за замовчуванням для певної програми (скажімо, SQL Server), в основному змусить ваш зловмисник сканувати ваші порти; потім ця поведінка може бути виявлена ​​вашим брандмауером або іншими показниками моніторингу, а IP-адреса зловмисника заблокована. Крім того, середній "скрипт дитячий" швидше буде відшкодований, коли простий інструмент або командний скрипт, який вони використовують, не знайде екземпляр сервера SQL на вашій машині (оскільки інструмент перевіряє лише порт за замовчуванням).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.