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.630 ]

Por: Sidney Alexandre Pagel em 09/11/2005


Camada extra: utilizando o firewall iptables



Agora entra a participação do amigo melphos, que eu considero a mais importante implementação de segurança para SSH de todo o artigo. Tomemos por acordo que você tenha seu serviço SSH rodando na porta 221. Veja as seguintes regras de iptables:

1) iptables -A INPUT -p tcp -m tcp --dport 221 -m state --state NEW -m recent --rcheck --name SSH --rsource --seconds 60 --hitcount 3 -j ACCEPT

2) iptables -A INPUT -p tcp -m tcp --dport 222 -m state --state NEW -m recent --name SSH --remove -j DROP

3) iptables -A INPUT -p tcp -m tcp --dport 223 -m state --state NEW -m recent --set --name SSH --rsource -j DROP

4) iptables -A INPUT -p tcp -m tcp --dport 224 -m state --state NEW -m recent --name SSH --remove -j DROP

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

ASTNAGIOS 2.0 + FAN - Solução completa para monitoramento

O software livre na administração pública

Pequena solução para backup em redes mistas

NagVis - Gestor de mapas pra lá de especial

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

Leitura recomendada

ARP Poisoning: compreenda os princípios e defenda-se

Integrando ModSecurity ao NGINX e Apache

Identificando dispositivos IoT usando Wireshark e criando uma estratégia interessante de visibilidade em Linux e Unix

IDS com Debian 4, Snort 2.8.3.1 e BASE 1.4.1

Detectando vulnerabilidades com o Nessus

  
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