Лучший способ поиграть в песочнице Apache на Linux

Я избегаю абсолютов в программировании; всегда есть исключение. Я настоятельно рекомендую хранимые процедуры и объекты команд. Большая часть моей базы с SQL Server, но я играю с MySql время от времени. Существует множество преимуществ хранимых процедур, включая кэшированные планы запросов; да, это может быть достигнуто с помощью параметров и встроенного SQL, но это открывает больше возможностей для инъекционных атак и не помогает с разделением проблем. Для меня также намного проще защитить базу данных, поскольку мои приложения обычно имеют только разрешение на выполнение указанных хранимых процедур. Без прямого доступа к таблицам и представлениям гораздо сложнее вводить что-либо. Если пользователь приложений скомпрометирован, у него есть только разрешение на выполнение того, что было предварительно определено.

Мои два цента.

18
задан Please delete this account 17 October 2008 в 13:41
поделиться

11 ответов

Тюрьмы Chroot могут быть действительно небезопасными при выполнении полной среды песочницы. Взломщики имеют полный доступ к функциональности ядра и например могут смонтировать диски получить доступ к системе "хоста".

Я предложил бы, чтобы Вы использовали linux-vserver. Вы видите linux-vserver как улучшенную chroot тюрьму с полной debian установкой внутри. Это действительно быстро, так как это работает в одном единственном ядре, и весь код выполнен исходно.

Я лично использую linux-vserver для разделения всех моих сервисов и существуют только едва значимые различия в производительности.

Взгляните на linux-vserver Wiki для инструкций по установке.

отношения, Dennis

15
ответ дан 30 November 2019 в 07:39
поделиться

Я второй, что xardias говорит, но рекомендует OpenVZ вместо этого.

Это подобно Linux-Vserver, таким образом, Вы могли бы хотеть сравнить те два при хождении этим путем.

я имею, устанавливают веб-сервер с прокси http сервер ( nginx), который затем делегирует трафик к различным контейнерам OpenVZ (на основе имени хоста или запрашиваемого тракта). В каждом контейнере можно установить Apache или любой другой веб-сервер (например, nginx, lighttpd..). Таким образом, Вы не имеете одного Apache для всего, но могли создать контейнер для любого подмножества сервисов (например, на проект).

контейнеры OpenVZ могут довольно легко быть обновлены в целом ("поскольку я в $ (vzlist); сделайте vzctl склонное должностное лицо - получает обновление; сделанный")

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

4
ответ дан 30 November 2019 в 07:39
поделиться

Вы могли всегда настраивать его в виртуальной машине и сохранять изображение его, таким образом, можно повторно прокрутить его в случае необходимости. Тем путем сервер абстрагирован от Вашего фактического компьютера, и любой вирус или поэтому дальше содержится в виртуальной машине. Как я сказал прежде, если Вы сохраняете изображение как резервное копирование, можно восстановить к предыдущему довольно легкому состоянию.

3
ответ дан 30 November 2019 в 07:39
поделиться

Для проверки это сказано, Тюрьмы CHRoot редко являются хорошей идеей, которая это, несмотря на намерение, очень легкое убегать, чтобы заразить я видел сделанный пользователями случайно!

3
ответ дан 30 November 2019 в 07:39
поделиться

Без обид, но если у Вас нет времени, чтобы наблюдать за патчами безопасности и остаться знающий о проблемах безопасности, Вы должны быть заинтересованы, независимо от того, что Ваша установка. С другой стороны, простое то, что Вы думаете об этих проблемах, устанавливает Вас кроме другого 99,9% владельцев таких машин. Вы находитесь на правильном пути!

3
ответ дан 30 November 2019 в 07:39
поделиться

Я нахожу это удивительным, что никто не упомянул mod_chroot и suEXEC, которые являются основными вещами, которые необходимо запустить с, и, скорее всего, единственные вещи, в которых Вы нуждаетесь.

3
ответ дан 30 November 2019 в 07:39
поделиться

Необходимо использовать SELinux. Я не знаю, как хорошо это поддерживается на Debian; если это не, просто установите Centos 5.2 с SELinux, включенным в VM. Не должно быть слишком много работы, и намного намного более безопасный, чем какой-либо любительский chrooting, который не так безопасен, как большинство людей верит. SELinux имеет репутацию быть трудным администратору, но если Вы просто выполняете веб-сервер, который не должен быть проблемой. Вам, возможно, просто придется сделать несколько "sebool", чтобы позволить httpd соединиться с DB, но это об этом.

1
ответ дан 30 November 2019 в 07:39
поделиться

При использовании Debian debootstrap является другом вместе с QEMU, Xen, OpenVZ, Lguest или множеством других.

1
ответ дан 30 November 2019 в 07:39
поделиться

Сделайте виртуальную машину. попробуйте что-то как VMware или qemu

0
ответ дан 30 November 2019 в 07:39
поделиться

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

Некоторые правила, подобные им, могут использоваться (Остерегайтесь, Вашему веб-серверу, возможно, понадобится доступ к другим протоколам): iptables - добавляют ВЫВОД-m владелец - апач uid-владельца-m состояние - состояние, УСТАНОВЛЕННОЕ, СВЯЗАННОЕ - переход ПРИЗНАЕТ, что iptables - добавляют ВЫВОД-m владелец - апач uid-владельца - протокол udp - целевой порт 53 - переход ПРИЗНАЕТ, что iptables - добавляют ВЫВОД-m владелец - апач uid-владельца - ОТКЛОНЕНИЕ перехода

1
ответ дан 30 November 2019 в 07:39
поделиться

Какую проблему Вы действительно пытаетесь решить? Если Вы заботитесь о том, что находится на том сервере, необходимо препятствовать тому, чтобы злоумышленники вошли в него. Если бы Вы заботитесь о том, что злоумышленники сделали бы с Вашим сервером, необходимо ограничить возможности самого сервера.

Ни одна из этих проблем не могла быть решена с виртуализацией без severly criplling сам сервер. Я думаю, что реальное решение Вашей проблемы - это:

  1. выполняет ОС, которая предоставляет Вам легкий механизм для обновлений ОС.
  2. используют предоставленное поставщиками программное обеспечение.
  3. резервное копирование все часто.
0
ответ дан 30 November 2019 в 07:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: