O que pode ser feito para proteger o servidor Ubuntu?

33

Eu tenho um projeto para proteger o Ubuntu Server o máximo que posso. O servidor é um servidor de hospedagem na web. O servidor estará executando LAMP, Mail e DNS.

    
por One Zero 05.06.2012 / 14:20

7 respostas

40

Aqui está uma lista de coisas que faço para proteger meu servidor.

  1. Ative o UFW ( sudo ufw enable ) e, em seguida, permita somente as portas que são realmente usadas. ( sudo ufw allow 80 )
  2. Certifique-se de que o MySQL permita apenas conexões do host local.
  3. Ative o TLS nos serviços de email. Mesmo que seja um certificado auto-assinado. Você não quer senhas enviadas no claro.
  4. Instale bloqueadores de força bruta ssh como denyhosts ou fail2ban. ( sudo apt-get install denyhosts )
  5. Procure fazer apenas logins baseados em chave ssh.
  6. Aprenda o AppArmor. Se você usar configurações bastante baunilha, então é extremamente fácil. Apenas certifique-se de que está ligado. Isso ajudará a reduzir as explorações de dia zero.
  7. Dependendo do acesso físico ao servidor, você pode até querer verificar a criptografia dos dados no disco rígido.
  8. Siga outras recomendações neste link. EDIT: eu esqueci de editar isso quando eu não tenho reputação suficiente para adicionar mais links. O link aqui é o último link abaixo.
  9. Nunca confie em seus usuários. Se você tiver vários usuários com acesso ao sistema, bloqueie-os. Se você tiver que lhes dar acesso ao sudo, dê a eles apenas o que eles precisam.
  10. Use o bom senso. Pense bem sobre como você entraria se estivesse bloqueado. Então feche esses buracos.

Mais algumas coisas a considerar. A maioria das pessoas esquece o acesso físico. Todas as configurações de software no mundo não significam nada se eu puder entrar fisicamente com um LiveCD e roubar seus dados. Cuidado com engenharia social. Faça perguntas para verificar quem está no telefone e verifique se eles têm autorização para fazer a solicitação que estão fazendo.

Como ainda sou um usuário "novo", não posso postar mais de dois links. Você pode ler mais sobre este assunto aqui: link e prestar atenção especial a link

    
por Patrick Regan 07.06.2012 / 15:19
13

Memória compartilhada segura

/ dev / shm pode ser usado em um ataque contra um serviço em execução, como o httpd. Modifique o / etc / fstab para torná-lo mais seguro.

Abra uma janela de terminal e digite o seguinte:

sudo vi /etc/fstab

Adicione a seguinte linha e salve. Você precisará reinicializar para que essa configuração entre em vigor:

tmpfs     /dev/shm     tmpfs     defaults,noexec,nosuid     0     0

Protege a rede com configurações de sysctl

O arquivo /etc/sysctl.conf contém todas as configurações do sysctl. Impedir o roteamento de origem de pacotes de entrada e logar IP's malformados digite o seguinte em uma janela de terminal

sudo vi /etc/sysctl.conf

Edite o arquivo /etc/sysctl.conf e descomente ou adicione as seguintes linhas:

# IP Spoofing protection
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# Ignore ICMP broadcast requests
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Disable source packet routing
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0 
net.ipv4.conf.default.accept_source_route = 0
net.ipv6.conf.default.accept_source_route = 0

# Ignore send redirects
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# Block SYN attacks
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 5

# Log Martians
net.ipv4.conf.all.log_martians = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1

# Ignore ICMP redirects
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0 
net.ipv6.conf.default.accept_redirects = 0

# Ignore Directed pings
net.ipv4.icmp_echo_ignore_all = 1

Para recarregar o sysctl com as alterações mais recentes, digite:

sudo sysctl -p

Evitar falsificação de IP

Abra um terminal e digite o seguinte:

sudo vi /etc/host.conf

Adicione ou edite as seguintes linhas:

order bind,hosts
nospoof on

Harden PHP para segurança

Edite o arquivo php.ini:

sudo vi /etc/php5/apache2/php.ini

Adicione ou edite as seguintes linhas:

disable_functions = exec,system,shell_exec,passthru
register_globals = Off
expose_php = Off
magic_quotes_gpc = On

Firewall de Aplicativos da Web - ModSecurity

link

Protege contra ataques DDOS (Negação de Serviço) - ModEvasive

link

Verifica logs e bane hosts suspeitos - DenyHosts e Fail2Ban

@DenyHosts

DenyHosts é um programa python que bloqueia automaticamente ataques SSH adicionando entradas ao /etc/hosts.deny. O DenyHosts também informará aos administradores do Linux sobre hosts ofensivos, usuários atacados e logins suspeitos.

Abra um terminal e digite o seguinte:

sudo apt-get install denyhosts

Após a instalação, edite o arquivo de configuração /etc/denyhosts.conf e altere o e-mail e outras configurações conforme necessário.

Para editar as configurações de e-mail do administrador, abra uma janela de terminal e digite:

sudo vi /etc/denyhosts.conf

Altere os seguintes valores conforme necessário no seu servidor:

ADMIN_EMAIL = [email protected]
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts [email protected]
#SYSLOG_REPORT=YES 

@ Fail2Ban

O Fail2ban é mais avançado que o DenyHosts, pois estende o monitoramento de logs para outros serviços, incluindo SSH, Apache, Courier, FTP e muito mais.

O Fail2ban verifica os arquivos de log e proíbe os IPs que exibem os sinais maliciosos - muitas falhas de senha, buscando explorações, etc.

Geralmente, o Fail2Ban costumava atualizar regras de firewall para rejeitar os endereços IP por um período de tempo especificado, embora qualquer outra ação arbitrária também pudesse ser configurada. Fora da caixa, o Fail2Ban vem com filtros para vários serviços (apache, courier, ftp, ssh, etc).

Abra um terminal e digite o seguinte:

sudo apt-get install fail2ban

Após a instalação, edite o arquivo de configuração /etc/fail2ban/jail.local e crie as regras de filtragem conforme necessário.

Para editar as configurações, abra uma janela de terminal e digite:

sudo vi /etc/fail2ban/jail.conf

Ative todos os serviços que você gostaria que o fail2ban monitorasse, alterando enabled = false para * enabled = true *

Por exemplo, se você quiser ativar o monitoramento SSH e proibir a prisão, localize a linha abaixo e altere a ativação de false para true . É isso.

[ssh]

enabled  = true
port     = ssh
filter   = sshd
logpath  = /var/log/auth.log
maxretry = 3

Se você gostaria de receber e-mails do Fail2Ban se os hosts forem banidos, altere a seguinte linha para o seu endereço de e-mail.

destemail = [email protected]

e altere a seguinte linha de:

action = %(action_)s

para:

action = %(action_mwl)s

Você também pode criar filtros de regras para os vários serviços que gostaria que o fail2ban monitorasse e que não é fornecido por padrão.

sudo vi /etc/fail2ban/jail.local

Boas instruções sobre como configurar o fail2ban e criar os vários filtros podem ser encontradas em HowtoForge - clique aqui para um exemplo

Quando terminar a configuração do Fail2Ban, reinicie o serviço com:

sudo /etc/init.d/fail2ban restart

Você também pode verificar o status com

sudo fail2ban-client status

Verifique os rootkits - RKHunter e CHKRootKit.

Ambos RKHunter e CHKRootkit basicamente faça a mesma coisa - verifique seu sistema em busca de rootkits. Não há mal em usar os dois.

Abra um terminal e digite o seguinte:

sudo apt-get install rkhunter chkrootkit

Para executar o chkrootkit, abra uma janela de terminal e digite:

sudo chkrootkit

Para atualizar e executar o RKHunter. Abra um terminal e digite o seguinte

sudo rkhunter --update
sudo rkhunter --propupd
sudo rkhunter --check

Verificar portas abertas - Nmap

O Nmap ("Network Mapper") é um utilitário gratuito e de código aberto para descoberta de rede e auditoria de segurança.

Abra um terminal e digite o seguinte:

sudo apt-get install nmap

Analise seu sistema em busca de portas abertas com:

nmap -v -sT localhost

SYN digitalização com o seguinte:

sudo nmap -v -sS localhost

Analise os arquivos LOG do sistema - LogWatch

Logwatch é um sistema de análise de log personalizável. O Logwatch analisa os logs do seu sistema e cria um relatório analisando as áreas que você especifica. O Logwatch é fácil de usar e funcionará diretamente do pacote na maioria dos sistemas.

Abra um terminal e digite o seguinte:

sudo apt-get install logwatch libdate-manip-perl

Para exibir a saída do logwatch, use menos:

sudo logwatch | less

Para enviar por e-mail um relatório de logwatch dos últimos sete dias para um endereço de e-mail, digite o seguinte e substitua [email protected] pelo e-mail obrigatório. :

sudo logwatch --mailto [email protected] --output mail --format html --range 'between -7 days and today' 

Audite a segurança do seu sistema - Tiger.

O Tiger é uma ferramenta de segurança que pode ser usada como um sistema de auditoria de segurança e detecção de invasões.

Abra um terminal e digite o seguinte:

sudo apt-get install tiger

Para executar o tigre, digite:

sudo tiger

Toda a saída do Tiger pode ser encontrada em / var / log / tiger

Para visualizar os relatórios de segurança do tigre, abra um Terminal e digite o seguinte:

sudo less /var/log/tiger/security.report.*

Mais ajuda

    
por One Zero 15.06.2012 / 16:51
13

Como você disse que isso é web-hosting-server ... gostaria de compartilhar minhas melhores práticas e experiências de 5 longos anos na linha de hospedagem na web .

  1. De minhas experiências passadas, em vez de entrar imediatamente no inferno da configuração, você deve primeiro montar as uvas de segurança penduradas, conforme indicado no artigo em questão.

  2. Já que você está tendo o LAMP, você deve ter muito cuidado com o PHP e com as configurações do php.ini. Este é um bom link para proteger o PHP. O PHP tem superpoderes que podem se tornar loop de segurança quando não estão configurados corretamente.

  3. Você pode usar um cron job para verificar quando seus arquivos foram modificados sem a sua permissão e possivelmente hackeados; usando este trabalho cron . Eu prefiro o Notepad ++ para comparar os resultados do cron (baixar diretamente o e-mail cron do seu servidor web e abrir no Notepad ++).

  4. Se você quiser instalar algum SEM, o cPanel é o preferido (no entanto, pago). Webmin e zpanel são alternativas livres muito boas . O Webmin é melhor, pelo menos, usa certificados auto-assinados e adiciona segurança.

  5. Se você quer que algo funcione imediatamente, você pode usar o Turnkey Linux. Ele é baseado em Ubuntu, extremamente fácil de implementar e flexível às suas necessidades. Com muito pouco esforço, você obtém segurança fora da caixa. Esta é a sua pilha LAMP . Eu pessoalmente uso e prefiro apenas isso.

  6. Se você está começando a partir de arranhões, você também pode instalar o ISPconfig3. Instrução Aqui .

  7. você pode testar sua segurança tentando penetrar em sua segurança usando Back-Track-Linux .

  8. mantenha senhas aleatórias longas e complexas. Não os guarde no PC. anotá-las. Use um CD ao vivo para acessar esses logins.

  9. obtenha um software de proteção contra força bruta como o fail2ban.

  10. Não execute esses daemons que você não precisa.

  11. Bloqueie todas as portas desnecessárias . seja extremamente cuidadoso com a porta SSH (22).

  12. Obtenha um IP estático no sistema através do qual você irá gerenciar o servidor. Faça a maioria dos bloqueios de IP e permita que o seu IP específico acesse os locais de configuração como a porta 22.

No final do dia ... trabalhe com total tranquilidade, não se emocione com a instalação e aplicação do senso comum leva você muito além.

**My heartiest best wishes to you. good luck.**
    
por Z9iT 10.06.2012 / 01:55
6

Faça uso do projeto Bastille Linux.

Ele fornece uma ferramenta interativa para executar medidas adicionais de proteção de segurança para aumentar a segurança geral e diminuir a suscetibilidade de comprometimento para o seu sistema Ubuntu (de Bastille Linux ).

Ele oferece uma funcionalidade de avaliação e geração de relatórios, para que ele possa dizer quais partes do sistema não estão bloqueadas. Ele examina o sistema de maneira somente leitura, informando sobre o status de cada um de seus itens de proteção. Por exemplo, o Bastille pode verificar se o servidor DNS está bloqueado em uma prisão chroot, se o telnet está desativado ou até mesmo se as senhas precisam ter um bom tamanho. Você pode dar uma olhada em uma demonstração da Web apenas através deste link (mais info ).

Você pode visualizar o demo da Web (apenas) aqui .

    
por pl1nk 09.06.2012 / 01:45
3

Use nmap em todas as interfaces da máquina, para saber quais serviços você executa na sua máquina. Essa é uma ferramenta essencial para segurança.

Remova todos os serviços que você não precisa em suas interfaces externas. Você pode configurar o MySQL para escutar apenas interfaces específicas, como localhost.

Use o ufw para proteger seu serviço SSH (e outros possíveis) para que ele não permita muitas conexões (falhas) por minuto da mesma máquina. Isso tornará os ataques de força bruta mais difíceis. Para alterar o número da porta não é tão útil, apenas obscuridade, sem segurança.

Seja restritivo com o número de contas na sua máquina. Também não instale mais pacotes / programas do que você realmente usa. Instale apenas clientes X11, não um servidor X11.

Permitir apenas o login ssh na máquina com certificados digitais, sem senha. Isso também tornará os ataques de força bruta duros / impossíveis.

    
por Anders 06.06.2012 / 22:48
2

Eu também consultaria o documento CIS Debian Benchmarks ele possui um número significativo de procedimentos e processos para proteger o sistema operacional que será aplicado ao Ubuntu, já que é um derivado do Debian. Eu também consultaria:

por Justin Andrusk 09.06.2012 / 16:53
0

A segurança sempre vem com um preço. Definir alguns limites realistas irá ajudá-lo a obter seus objetivos. Eu consideraria os seguintes aspectos:

  • Contra o que você está se protegendo (que tipo de vilão, qual é o orçamento dele)?
  • Quais são seus vetores de ataque?

Verificando todos os links postados aqui, acho que este deve ser adicionado. Ele entra em detalhes não apenas sobre como configurar seu software, mas também sobre o plano de segurança. Como um acréscimo, todo comando a ser executado é explicado com uma fonte para ele.

Protegendo um servidor Web Ubuntu no Xenial 16.04

    
por Daan 03.05.2018 / 15:10