Verificação de segurança
Como saber se o sistema foi comprometido?
É possível utilizar muitos utilitários de linha de comando para fazer uma análise.
Usuários logados
O comando
wouwho, mostra quem está logado atualmente.Já o comando
last, informa o histórico de quem acessou o servidor.
Histórico de comandos
No arquivo
.bash_historyficam registrados os comandos executados.Podemos verificar os últimos 100 utilizando o comando abaixo:
tail -n 100 ~/.bash_history | more
Arquivos que foram modificados recentemente
Pode-se verificar quais arquivos foram modificados recentemente.
O comando abaixo mostra quais arquivos foram modificados nos últimos
5dias:sudo find /home /etc /var -mtime -5
Conexões de rede
netstat
O comando
netstatpermite observarmos as conexões que estãochegandoesaindodo nosso servidor.-tindica conexões TCP-uindica conexões UDP-pprograma que está utilizando a porta-amostra todas interfaces-nnão resolve os nomes de redesudo netstat -tupan
lsof
Com o comando
lsof -u userconseguimos ver quais arquivos estão abertos pelo usuáriouser.Da mesma maneira, com o parâmetro
-ipodemos observar quais programas estão utilizando endereços de rede.sudo lsof -i
ssh
Verificar tentativas de acesso
sshao servidor.Com journalctl:
journalctl -u ssh.service.Adicione o parâmetro
-fpara ver apenas as novas entradas.O parâmetro
-n 20mostra apenas as últimas 20 entradas.-rmostra em ordem reversa, sendo os mais novos primeiro
rkhunter
Segundo a documentação:
O Rootkit Hunter verifica os sistemas em busca de rootkits, backdoors, sniffers e exploits conhecidos e desconhecidos. Ele verifica: Alterações de hash SHA256; arquivos comumente criados por rootkits; executáveis com permissões de arquivo anômalas; strings suspeitas em módulos do kernel; arquivos ocultos em diretórios do sistema; e pode, opcionalmente, verificar dentro de arquivos.
Em distribuições baseadas em Ubuntu, pode-se instalar com:
apt-get install rkhunter.Uma checagem pode ser executada passando o parâmetro
-a:rkhunter -aListar os testes é possível passando o parâmetro
--list.
Verificação de performance
Antes de fazer a instalação dos serviços no servidor, uma boa prática é conferir se o ambiente entregue está pronto para produção.
O que podemos testar:
[ ] Velocidade de download/upload
[ ] Velocidade de escrita em disco - IO
[ ] Teste de stress de CPU
[ ] Reputação do IP público
Velocidade de download/upload
# Velocidade de Download/Upload
# Utilizando o repositório oficial
sudo apt-get install curl -y
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest -y
# Com docker - utilizando image de terceiros
docker run --rm wesbragagt/alpine-speedtest
Velocidade de escrita em disco
Utilizando o comando
dd:# Velocidade de escrita em disco - Irá criar um arquivo de 10GB contendo '0' dd if=/dev/zero of=./testfile bs=1G count=10 oflag=direct status=progress
Utilizando o comando
fio, o qual permite testes mais avançados:# Teste de escrita aleatória fio --name=random-write --ioengine=libaio --rw=randwrite --bs=4k --size=1G --numjobs=1 --runtime=60 --time_based --end_fsync=1
Segundo a documentação:
Fio gera uma série de threads ou processos que executam um tipo específico de ação de E/S, conforme especificado pelo usuário. fio recebe uma série de parâmetros globais, cada um herdado pela thread, a menos que parâmetros que substituam essa configuração sejam fornecidos. O uso típico de fio é escrever um arquivo de tarefa correspondente à carga de E/S que se deseja simular.
Teste de stress de CPU
Para testes de stress de CPU, pode-se utilizar os seguintes comandos:
stress,sysbench.Visualize o teste com o comando
htop. Execute os comando em segundo plano colocando&ao final de cada comando.# Teste por 60 segundos com 4 threads stress --cpu 4 --timeout 60s # Teste de CPU (primos até 20000) sysbench cpu --cpu-max-prime=20000 run
É possível definir quantas threads serão executadas:
Para verificar quantas thread tem o seu processador:
grep processor /proc/cpuinfo | wc -lsysbench cpu run --threads=16
Com
sysbenché possível fazer testes de CPU, Memória, Entrada/Saída, performance de banco de dados.
Reputação do IP público
Ao adquirir um serviço na nuvem, pode-se verificar a reputação do endereço IP.
Abaixo estão alguns sites que oferecem maneiras de verificar a reputação bem como fazer denúncias caso um IP esteja sendo usado de maneira indevida.
Para descobrir o seu endereço IP pela linha de comando podes usar ``curl ifconfig.me``