Подтвердить что ты не робот

Лучший способ для песочницы Apache в Linux

У меня Apache работает на сервере Debian с открытым доступом, и я немного обеспокоен безопасностью установки. Это машина, на которой размещаются несколько проектов для хобби, поэтому никто из нас, кто пользуется машиной, не имеет времени постоянно следить за восходящими патчами, следить за проблемами безопасности и т.д. Но я хотел бы оставить плохих парней вне, или если они входят, держите их в песочнице.

Итак, что лучше, легко настроить, легко поддерживать решение здесь? Легко ли настроить изолированную программную среду linux на Debian? Или, может быть, тюрьма-хрутка? Я хотел бы иметь легкий доступ к файлам внутри печатной коробки снаружи. Это один из тех случаев, когда мне становится совершенно ясно, что я программист, а не системный администратор. Любая помощь будет высоко оценена!

4b9b3361

Ответ 1

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

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

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

Посмотрите linux-vserver wiki для инструкций по установке.

Деннис

Ответ 2

Во-вторых, что xardias говорит, но вместо этого рекомендую OpenVZ.

Это похоже на Linux-Vserver, поэтому вам может понадобиться сравнить эти два при прохождении этого маршрута.

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

Контейнеры OpenVZ вполне могут быть полностью обновлены ( "для я в $(vzlist), выполнить vzctl exec apt-get upgrade; done" )

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

Некоторые правила, подобные этим, могут быть использованы (бойтесь, ваш веб-сервер может нуждаться в доступе к другим протоколам):   iptables --append OUTPUT -m owner --uid-owner apache -m state --state ESTABLISHED, RELATED --jump ACCEPT   iptables --append OUTPUT -m owner --uid-owner apache -protocol udp -destination-port 53 --jump ACCEPT   iptables --append OUTPUT -m owner --uid-owner apache --jump REJECT

Ответ 9

Если вы используете Debian, debootstrap - ваш друг в сочетании с QEMU, Xen, OpenVZ, Lguest или множеством других.

Ответ 10

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

Ответ 11

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

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

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