Jogando pesado na segurança de seu SSH

gnu

Agrupamento de uma série de dicas encontradas na internet para a elevação do nível de segurança do serviço SSH.

[ Hits: 66.659 ]

Por: Sidney Alexandre Pagel em 09/11/2005


Configurações básicas



Inicialmente é necessário que comentemos a respeito da porta padrão do serviço SSH, a porta 22. O melhor a fazer é alterar, pois trata-se de uma porta muito "manjada". Todo lammer metido a hacker gosta de usar scripts bruteforce para ficar "batendo" nas portas 22 abertas internet à fora. Quando você altera a porta, eles simplesmente não sabem o que fazer. Você já se livra de uma enxurrada de logs.

Para isso, basta editar o arquivo sshd_config, geralmente contido em /etc/ssh e alterar o seguinte parâmetro:

Port 22

Para:

Port xxx

Onde xxx é o numero da porta que você deseja que o serviço responda.

Muito bem, outro pequeno detalhe diz respeito à seus usuários. Evite que eles tenham um shell válido, o que lhes dá direito a uso de SSH. Retire todos os shells que puder e redirecione todos os usuários possíveis para shells falsos. Para reforçar, permita que apenas um usuário possa acessar o serviço SSH. Edite o arquivo sshd_config novamente e inclua o parâmetro:

AllowUsers nomedousuario

Com relação à senhas, jamais permita senhas em branco em seu serviço SSH. Mais uma vez, dirija-se ao arquivo sshd_config e verifique se o seguinte item encontra-se ativo:

PermitEmptyPasswords no

Agora outra dica importante: não permita que o root utilize serviço SSH, fazendo isso como o parâmetro:

PermitRootLogin no

Muito bem, nosso SSH encontra-se em uma porta despadronizada, não aceita senhas em branco e não aceita logins de root. Agora, outro ponto que pode ser levado em consideração: não permita que o usuário cadastrado no serviço SSH possa tornar-se root por meio do comando "su" inserindo-o no arquivo /etc/suauth, na seguinte sintaxe:

root:nome_usuário_do_ssh:DENY

Dessa forma, um possível atacante terá que descobrir a porta e quebrar 3 senhas para conseguir o acesso root à maquina.

Até aqui, repasso todos os créditos à Ederson L. Corrêa, que publicou artigo no Dicas-L:
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configurações básicas
   3. Camada extra: utilizando o firewall iptables
   4. Breves explicações
   5. Pequeno exemplo e finalização
Outros artigos deste autor

Mais sobre terminais leves....

Configurando um domínio pelo serviço ipturbo empresarial (Brasil Telecom)

Pequena solução para backup em redes mistas

Integrando Nagios com Asterisk

O software livre na administração pública

Leitura recomendada

Recuperar a senha de root iniciando através do init=/bin/bash e alterando o arquivo /etc/shadow

Slackware vs PAM

Montando um completo servidor de backup usando Bacula

Biometria facial na autenticação do usuário root

Bootando CDROM com o grub / lilo

  
Comentários
[1] Comentário enviado por fernoliv em 09/11/2005 - 04:04h

Parabéns Sidney, excelente artigo!

Haja segurança hein...

Abraço, Fernando.

[2] Comentário enviado por melphos em 09/11/2005 - 07:34h

Hehehehehe ...

Parabéns campeão ... ótimo artigo.
Para uma neoroze maior, depois de autenticado, faça o sistema pedir uma senha de acordo com um código, e esse código representa uma senha, igual aquele cartão de segurança dos bancos.

Ex.:
teste.vivaolinux.com.br login: tiosam
Password: <senha>

Para ter acesso ao sistema, você precisa informar o código referente ao número 5: <senha>

teste:~$

tabelinha:
1 23451
2 55234
3 67123
4 12341
5 00982*

* Código pedido no login acima.
PS: Faça o sistema sempre pedir um código diferente.

Um abraço,
Ivan Santos

[3] Comentário enviado por mbmaciel em 09/11/2005 - 07:49h

Nota 10 pro artigo!

vai para os favoritos

[]'s

[4] Comentário enviado por caralegal em 09/11/2005 - 08:22h

valeu, o artigo está bom, fácil de entender e eficaz

[5] Comentário enviado por fernandoiury em 09/11/2005 - 08:27h

Muito engenhoso, parabens a todos que colaboraram.

Favorito nele!


abraços

[6] Comentário enviado por joaofalcao em 09/11/2005 - 10:30h

Parabéns amigo , já foi para os favoritos!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

[7] Comentário enviado por zero_bala em 09/11/2005 - 12:08h

Muito bom!

[8] Comentário enviado por edusachs em 09/11/2005 - 12:23h

MUITO BOM!!!!!!!!

[9] Comentário enviado por rafael_simao em 09/11/2005 - 15:43h

Parabéns pelo Artigo, realmente muito Bom.

[10] Comentário enviado por foca em 09/11/2005 - 17:08h

Realmente a questao da autenticacao primeiro em uma porta para liberacao da outra... foi fantastico... mais que ideia... o artigo em si esta otimo... Parabens...

[]'s

[11] Comentário enviado por julianopimenta em 09/11/2005 - 20:08h

Excelente Parabens!!!
Só uma duvida apartir de que versão o iptables possui esses recursos????

[12] Comentário enviado por gnu em 09/11/2005 - 20:51h

Inicialmente, gostaria de agradecer todos os elogios. Porém, reitero mais uma vez que o artigo na verdade se trata de uma coletânea de idéias. Para mais regras "turbinadas" como essa, participem da comunidae iptables aqui do VOL, onde o mano melphos é o grande guru. Quanto à questão sobre versão, eu utilizo a 1.2.10.

[13] Comentário enviado por kenshin em 09/11/2005 - 22:03h

Parabéns!!!
esse é artigo é 10, já esta nos favoritos...

[14] Comentário enviado por julianopimenta em 10/11/2005 - 12:44h

[root@200-161-23-72 root]# iptables -A internet -p tcp -m tcp --dport 1369 -m state --state NEW -m recent --rcheck --name SSH --resource --seconds 60 --hitcount 3 -j ACCEPTtcount iptables v1.2.11: Couldn't load match `recent':/usr/lib/iptables/libipt_recent.so: cannot open shared object file: No such file or directory

A biblioteca esta faltando uso CL10 iptables 1.2.11

Em que distro foi implementado esse serviço??

[15] Comentário enviado por melphos em 12/11/2005 - 04:36h

Caro,

Utilizo este módulo com Debian, Slackware, Fedora e Suse. Pode ser que no conectiva não venha habilitado. Mas ....

modprobe ipt_recent
Se caregar, recompile o seu iptables, mas gere apenas os binários sem instalar, e copie o libipt_recent.so para /usr/lib/iptables.
Se não carregou, significa que seu kernel não está com o suporte para o módulo recent, então terá que recompilar o kernel. Pode ser tb que já esteja incluido na própria imagem do kernel ( pouco provavel ), ai é so recompilar o iptables.

OBS: Algumas distros, como o Debian, os módulos do iptables estão em /lib/iptables

[]'s
Ivan Santos

[16] Comentário enviado por ggarauj em 27/04/2006 - 10:38h

Bom dia, so para que entenda melhor, sou iniciante, esta configuracao terei q fazer para cada PC. Pois tenho um servidor Red Hart Server 3.0, e varias estações em linux e algumas Windows (Putty), no putty é so mudar a porta de acesso. Agora nas estações tenho que fazer o mesmo ou so tenho q mudar dentro do ssh_config e no sshd_config a porta de 22 para 221 por exemplo.
Muito Obrigado

[17] Comentário enviado por rbn_jesus em 04/07/2007 - 15:38h

muito boa a coletanea que montou!!!!

[18] Comentário enviado por lipecys em 08/11/2007 - 19:28h

Mito bom o artigo hein.
bem explicado......

[19] Comentário enviado por sleck_sc em 10/07/2008 - 17:37h

Ola Pessoal, apliquei esta regras mas não tive sucesso, ele liberou todos os acessos ao ssh mesmo sem envia 3 syn

meu exemplo firewall

libero a porta do ssh
e no final do arquivo colo as regras de seguraça deste artigo,

e mesmo na primeira requisição ele já libera o acesso!

alguem pode me ajudar,,

otimo artigo!

[20] Comentário enviado por gui.routing em 18/05/2012 - 21:45h

lembrando> a um nivel mediano! hehehehe...

[21] Comentário enviado por ziulhenriq em 03/06/2016 - 11:04h

Pessoal, ótimo o artigo, mas acredito que de para melhorar ainda mais e simplificar utilizando o CSF FIREWALL CONFIG SERVER

Ele tem o modulo anti brute force, que basicamente bloqueia o ip do 'atacante' após um certo numero de tentativas de login invalido, e não só isso, ele possui diversos módulos para combate e notificações de conexões suspeitas no servidor, tentativas falhas de todos os serviços, smtp, ftp, ssh, etc, e trabalha junto com o iptables.

Para quem quiser:

http://configserver.com/cp/csf.html

This suite of scripts provides:

Straight-forward SPI iptables firewall script
Daemon process that checks for login authentication failures for:
Courier imap, Dovecot, uw-imap, Kerio
openSSH
cPanel, WHM, Webmail (cPanel servers only)
Pure-ftpd, vsftpd, Proftpd
Password protected web pages (htpasswd)
Mod_security failures (v1 and v2)
Suhosin failures
Exim SMTP AUTH
Custom login failures with separate log file and regular expression matching
POP3/IMAP login tracking to enforce logins per hour
SSH login notification
SU login notification
Excessive connection blocking
UI Integration for cPanel, DirectAdmin and Webmin
Easy upgrade between versions from within cPanel/WHM, DirectAdmin or Webmin
Easy upgrade between versions from shell
Pre-configured to work on a cPanel server with all the standard cPanel ports open
Pre-configured to work on a DirectAdmin server with all the standard DirectAdmin ports open
Auto-configures the SSH port if it's non-standard on installation
Block traffic on unused server IP addresses - helps reduce the risk to your server
Alert when end-user scripts sending excessive emails per hour - for identifying spamming scripts
Suspicious process reporting - reports potential exploits running on the server
Excessive user processes reporting
Excessive user process usage reporting and optional termination
Suspicious file reporting - reports potential exploit files in /tmp and similar directories
Directory and file watching - reports if a watched directory or a file changes
Block traffic on the DShield Block List and the Spamhaus DROP List
BOGON packet protection
Pre-configured settings for Low, Medium or High firewall security (cPanel servers only)
Works with multiple ethernet devices
Server Security Check - Performs a basic security and settings check on the server (via cPanel/DirectAdmin/Webmin UI)
Allow Dynamic DNS IP addresses - always allow your IP address even if it changes whenever you connect to the internet
Alert sent if server load average remains high for a specified length of time
mod_security log reporting (if installed)
Email relay tracking - tracks all email sent through the server and issues alerts for excessive usage (cPanel servers only)
IDS (Intrusion Detection System) - the last line of detection alerts you to changes to system and application binaries
SYN Flood protection
Ping of death protection
Port Scan tracking and blocking
Permanent and Temporary (with TTL) IP blocking
Exploit checks
Account modification tracking - sends alerts if an account entry is modified, e.g. if the password is changed or the login shell
Shared syslog aware
Messenger Service - Allows you to redirect connection requests from blocked IP addresses to preconfigured text and html pages to inform the visitor that they have been blocked in the firewall. This can be particularly useful for those with a large user base and help process support requests more efficiently
Country Code blocking - Allows you to deny or allow access by ISO Country Code
Port Flooding Detection - Per IP, per Port connection flooding detection and mitigation to help block DOS attacks
DirectAdmin UI integration
Updated Webmin UI integration
WHM root access notification (cPanel servers only)
lfd Clustering - allows IP address blocks to be automatically propagated around a group of servers running lfd. It allows allows cluster-wide allows, removals and configuration changes
Quick start csf - deferred startup by lfd for servers with large block and/or allow lists
Distributed Login Failure Attack detection
Temporary IP allows (with TTL)
IPv6 Support with ip6tables
Integrated UI - no need for a separate Control Panel or Apache to use the csf configuration
Integrated support for cse within the Integrated UI
cPanel Reseller access to per reseller configurable options Unblock, Deny, Allow and Search IP address blocks
System Statistics - Basic graphs showing the performance of the server, e.g. Load Averages, CPU Usage, Memory Usage, etc
ipset support for large IP lists
...lots more!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts