Impedir que o Apache seja iniciado após a instalação do apt-get

15

Quando apt-get install apache2o servidor é iniciado automaticamente quando a instalação é concluída, a configuração padrão do Apache torna tudo /var/www/acessível ao lado do cliente. Portanto, se eu tiver scripts do lado do servidor de código-fonte fechado ou outras informações secretas nesse diretório antes de instalar o Apache, elas estarão acessíveis ao público até que eu mude a configuração do Apache e reinicie o Apache ou até que eu pare o Apache.

eu posso fazer isso

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

E há apenas uma breve janela onde o material secreto está acessível, mas seria preferível impedir o Apache de iniciar automaticamente e nunca expor /var/www/nem por um momento.

Existem opções para as quais eu possa passar apt-get installou outras maneiras de impedir que o Apache seja iniciado automaticamente após a instalação?

David Winiecki
fonte
Não sei qual é o comportamento quando você compila o Apache em vez de usá-lo apt-get. Suponho que, se você o compilar, poderá encontrar o código que inicia o Apache após a instalação e desativá-lo. Essa pode ser uma resposta decente se alguém puder descrever com mais detalhes. No entanto, a resposta ideal para a pergunta conforme declarada ainda seria usada apt-get.
David Winiecki
5
Por que não fazer apenas um firewall do servidor por um minuto enquanto faz a atualização?
EEAA
Acho que minha pergunta é tipo de uma duplicata de um presente em askubuntu.com: askubuntu.com/questions/74061/...
David Winiecki
1
Mais uma opção: use as distribuições Red Hat / CentOS, que não sofrem com essa ou nenhuma das outras insanidades do Debian.
Michael Hampton

Respostas:

13

Tente o seguinte:

  1. Crie um arquivo /usr/sbin/policy-rc.dcom o seguinte conteúdo:
#!/bin/sh  
exit 101
  1. Torne executável:
chmod +x /usr/sbin/policy-rc.d

Depois disso, todos os pacotes serão instalados, mas os serviços não serão iniciados.

Quando terminar, você pode remover o arquivo:

rm -f /usr/sbin/policy-rc.d
b13n1u
fonte
Estou tentando isso. Mais informações aqui: jpetazzo.github.io/2013/10/06/... (Vou utilização #!embora.)
David Winiecki
10

Muitas opções:

  1. Mova o conteúdo de código fechado para fora /var/www
  2. Altere as permissões nesse conteúdo para que o usuário apache não possa lê-lo
  3. Iptables para parar o tráfego da porta 80/443
  4. Passe uma variável de ambiente de nível de execução para apt-get:
sudo RUNLEVEL=1 apt-get install apache2
dmourati
fonte
A instalação do apache2 não deixaria os arquivos de configuração "atuais" no lugar? Por exemplo, um modelo deixado em /etc/apache2/httpd.conf não seria substituído, seria?
Hyppy # 9/15
Eu acho que mudar a configuração do Apache (depois de tornar / var / www inacessível usando um dos métodos nestas respostas) está implícito.
David Winiecki
Quero dizer, acho que nenhum desses 4 métodos modificará a configuração do Apache.
David Winiecki
1
Eu acho que vou usar, RUNLEVEL=1já que parece ser a opção mais simples e funcionou em um teste, mas o iptables ou algum outro firewall parece o caminho certo.
David Winiecki