Безпечно користуватися високими номерами портів? (re: затемнення веб-служб)


9

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

Як компроміс, чи було б краще використовувати дуже великі порти? (наприклад, п'ять цифр до 65531)

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

Це правда?

Чи є кращі способи захисту веб-серверів? (тобто веб-інструкції для додатків)


Ні, це неправда. Сучасні (навіть настільні) багатоядерні процесорні машини з широкосмуговим доступом можуть сканувати всі 65535 порти за секунди. І навіть якщо зловмисник вирішив розмістити їх на дві секунди, щоб зірвати ворота DoS, кого це хвилює, ти залишаєш свою систему на більш ніж на день, правда? Як вважають інші нижче, стара сенсація полягає в тому, що "безпека через неясність" в цифровому світі фактично марна.
мсанфорд

Відповіді:


9

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

У це багато хто вірить. Я не.

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

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

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

Вперед і тестуйте це самостійно за допомогою NMAP . Запустіть сканування nmap на порти 1-10 000 і знайдіть HTTP-сервер, а порівняйте зі скануванням, яке сканує всі порти 1-65, xxx. Ви побачите, що різниця становить, як правило, 3-10 хвилин. Якщо я роблю детальне сканування, використовуючи щось на кшталт Нессу, різниця іноді становить 20-60 хвилин.

Хороший крекер - терплячий зломщик. Вони будуть чекати.


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

2
+1 "Хороший зломщик - терплячий злом. Вони будуть чекати".
msanford

@ wag2639 Ви насправді нічого не робите, змінивши номер порту служби, але змусивши малюка сценарію знайти трохи кращий сценарій. Військовий набір блоку IP-адрес і ТАКОЖ портів сканування кожного порту є тривіальним.
msanford

Якщо хакер рухається за певною ціллю, вони, можливо, зможуть чекати 20 - 60 хвилин, скануючи високі номери портів. Однак якщо вони намагаються сканувати сотні чи тисячі IP-адрес, щоб знайти вразливі системи, вони не скануватимуть високі порти. Крім того, вони повинні знати, що існує система, перш ніж вони можуть почати націлювати її. Якщо брандмауер виконує свою роботу, то система в основному непомітна, поки вони не натрапляють на відкритий порт.
користувач1751825

3

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

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


Чи є альтернативи використанню повнорозмірної VPN тоді? Можливо, якийсь зворотний веб-проксі, який має додатковий захист для входу / пароля? (Кальмари цього не роблять)
SofaKng

@sofakng: вас може зацікавити обгортка SSL на зразок Stunnel: stunnel.org
Maxwell

3

Ви також можете використовувати тунель ssh, якщо ви використовуєте Linux на обох кінцях:

ssh -f -N -L 9090:localhost:9090 user@remote-host

Наприклад, саме це я використовую для переадресації порту 9090 на віддалений хост до мого локального порту 9090 cherokee-admin, і я використовую подібні установки для інших веб-інтерфейсів. Ви можете захистити програми таким чином, вказавши в конфігурації програми, що вони працюють лише в localhost, тобто в 127.0.0.1. Таким чином вони недоступні ззовні, але ви можете переслати їх ssh. Перевірте man sshінші варіанти за допомогою переадресації портів (включаючи X, які можуть повністю вирішити вашу проблему.)

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


1

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

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


Я використовую pfsense, а деякі мої веб-сервіси мають вбудовану підтримку SSL (HTTPS). Чи все ж краще використовувати оглушення? Чи використовує stunnel рівень «автентифікації на брандмауері»?
SofaKng

1
Як зробити "автентифікацію на брандмауері"?
wag2639

Я не знаю, чи має pfsense таку функціональність, але на маршрутизаторах Junipers ви можете використовувати місцевих користувачів (навіть RADIUS), щоб надати доступ до перекладеного HTTP-трафіку. Щодо Stunnel, ви можете використовувати взаємний auth із сертифікатами, stunnel буде інкапсулювати трафік HTTP за допомогою SSL та обробляти автентифікацію.
Максвелл
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.