Eu tenho uma máquina debian rodando vários serviços, como apache com http e https, jabber e um servidor openssh para administração. O servidor ssh não está rodando na porta 22. Está em algo como a porta 62111. Eu protejo o openssh com fail2ban. Portanto, sempre que um invasor tenta se conectar ao ssh na porta 62111, ele tem duas tentativas antes de ser banido por dois dias pelo fail2ban na porta 62111.
Eu gostaria de iniciar um servidor SSH (falso) na porta 22 e sempre que alguém tentar se conectar a essa porta ele será banidotodosporta pelo iptables para sempre ou pelo menos até eu abandonar a regra do iptables. Qualquer conexão SSH legal não tentará fazer ssh na porta 22, porque todo administrador conhece a porta SSH correta.
A ideia é que um invasor tente atacar primeiro a porta 22. Portanto, ele nem teve a chance de tentar fazer o SSH na porta 62111. Não me importo com esses crackers para ver meu site. Portanto, não há problema em bloqueá-los em qualquer porta (incluindo 80 e 443).
Alguma sugestão sobre como fazer isso?
Responder1
Vou tentar sugerir outra solução para os paranóicos :)
http://www.portknocking.org/view/
Funciona exigindo tentativas de conexão a uma série de portas fechadas predefinidas. Quando a sequência correta de "tocadas" nas portas (tentativas de conexão) é recebida, o firewall abre determinadas portas para permitir uma conexão.
E, claro, apenas autenticação de chave SSH.
Responder2
Não é uma boa ideia (IMHO).
Uma conexão com a porta 22 não significa automaticamente que alguém está tentando invadir seu servidor.
Para proteger seu servidor de hackers/crackers siga algumas regras simples (ex).
- Use ferramentas como fail2ban sábio
- mantenha seus serviços (ssh, http,...) sempre atualizados
- use senhas fortes (e altere-as circularmente)
- use chaves ssh para sshd e desative a autenticação por senha
Responder3
Se você quiser executar o sshd em outra porta e ainda usar o mesmo fail2ban etc - encontrei um manual muito bom e semelhante aqui:http://www.kudos.be/multiple_sshd
Vou postar novamente e mudar as coisas para você aqui:
O objetivo é executar o mesmo daemon em duas portas diferentes e desabilitar qualquer tipo de autenticação em uma instância.
Configuração de cópia:
cd /etc/ssh/sshd_config /etc/ssh/sshd_config-fake
altere a configuração de acordo com isto:
alterar
Port
,SyslogFacility
,*Authentication
strings (desativar para falso),PidFile
crie o link simbólico: ln -s /usr/sbin/sshd /usr/sbin/sshd-fake
crie o script de inicialização:
cp /etc/init.d/sshd /etc/init.d/sshd-fake
e modifique o conteúdo do arquivo sshd-fake de acordo.altere /etc/sysconfig/sshd-fake:
OPTIONS="-f /etc/ssh/sshd_config-fake"
adicionar serviço
chkconfig --add sshd-fake
criar configuração pam:
cp /etc/pam.d/sshd /etc/pam.d/sshd-fake
edite /etc/pam.d/sshd-fake e proíba tudo, ou use um método diferente, como permitir usuários listados no arquivo:http://linux.die.net/man/8/pam_listfile
reinicie os serviços:
service sshd restart;service sshd-fake restart;chkconfig sshd-fake on
configure o fail2ban adequadamente
Responder4
Pode não ser o mais elegante, mas deve ser rápido e funcional:
iptables -I INPUT --m recent --name blocked --rcheck -j DROP
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --name blocked --set
Explicação:
Insira uma regra de firewall (no topo) na cadeia de entrada, que verifica se o endereço de origem do pacote está atualmente na lista de "bloqueados" e, se estiver, DROP-o.
Insira outra regra de firewall (acima daquela que acabamos de inserir) na cadeia de entrada que adiciona o endereço de origem de qualquer tentativa de conexão à porta 22 à lista de "bloqueados".
Não vejo necessidade de executar um servidor (falso) ou qualquer ouvinte na porta 22.
Editar: olhando minha resposta, quero acrescentar que você provavelmente deveria expirar sua lista de bloqueados de alguma outra forma que não
"para sempre ou pelo menos até eu abandonar a regra do iptables"
porque você receberá muitos acessos de endereços IP dinâmicos que serão posteriormente (em questão de horas ou até minutos) reatribuídos a usuários legítimos.
Ver:http://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html#ss3.16