Запобігати запуску 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.
David Winiecki

5
Чому б не просто брандмауер відключити ваш сервер на хвилину, роблячи оновлення?
ЄЕАА

Я здогадуюсь, що моє запитання є дублікатом цього на askubuntu.com: askubuntu.com/questions/74061/…
David Winiecki

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

Я це намагаюся. Більше інформації тут: 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

Хіба не встановлення apache2 не залишить "поточні" конфігураційні файли на місці? Наприклад, шаблон, залишений у /etc/apache2/httpd.conf, не буде перезаписаний, чи не так?
Хіпі

Я думаю, що зміна конфігурації Apache (після того, як зробити / var / www недоступним за допомогою одного з методів у цих відповідях) має на увазі.
Девід Віньєцький

Я маю на увазі, я не думаю, що жоден із цих 4 методів не змінить конфігурацію Apache.
Девід Віньєцький

1
Я думаю, що я збираюся використовувати, RUNLEVEL=1оскільки це здається найпростішим варіантом, і він працював у тесті, але iptables або інший брандмауер справді відчувають себе правильним.
David Winiecki
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.