Навіщо мені потрібен брандмауер, якщо мій сервер добре налаштований?


59

Я адмініструю декілька хмарних серверів (VPS) для компанії, в якій працюю.

Сервери - це мінімальні встановлення ubuntu, які запускають біти стеків LAMP / збору вхідних даних (rsync). Дані великі, але не особисті, фінансові чи щось подібне (тобто не так цікаво)

Зрозуміло, що тут люди назавжди запитують про налаштування брандмауерів тощо.

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

  • ssh на нестандартні порти; відсутність введення пароля, лише відомі ключі ssh від відомих ips для входу тощо
  • https та обмежені оболонки (rssh), як правило, лише з відомих клавіш / ips
  • сервери мінімальні, сучасні та регулярно виправлені
  • використовуйте для моніторингу такі речі, як rkhunter, cfengine, lynis denyhosts тощо

Я маю великий досвід роботи адміністратора unix sys. Я впевнений, що знаю, що роблю в своїх налаштуваннях. Я конфігурую файли / etc. Я ніколи не відчував переконливої ​​необхідності встановлювати такі речі, як брандмауери: iptables тощо.

Відкладіть на мить питання фізичної безпеки VPS.

Q? Я не можу вирішити, чи є я наївним чи покроковим захистом, який може запропонувати fw, варто докладати зусиль для вивчення / встановлення та додаткової складності (пакунки, конфігураційні файли, можлива підтримка тощо) на серверах.

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



Спробуйте спробувати на security.stackexchange.com
AviD

6
Дайте мені вашу IP-адресу, і я покажу, для чого вам потрібен брандмауер.
GregD

Відповіді:


87

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

Брандмауер, налаштований на ЗАМИСЛЕННЯ БУДЬ-ЯКОГО БУДЬ-ЯКОГО, перемикає вас у режим роботи "все заборонено, крім того, що дозволено", і я багато років виявляв, що вони кращі.

Зараз, давши законному користувачеві з законною оболонкою у вашій системі, вона може вирішити запустити якийсь локальний непривілейований демон для доступу веб-запитів до Інтернету, або розпочати обмін файлами на порту 4662, або випадково відкрити слухача за допомогою -g з тунелюванням порту ssh, не розуміючи, що це робить; або встановлення sendmail могло б залишити вас працювати MUA на порту 587, який був неправильно налаштований, незважаючи на всю роботу, яку ви зробили над безпекою MTA Sendail на порт 25; або може статися сто одних речей, які обійдуть вашу ретельну та продуману безпеку просто тому, що їх не було поруч, коли ви ретельно думали, що заборонити.

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

Брандмауер, який за замовчуванням DENY ANY ANY Any - це сисадмін спосіб сказати, що якщо щось нове з’явиться і відкриє мережевий слухач на цьому сервері, ніхто не зможе поговорити з ним, поки я не дам явного дозволу .


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

12
(Боже, якщо я можу трохи припустити, ваш профіль говорить про те, що ви новачок на сервері за замовчуванням. Місцевий етикет полягає в тому, що коли ви задоволені відповіддю, ви приймаєте його, натиснувши на контур галочки, якщо пам'ять служить; Це, звичайно, керує системою репутації. Звичайно, якщо ви це вже знаєте, або ви чекаєте, чи з’являться інші, кращі відповіді, то це теж дуже правильно і правильно, і, будь ласка, ігноруйте мене. Громада просить це лише раз ви повністю задоволені відповіддю на своє запитання, ви приймаєте його.)
MadHatter

+1 @MatHatter - хороший опис того, як брандмауери можуть забезпечувати безпеку за замовчуванням, а не за вибором.
Чашки

Це розрахований ризик. Принаймні, на OpenBSD, що дозволяє pf додавати 35K рядків коду в ядро, в якому можуть бути помилки. З іншого боку, за замовчуванням заперечення - та правильний брандмауер журналу - є найбільшими коштами IDS, які можна придбати. Перестаньте намагатися використовувати Snort для пошуку поганих речей: Кожен раз, коли будь-яка з ваших машин робить те, що ви спеціально не дозволяли, вам слід отримати сповіщення.
Алекс Холст

14

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

Інша справа, що ваші сервери, швидше за все, будуть товарним обладнанням або обладнанням, специфічним для обробки серверного програмного забезпечення, що працює над стандартною серверною ОС (Unix, NT, Linux). Тобто вони не мають спеціалізованого обладнання для ефективної обробки та фільтрації вхідного трафіку. Ви хочете, щоб ваш сервер обробляв усі можливі багатоадресні розсилки, пакет ICMP або сканування портів, що надходили?

Швидше за все, вам потрібно, щоб ваші сервери фізично обробляли запити лише до деяких портів (80, 443, ваш порт ssl, ваш типовий порт Oracle 1521, ваш порт rsync тощо). Так, звичайно, ви налаштували брандмауері програмного забезпечення на своїх сервери лише для прослуховування цих портів. Але ваші NIC все одно будуть нести на собі тягар небажаного трафіку (будь то злоякісний або нормальний у вашій організації.) Якщо ваші NIC забиті, так і мережеві шляхи проходять через ваші сервери (і, можливо, між вашими серверами та внутрішніми клієнтами та підключеннями до інші внутрішні сервери та сервіси.)

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

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

Ви можете оточити N кількість серверів з M кількістю брандмауерів (з N >> M). І ви встановлюєте обладнання для брандмауера, щоб скидати все, що не спрямоване на конкретні порти. Сканування портів, ICMP та інші лайно вичерпані. Потім ви точно налаштовуєте програмний брандмауер на своїх серверах відповідно до їх конкретної функції.

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

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


4

Існує багато атак, до яких ви могли б бути сприйнятливими, якщо у вас немає брандмауера, який здійснює певну перевірку рівня пакетів:

Приклад - пакет ялинок

http://en.wikipedia.org/wiki/Christmas_tree_packet

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

Тільки тому, що у вас немає фінансових чи особистих даних на серверах, це не означає, що ви не постраждаєте. Я впевнений, що ви платите за пропускну здатність або використання процесора або маєте дозовану ставку. Уявіть, що протягом ночі (поки ви спите) хтось підбігає ваш лічильник (я бачив, як це трапляється з провайдерами VOIP Switch, що потрапляють вночі за МІЛІОНИ ХВИЛІВ руху, що їм доведеться подати рахунок за рахунок).

Тож будьте розумні, використовуйте захист, якщо він є, ви НЕ досконалі, як і програмне забезпечення. Це безпечно лише до наступного подвигу. ;)


2

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


1
Хороший момент щодо єдиного конфігурації, менше місця для помилок. Я погоджуюся з тим, що лінь, де це можливо! cfengine дійсно знімає частину цієї складності для мене, частково пом'якшуючи проблему багатьох файлів конфігурацій .... але ... це так само добре, як і правила, які написані звичайно. Таким чином, ви залишаєте більшість конфігураційних файлів у режимі "за замовчуванням" (або поблизу як) як вторинний бар'єр, а брандмауер - як (принаймні, в пластовому сенсі).
Aitch

2
Я спочатку виступав за PoLP, потім відмовився від лінощів. Брандмауери - це не інструменти, які дозволяють власникам бути неохайними. Вам слід зайнятися підтягуванням поверхні атаки, оскільки якщо зловмисник пройде через брандмауер (після цього у вас має бути щось відкрите), вони можуть просто вимкнути iptables. Прикладіть свою лінь туди, де їй належить: зробіть систему якомога більш неохайною, тому вам не доведеться її довго виправляти.
Марцін

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

1

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

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


Крім того, це все одно налаштовує брандмауер - це просто трапляється на кожному сервері.
mfinni

1

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

(Намагайтеся не запускати брандмауер на тій же ОС, що і ваші сервери, оскільки в іншому випадку єдина помилка в ОС .... Я вважаю, що всі версії Unix є однією і тією ж ОС, оскільки у них так багато спільного)


Відмінне, що змішання платформ (ОС та обладнання) є ключовим.
DutchUncle

1

Брандмауери спеціалізуються на маніпулюванні трафіком. Вони роблять це швидко і мають ресурси. І ви не витрачаєте ресурси сервера для фільтрації трафіку (дисковий io / proc час / тощо). Ви повинні налаштувати деяку безпеку в середовищі сервера, але для всіх перевірок і сканування вірусів і так далі слід робити спеціалізовані сервери.


-2

Я б занепокоєний тим, що якщо ви коли-небудь зламаєтесь і не матимете брандмауер на місці. Хакери можуть відкрити інші порти на ваших серверах. Крім того, якщо консультант буде залучений, щоб здійснити чистку та аудит, перше, що вони скажуть: "ЩО?!?! У вас немає брандмауера!" Тоді вас могли спалити.


-1 Трохи сенсаціоналістична відповідь + не дуже конструктивна.
Чашки

2
Якщо сервер порушений, то брандмауер не обов'язково допоможе, коли bozo, який зламався, просто відключає його! * відмова від відповідальності. У цьому питанні було вказано використання iptables, а не окремого апаратного брандмауера.
Брайан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.