Eu tenho um projeto para proteger o Ubuntu Server o máximo possível. O servidor é um servidor de hospedagem na web. O servidor estará executando LAMP, Mail e DNS.
Eu tenho um projeto para proteger o Ubuntu Server o máximo possível. O servidor é um servidor de hospedagem na web. O servidor estará executando LAMP, Mail e DNS.
Respostas:
Aqui está uma lista de coisas que faço para proteger meu servidor.
sudo ufw enable
) e, em seguida, permita apenas portas que são realmente usadas. ( sudo ufw allow 80
)sudo apt-get install denyhosts
)Mais algumas coisas a considerar. A maioria das pessoas esquece do acesso físico. Todas as configurações de software do mundo não significam nada se eu puder entrar fisicamente com um LiveCD e roubar seus dados. Cuidado com a engenharia social. Faça perguntas para verificar quem está ao 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: https://help.ubuntu.com/12.04/serverguide/index.html e prestar atenção especial a https://help.ubuntu.com/12.04/serverguide/security.html
iptables
regras extremamente específicas para impedir o acesso externo a qualquer serviço que você não utilize, se você tiver um problema. configuração de bola que requer roteamento avançado e outras coisas.
/ dev / shm pode ser usado em um ataque contra um serviço em execução, como httpd. Modifique / etc / fstab para torná-lo mais seguro.
Abra uma janela do terminal e digite o seguinte:
sudo vi /etc/fstab
Adicione a seguinte linha e salve. Você precisará reiniciar para que esta configuração entre em vigor:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid 0 0
O arquivo /etc/sysctl.conf contém todas as configurações do sysctl. Impedir o roteamento de origem dos pacotes recebidos e registrar IPs malformados, digite o seguinte em uma janela do terminal
sudo vi /etc/sysctl.conf
Edite o arquivo /etc/sysctl.conf e retire o comentário 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
Abra um terminal e digite o seguinte:
sudo vi /etc/host.conf
Adicione ou edite as seguintes linhas:
order bind,hosts
nospoof on
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
DenyHosts é um programa python que bloqueia automaticamente ataques SSH adicionando entradas ao /etc/hosts.deny. O DenyHosts também informará os 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 email e outras configurações, conforme necessário.
Para editar as configurações de e-mail do administrador, abra uma janela do terminal e digite:
sudo vi /etc/denyhosts.conf
Altere os seguintes valores conforme necessário em seu servidor:
ADMIN_EMAIL = root@localhost
SMTP_HOST = localhost
SMTP_PORT = 25
#SMTP_USERNAME=foo
#SMTP_PASSWORD=bar
SMTP_FROM = DenyHosts nobody@localhost
#SYSLOG_REPORT=YES
O Fail2ban é mais avançado que o DenyHosts, pois estende o monitoramento de log 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 mostram os sinais maliciosos - muitas falhas de senha, buscando explorações etc.
Geralmente, o Fail2Ban é usado para atualizar as regras do firewall para rejeitar os endereços IP por um período de tempo especificado, embora qualquer outra ação arbitrária também possa 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 filtro conforme necessário.
Para editar as configurações, abra uma janela do 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ê deseja habilitar o monitoramento SSH e banir a prisão, localize a linha abaixo e altere a opção habilitada de falsa para verdadeira . É isso aí.
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
Se você deseja receber e-mails do Fail2Ban se os hosts forem proibidos, altere a seguinte linha para o seu endereço de e-mail.
destemail = root@localhost
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 você gostaria que o fail2ban monitore que não seja 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 no HowtoForge - clique aqui para ver um exemplo
Quando terminar com 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
O RKHunter e o CHKRootkit basicamente fazem a mesma coisa - verifique o seu sistema quanto a rootkits. Nenhum dano em usar os dois.
Abra um terminal e digite o seguinte:
sudo apt-get install rkhunter chkrootkit
Para executar o chkrootkit, abra uma janela do 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
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
Examine seu sistema em busca de portas abertas com:
nmap -v -sT localhost
Digitalização SYN com o seguinte:
sudo nmap -v -sS localhost
O Logwatch é um sistema de análise de logs personalizável. O Logwatch analisa os logs do sistema e cria um relatório analisando as áreas que você especificar. O Logwatch é fácil de usar e funcionará imediatamente na maioria dos sistemas.
Abra um terminal e digite o seguinte:
sudo apt-get install logwatch libdate-manip-perl
Para visualizar a saída do logwatch, use menos:
sudo logwatch | less
Para enviar por e-mail um relatório do watchwatch dos últimos 7 dias para um endereço de e-mail, digite o seguinte e substitua mail@domain.com pelo e-mail necessário. :
sudo logwatch --mailto mail@domain.com --output mail --format html --range 'between -7 days and today'
O Tiger é uma ferramenta de segurança que pode ser usada como um sistema de auditoria de segurança e detecção de intrusõ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 no diretório / 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.*
magic_quotes_gpc = On
. Magic quotes foi primeiro obsoleto e, em seguida, removido: php.net/manual/en/security.magicquotes.whynot.php
Como você disse que este é um servidor de hospedagem na web ... eu gostaria de compartilhar minhas melhores práticas e experiência de 5 longos anos na linha de hospedagem na web.
Pelas minhas experiências passadas, em vez de entrar no inferno imediatamente de configuração, você deve primeiro reunir as uvas baixas de segurança, conforme indicado no artigo fornecido.
Como você está usando o LAMP, você deve ter muito cuidado com o PHP e suas configurações do php.ini. Este é um bom link para proteger o PHP. O PHP possui super poderes que podem se tornar um loop de segurança quando não configurados corretamente.
Você pode usar um trabalho cron para verificar quando seus arquivos foram modificados sem sua permissão e possivelmente hackeados; usando este trabalho cron . Prefiro o Notepad ++ para comparar os resultados do cron (baixe diretamente o email do cron do seu servidor da web e abra no Notepad ++).
Se você deseja instalar algum SEM, o cPanel é o melhor preferido (no entanto pago). Webmin e zpanel são muito boas alternativas gratuitas. O Webmin é melhor, pelo menos usa certificados autoassinados e adiciona segurança.
Se você quiser que algo funcione imediatamente, você pode optar pelo Turnkey Linux. É baseado no Ubuntu, extremamente fácil de implementar e flexível para suas necessidades. Com muito pouco esforço, você obtém segurança imediata. Esta é a sua pilha LAMP . Eu pessoalmente uso e prefiro isso apenas.
Se você estiver começando do zero, também poderá instalar o ISPconfig3. Instrução Aqui .
você pode testar sua segurança tentando penetrá-la usando o Back-Track-Linux .
mantenha senhas longas e aleatórias complexas . Não os guarde no PC. escreva-os. Use um CD ao vivo para acessar esses logins.
obtenha um software de proteção de força bruta como o fail2ban.
Não execute os daemons que você não precisa.
Bloqueie todas as portas desnecessárias . tenha muito cuidado com a porta SSH (22).
Obtenha um IP estático no sistema através do qual você gerenciará o servidor. Faça a maioria das coisas do bloco IP e permita apenas que seu IP específico acesse esses locais de configuração como a porta 22.
No final do dia ... trabalhe com total tranqüilidade, não se emocione com a instalação e aplicar o bom senso leva muito além.
**My heartiest best wishes to you. good luck.**
brute force attacks
e dictionary attacks
... Senha longa aleatória é a única maneira de se proteger de tais ataques.
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 do sistema Ubuntu (do Bastille Linux ).
Ele oferece uma funcionalidade de avaliação e relatório, para que você possa dizer quais partes do sistema não estão bloqueadas. Ele examina o sistema somente para leitura, relatando 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 mesmo se as senhas precisam ter um bom tamanho. Você pode dar uma olhada em uma demonstração apenas na Web disso através deste link (mais informações ).
Você pode ter uma prévia da demonstração da Web (apenas) aqui .
Use nmap
em todas as interfaces da máquina, para saber quais serviços você executa na sua máquina. Esta é uma ferramenta essencial para a segurança.
Remova todos os serviços que você não precisa nas suas interfaces externas. Você pode configurar o MySQL para escutar apenas em 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 (com falha) por minuto da mesma máquina. Isso tornará os ataques de força bruta mais difíceis. Alterar o número da porta não é tão útil, apenas obscuridade, sem segurança.
Seja restritivo com o número de contas em 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.
Permita apenas o login ssh na máquina com certificados digitais, sem senha. Isso também tornará os ataques de força bruta difíceis / impossíveis.
Também consultaria o documento CIS Debian Benchmarks e ele possui um número significativo de procedimentos e processos para proteger o sistema operacional que será aplicado ao Ubuntu, pois é um derivado do Debian. Eu também consultaria:
A segurança sempre vem com um preço. Estabelecer limites realistas ajudará você a atingir seus objetivos. Eu consideraria os seguintes aspectos:
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 vantagem, todo comando a ser executado é explicado com uma fonte.
Eu fiz um post sobre isso há pouco tempo sobre como proteger o ubuntu 16.04-18.04. Essas etapas incluem:
Substituir login por senha por chaves autorizadas Instale um firewall no servidor Linux
e um pouco mais https://hostup.org/blog/how-to-secure-a-ubuntu-linux-server-in-3-simple-steps/