Quando você tem tantas tecnologias, é difícil dizer problemas específicos que você deve procurar com cada ferramenta. Em geral, para cada um deles, faça uma pesquisa no google de lock down <technology> ubuntu
e leia os primeiros cinco a dez resultados. Tomar essas ações para cada um dos seus serviços deve reduzir drasticamente a vulnerabilidade do seu sistema.
Abaixo estão algumas coisas sobre as quais você pode pensar / fazer. Como sua pergunta é bastante ampla, acho que isso já será muito trabalho. Manter as guias ServerFault e http://security.stackexchange.com/
também aumentará sua conscientização.
- Conhecimento dos seus serviços de rede
Esteja totalmente ciente de tudo o que está exposto ao mundo exterior. Notei que você não mencionou ssh
, o que pode sugerir que existem outros serviços que você está executando, mas não mencionou. Execute netstat -lntp
e veja se há algum serviço que você não sabia que estava executando e remova-os / elimine-os se não forem necessários.
- Firewalls
Aprenda iptables
para que você possa controlar o tráfego de rede nas suas máquinas. Por exemplo, você pode colocar na lista de permissões apenas as portas 80 e 443 se você espera apenas ter tráfego na web. Você obtém mais controle do que se acabou de eliminar todos os serviços que estão sendo executados usando portas, porque talvez seja necessário usar portas e sua interface de loopback para que os serviços na mesma máquina se conectem uns aos outros.
Por exemplo, o php pode precisar estar em comunicação com o redis, e você pode fazer isso através da interface de loopback. Você poderia permitir conexões de entrada para redis apenas através da interface de loopback, sem permitir que máquinas externas se conectem à porta do redis.
- Sandbox
Isto diz respeito à defesa em profundidade. Configure seus serviços de tal forma que a exploração de um serviço tenha pouca chance de afetar outros serviços ou o restante de sua máquina. Uma ação que você pode tomar é criar uma conta de usuário diferente para executar todos os serviços. Se um intruso interromper esse serviço de tal forma que ele possa adquirir um shell, ele poderá obter apenas os privilégios de um usuário não muito privilegiado. Esses guias de bloqueio para cada serviço discutirão como fazer isso.
- Criação de log
Toda interação com todos os serviços que você está executando em sua máquina deve ter o log ativado. Quando alguma coisa acontece com você, você precisa passar por seus registros e procurar por algo fora do comum. Você pode reagir e corrigir quaisquer problemas que surgirem.
Por exemplo, você percebe que alguém invadiu e modificou arquivos que não deveriam ter sido modificados. Indo através do seu auth.log
, você percebe que houve várias dezenas de milhares de tentativas de login em sua máquina através do ssh, eventualmente concluindo com um login bem-sucedido. É quando você percebe que sua senha tem apenas cinco caracteres e provavelmente você deve alterá-la.
- Detecção de intrusão e prevenção de intrusões
Semelhante ao que o registro irá ajudá-lo, mas mais automatizado. Faça alguma pesquisa sobre softwares IDS e IPS, como http://www.snort.org/
ou http://www.tripwire.com/
. É bom quando você tem ferramentas que gritam para você que você está sob ataque.
Espero que estas dicas gerais ajudem, e esteja ciente de que há muitas outras coisas que você pode fazer para se proteger (que você perceberá ao longo do tempo se visitar o serverfault e a segurança com bastante frequência :)).