Minha opinião de servidor seguro
Olá pessoas, na falta de tutoriais, decidi fazer esse =)
Como vocês sabem, tenho um home-server, desligado no momento, mas não deixo de ter
e penei um pouco para poder configura-lo deixando nos conformes e com o máximo de segurança possível, isso tirando é claro o firewall, porque server que é server não tem firewall! (Brincando ;))
Vamos começar a com as configurações da maquina
- Processador: Celeron D de 2.13GHz
- Memória atual (Queimada) : 256MB
- HD: 20GB
- 2 placas de rede, uma para o Velox e outra para a rede interna =)
- e etc. etc. etc.
Serviços que rodam nele
- Apache+PHP+Python
- PostgreSQL
- SQUID-cache
- SSH
- Bind (Named) (DNS)
Coisas simples, como podem ver
Agora vem o pequeno detalhe! A distribuição escolhida! Slack sempreeeee!!!
Vamos deixar de lorota e começar a mostrar as configurações
Vamos começar pelo SSH, coisa que acho importantíssimo, afinal não tenho teclado, nem mouse na maquina!
Primeira coisa a se modificar no sshd_config (normalmente /etc/ssh/sshd_config - Configuração do servidor SSH)
PermitRootLogin no (Isso ajuda a não quebrarem logo a senha de root, não se esqueça também de tirar o pacote sudo e/ou desconfigura-lo todo)
PermitLogin no (Porquê isso? Simples! Isso tira o login via senha digitavel, substitua esse tipo de login por login via chaves, é bem melhor!)
Port 22 -> Muda a porta para outra, 256, 897, qualquer número, só para não termos um exploit logo de cara =)
Com isso o servidor SSH já está seguro, dai você se pergunta e como posso logar como root? Orás, “su -”, utiliza um usuário normal para se logar e digita su -, só isso!
Vamos passar para o SQUID, uma coisa que tu tem que pensar, vai permitir o acesso ao SQUID via rede externa?
- Vai: Então coloca uma ACL para que peça requisição de nome de usuário e senha, isso para que pessoas indesejadas não usem seu SQUID
- Não: Então só bloqueia tudo mesmo!
Squid é coisa simples mesmo, então deixa ele ai, ele já é chato com o acesso mesmo =P
DNS, edita o /etc/hosts.allow e permite somente o acesso do DNS na rede interna, isso garante que não se exploitem o servidor de DNS!
Apache, se você quer que seu Apache seja só na Intranet, modifica ele e manda fazer Listen para o seu hostname, só isso, caso contrário, faz o cadastro no DynDNS, No-ip, qualquer coisa e manda ele fazer listen para esses hostnames =)
PostgreSQL, libera só o acesso na rede local, se for o caso somente no servidor mesmo, é melhor
PHP: Deixa em safe_mode, usa a opção do safe_mode para liberar o acesso aos arquivos do mesmo grupo, caso contrário, só o mesmo dono pode fazer isso, o que é chato em certos ambientes ¬¬’
Se tu vai usar o servidor de e-mails interno, recomendo deixar o acesso somente na rede local, não exponha tudo a Internet =)
Resumindo: Com um pouquinho de trabalho você pode configurar um servidor até que seguro facilmente
Abraços!

