Bloquear o acesso SSH de países específicos

1

Eu encontrei este script acessível on-line e gostaria de modificá-lo para bloquear apenas o acesso SSH, mas eu não sei nada sobre o iptables e Im receio que eu mate meu sistema, pois não tenho acesso físico a ele.

link

O que devo mudar para apenas descartar a porta 22, por favor?

Eu sei hackers podem usar proxies etc e isso não será minha única segurança. Essa razão é apenas para reduzir o número de e-mails fail2ban que recebo sobre ataques automatizados da China:)

Obrigado Maciej

    
por Maciej Swic 01.06.2013 / 11:54

2 respostas

3

Você precisa do equivalente a isso na sua distro:

$ apt-cache show xtables-addons-common
Package: xtables-addons-common
Description-en: Extensions targets and matches for iptables [tools, libs]
 Xtables-addons provides extra modules for iptables not present in the
 kernel, and is the successor of patch-o-matic.
 Extensions includes new targets like TEE, TARPIT, CHAOS, or modules like
 geoip and account.

Você está interessado no módulo geoip . Em seguida, adicione algumas regras ao seu iptables .

Verifique o quarto ponto no HOWTO.

Um simples passo a passo pelas regras de exemplo:

# iptables -A INPUT -m geoip --src-cc A1,A2 -j DROP

O comando acima adiciona uma regra na cadeia INPUT que usa o módulo geoip para corresponder conexões originárias de um país específico, identificadas por seu código ISO 3661 . Nesse caso, A1 e A2 representam:

 A1 => "Anonymous Proxy" ,
 A2 => "Satellite Provider" ,

Este comando usa a negação ( ! ) para inverter a correspondência, resultando em todo o tráfego não originário do país especificado (CA, neste caso) sendo descartado:

# iptables -A INPUT -m geoip ! --src-cc CA -j DROP

O último exemplo mostra como criar uma cadeia personalizada para analisar o tráfego para o seu sshd server:

# iptables -N SSH_GEOIP
# iptables -A SSH_GEOIP -m geoip --src-cc CA
# iptables -A SSH_GEOIP -m geoip --src-cc DE
# iptables -A SSH_GEOIP -m geoip --src-cc US
# iptables -A SSH_GEOIP -m geoip --src-cc JP
# iptables -A SSH_GEOIP -m geoip --src-cc FR
# iptables -A SSH_GEOIP -m geoip ! --src-cc CA,DE,US,JP,FR
# iptables -A INPUT -p tcp --dport 22 -j SSH_GEOIP 
    
por 01.06.2013 / 12:09
0

Como alternativa, você pode filtrar qualquer tráfego ssh usando o arquivo hosts.deny e, em seguida, permitir o tráfego de países selecionados especificamente consultando um script de shell no arquivo hosts.allow . Veja este tutorial: link

    
por 07.09.2018 / 12:55