Encapsulando BIND 9 e Apache 2 para obter maior segurança
Utilizar encapsulamento (uma técnica de chroot) aumenta a segurança do servidor, pois, caso um invasor consiga explorar alguma vulnerabilidade do programa, o meliante não conseguirá ter controle total sobre o sistema.
Introdução
Chroot - executa comandos, ou shell interativo, com diretório root especial. Ele muda o diretório root do processo corrente (pai) e seus processos filhos. Um programa que está rodando em modo chroot, em outro diretório, não pode acessar arquivos fora daquele diretório.
Utilizar o modo chroot aumenta a segurança do servidor, pois, caso um invasor consiga explorar alguma vulnerabilidade do programa, o meliante não conseguirá ter controle total sobre o sistema.
Lembrando que é altamente recomendável ter uma máquina somente para ser o servidor DNS e uma máquina somente para servidor WEB.
Somam-se a isso, que os servidores DNS e WEB são os mais atacados na Internet, então se faz necessário, além de um bom Firewall (IPtables), lançar mão de todo e qualquer recurso que traga maior segurança contra ataques.
Na prática, se um "amigo do alheio" invadir o servidor, não terá acesso como root, mesmo que os serviços tenham alguma falha ou vulnerabilidade. Caso ele consiga ter acesso à máquina, não poderá navegar na estrutura de diretórios acima do diretório no qual o serviço foi "enjaulado".
Aqui, não estão as configurações dos serviços em si, mas, somente as configurações para o encapsulamento. Caso você já tenha o BIND 9 e o Apache 2 devidamente instalados e configurados, poderá enjaular com os comandos aqui presentes. Mas o ideal é "encapsular" logo após a instalação.
As configurações foram testadas no Debian Wheezy, porém, podem ser adaptadas para outras distribuições, uma vez que somente alguns poucos comandos pertencem às distribuições Debian e derivadas (os comandos apt-get, aptitude e os comandos com start e stop).
Tecnicamente, os procedimentos mostrados aqui não podem ser considerados chroot, pois não fazem uso do comando em si, mas poderiam fazer. Depende de como se "encapsula".
Primeiro, veremos como fazer separadamente para o BIND 9 e depois para o Apache 2 e, ao final, está um link onde tem como configurar o modo chroot para todo o sistema no Debian.
* Recomenda-se ler todo o artigo antes de sair executando comandos.
Utilizar o modo chroot aumenta a segurança do servidor, pois, caso um invasor consiga explorar alguma vulnerabilidade do programa, o meliante não conseguirá ter controle total sobre o sistema.
Lembrando que é altamente recomendável ter uma máquina somente para ser o servidor DNS e uma máquina somente para servidor WEB.
Somam-se a isso, que os servidores DNS e WEB são os mais atacados na Internet, então se faz necessário, além de um bom Firewall (IPtables), lançar mão de todo e qualquer recurso que traga maior segurança contra ataques.
Na prática, se um "amigo do alheio" invadir o servidor, não terá acesso como root, mesmo que os serviços tenham alguma falha ou vulnerabilidade. Caso ele consiga ter acesso à máquina, não poderá navegar na estrutura de diretórios acima do diretório no qual o serviço foi "enjaulado".
Aqui, não estão as configurações dos serviços em si, mas, somente as configurações para o encapsulamento. Caso você já tenha o BIND 9 e o Apache 2 devidamente instalados e configurados, poderá enjaular com os comandos aqui presentes. Mas o ideal é "encapsular" logo após a instalação.
As configurações foram testadas no Debian Wheezy, porém, podem ser adaptadas para outras distribuições, uma vez que somente alguns poucos comandos pertencem às distribuições Debian e derivadas (os comandos apt-get, aptitude e os comandos com start e stop).
Tecnicamente, os procedimentos mostrados aqui não podem ser considerados chroot, pois não fazem uso do comando em si, mas poderiam fazer. Depende de como se "encapsula".
Primeiro, veremos como fazer separadamente para o BIND 9 e depois para o Apache 2 e, ao final, está um link onde tem como configurar o modo chroot para todo o sistema no Debian.
* Recomenda-se ler todo o artigo antes de sair executando comandos.