Перевищення безпеки веб-сервера?


9

Я робив "великі" дослідження щодо забезпечення веб-сервера linux. На додаток до того, що вважається "основою" (видалення невикористаних служб, загартовування ssh, iptables тощо), чи розумно включати анти-руткіти (Tripwire) та антивірус (ClamAV)? Це просто надмірність для веб-сервера? Я знаю, що це дуже розпливчасте питання, але мені цікаво думок інших.

Моє майбутнє середовище: - ubuntu 10.04 - fail2ban - nginx 0.8.x - php 5.3.x (suhosin, apc, memcached) - mongodb 1.6.x

Можливі програми: - веб-сервіси - веб-додатки з завантаженнями користувачів (зображення, pdfs тощо) - типові веб-сайти (форми тощо)

Якщо у вас є інші поради, не соромтесь додавати!

Дякую

Відповіді:


8

Для загальнодоступного сервера я б сказав, що встановити щось на зразок tripwire - це не надмірно.

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

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

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


2
Не забувайте LMD (Linux Malware Detection), rfxn.com/projects/linux-malware-detect - це сканування типу зловмисного програмного забезпечення, яке заражає веб-програми (HTML, PHP, зміни файлів JavaScript) для того, щоб використовувати ваш сайт для SEO спам, фішинг, зараження комп'ютерів відвідувачів тощо
RichVel

3

Ні, ти не зайшов досить далеко.

1) Вам потрібен брандмауер веб-додатків на зразок mod_security і переконайтеся, що він налаштований для блокування атак, а не просто їх реєстрації.

2) Заблокуйте php за допомогою phpsecinfo .

3) Заблокуйте обліковий запис MySQL веб-програми, переконайтеся, що у вашій програмі немає FILEпривілеїв - це, безумовно, найнебезпечніший в MySQL.

4) Брандмауер відключений від усіх UDP і всіх TCP, які вам не потрібні. Подумайте про використання стукання порту для ssh. Невиконання заборони не так добре, як отримання нульових спроб.


1) У мене було враження, що ModSecurity може бути упакований тільки в Apache (я використовую nginx). Але, мабуть, це може працювати автономно? Мені доведеться розібратися в цьому спасибі! Я стежив за calomel.org/nginx.html за деякими функціями.
Аарон

4) Я використовую iptables для блокування всього вхідного та вихідного трафіку, якщо це не мій ssh ​​порт, https або https (вхідний, вихідний). Я відкрию більше, коли йду разом. Хоч стукіт порту є цікавим доповненням для ssh! Знову дякую!.
Аарон

@Aaron Я не впевнений, чому б ти використовував nginx. Ви можете використовувати apache + mod_security як проксі-сервер із будь-яким дивним та безхарактерним httpd, який ви вимагаєте використовувати.
Грак

2

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

Але те, що багато посібників із безпеки веб-сервера не згадує, - це те, що ви повинні ввімкнути noexec на своєму / tmp-розділі в / etc / fstab. Якщо ви пропонуєте хостинг для громадськості, дуже багато людей встановлюватимуть незахищені веб-додатки без вашого відома (і не матимуть самих знань, щоб постійно оновлювати свої програми), і ви, як правило, назавжди виганяєте ці помилки. Якщо ви переконаєтесь, що єдине місце, на яке зловмисник може зберегти програмне забезпечення, - це домашній каталог клієнта та каталог / tmp, то зловмисник ризикує показати вам, де вони впадають, якщо вони не можуть використовувати каталог / tmp. Вони не люблять це робити.

Це вирішило переважну більшість проблем із безпекою на нашому сервері веб-хостингу.


2

"Ласкаво просимо на борт! На борту нашого нового авіалайнера ви можете насолоджуватися рестораном, кінотеатром, тренажерним залом, сауною та басейном. Тепер пристебніть свої ремені безпеки, наш капітан спробує дістати все це лайно у повітря".

  1. mod_security - це біль як для вас, так і для сервера. Це голодні ресурси, і його правила потребують серйозного обслуговування, і це буде нескінченним завданням. І ні, це не працює самостійно або з Nginx. Якщо вам здається, що вам це справді потрібно, встановіть окремий проксі-сервер (Apache, mod_proxy, mod_security). Він також працює як DMZ, ваші справжні сервери можуть бути повністю закриті у зовнішній світ, і якщо проксі-сервер порушений, все одно нічого немає.

  2. ClamAV теж дуже важкий, якщо бігти як демон. Краще періодично запускати молюски протягом неактивних годин від Cron.

  3. Tripwire є надмірним, IMHO. Але щось, що здатне відшукати руткіти, було б корисно, сценаріїв багато (rkhunter, chkrootkit).

  4. Я вважаю, щонайменше 90% руткітів і т. Д. Потрапляють на сервери за допомогою завантаження з розробників Windows. Не існує дійсно хорошого способу запобігти цьому, крім, можливо, примушування розробників ніколи не використовувати Windows. Більшість троянів шукають облікові дані FTP, тому ніколи не використовуйте FTP.


Приємно знати ... Враховуючи те, що я не маю наміру рухатись по маршруту apache, я буду дотримуватися будь-яких аспектів безпеки, які я можу знайти для nginx. Я, ймовірно, в кінцевому підсумку пройдуться маршрутом clamscan / rkhunter. Дякую за поради!
Аарон

0

Чи застосовується захист форми captcha у популярному двигуні CMS (Wordpress, Jomlaa, Drupal) як практика безпеки? Якщо так, то ви можете скористатися цими:


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