Запретить запуск Apache после установки apt-get

15

Когда apt-get install apache2сервер запускается автоматически, когда установка завершается, а конфигурация Apache по умолчанию делает все /var/www/доступным для клиентской стороны. Таким образом, если у меня есть какие-либо сценарии на стороне сервера с закрытым исходным кодом или другая секретная информация в этом каталоге до установки Apache, он будет общедоступным, пока я не изменю конфигурацию Apache и не перезапущу Apache или пока я не остановлю Apache.

я могу это сделать

sudo apt-get install -y apache2
sudo service apache2 stop
# Finish setting up...

Кроме того, есть только краткое окно, где секретные материалы доступны, но было бы предпочтительнее вообще не запускать Apache автоматически и никогда не показывать /var/www/ни на один момент.

Есть ли какие-либо параметры, которые я могу передать apt-get installили другие способы запретить автоматический запуск Apache после его установки?

Дэвид Винецки
источник
Я не знаю, каково поведение, когда вы сами компилируете Apache вместо использования apt-get. Я полагаю, если вы скомпилируете его самостоятельно, вы сможете найти код, который запускает Apache после установки, и отключить его. Это может быть достойный ответ, если кто-то может описать более подробно. Однако идеальный ответ на поставленный вопрос все равно будет использоваться apt-get.
Дэвид Винецки
5
Почему бы просто не отключить брандмауэр от вашего сервера на минуту, пока выполняете обновление?
EEAA
Я думаю, мой вопрос является своего рода дубликатом этого вопроса на askubuntu.com: askubuntu.com/questions/74061/…
Дэвид Винецки
1
Еще один вариант: использовать дистрибутивы Red Hat / CentOS, которые не страдают ни от этого, ни от любого другого безумия Debian.
Майкл Хэмптон

Ответы:

13

Попробуй это:

  1. Создайте файл /usr/sbin/policy-rc.dсо следующим содержанием:
#!/bin/sh  
exit 101
  1. Сделайте его исполняемым:
chmod +x /usr/sbin/policy-rc.d

После этого все пакеты будут установлены, но службы не запустятся.

Как только вы закончите, вы можете удалить файл:

rm -f /usr/sbin/policy-rc.d
b13n1u
источник
Я пытаюсь это Более подробная информация здесь: jpetazzo.github.io/2013/10/06/… (я собираюсь использовать, #!хотя.)
David Winiecki
10

Много вариантов:

  1. Переместить закрытый исходный контент из /var/www
  2. Измените разрешения для этого контента так, чтобы пользователь apache не мог его прочитать
  3. Iptables для остановки трафика порта 80/443
  4. Передайте переменную среды уровня выполнения apt-get:
sudo RUNLEVEL=1 apt-get install apache2
dmourati
источник
Разве установка apache2 не оставит «текущие» файлы конфигурации на месте? Например, шаблон, оставленный в /etc/apache2/httpd.conf, не будет перезаписан, не так ли?
Hyppy
Я думаю, что подразумевается изменение конфигурации Apache (после того, как / var / www недоступен с помощью одного из методов в этих ответах).
Дэвид Винецки
Я имею в виду, я не думаю, что какой-либо из этих 4 методов изменит конфигурацию Apache.
Дэвид Винецки
1
Я думаю, что я собираюсь использовать, RUNLEVEL=1так как это кажется самым простым вариантом, и он работал в тесте, но iptables или какой-то другой брандмауэр чувствуют себя правильным образом.
Дэвид Винецки