Regra Iptable para ssh pela internet

0

Eu tenho um servidor abc.example.com e uma área de trabalho remota zzz.example.com . Estou usando o SSH em uma porta personalizada, digamos, 6789. Sempre que meu firewall está desativado, consigo conectar-me ao servidor com êxito. Mas, assim que eu começar meu firewall, em vão.

Além disso, desejo permitir a sessão ssh apenas entre abc.example.com e zzz.example.com , por motivos de segurança.

Esta é a regra que eu adicionei ao meu iptables no servidor,

iptables -A INPUT -s zzz.example.com -m state --state NEW,ESTABLISHED -p tcp --dport 6789 -j ACCEPT
    
por Harshal Kshatriya 24.05.2013 / 13:11

1 resposta

1

Se você não tiver uma regra para ativar o tráfego de ESTABLISHED conexões, precisará de uma regra que permita o tráfego do seu host para o sistema remoto. É comum ter uma primeira regra assim:

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Depois, você pode ativar seu acesso com uma regra como:

iptables -A INPUT -s zzz.example.com -p tcp --dport 6789 -j ACCEPT

Como alternativa, você pode usar um criador de firewall como shorewall e ativar port knocking para abrir a porta por alguns segundos, quando necessário.

Se o seu daemon ssh suportar tcp_wrapers , você poderá limitar o acesso com os arquivos /etc/hosts.allow e /etc/hosts.deny . Mesmo que você tenha consertado o firewall, talvez queira usar esse recurso para notificá-lo quando forem feitas conexões remotas. As seguintes regras bloqueiam vários domínios de país e enviam um email a cada succ

sshd :          ALL \
            EXCEPT .ar .au .br .by .cl .co .cz .do .eg .gt \
                .id .il .in .jp .ma .mx .nl .pe .pk .pl .pt \
                .ro .rs .ru .sa .sg .tr .tw .ua .vn .za \
                .ae .at .bg .gh .hr .hu .ke .kz .lt .md \
                .my .no .sk .uy .ve : \
            spawn (/bin/echo "SSH connection to %N from %n[%a] allowed" | \
                /usr/bin/mailx -s "SSH Allowed" [email protected])

EDIT: Usar nomes de domínio em regras não é uma boa ideia:

  • As pesquisas de DNS podem não estar disponíveis quando as regras são carregadas. (Isso é quando o nome é convertido em um endereço IP.)
  • Os clientes sem endereços IP estáticos podem obter novos endereços, que não estão disponíveis devido ao armazenamento em cache do DNS. Endereços IP antigos podem ser deixados com acesso, enquanto o novo endereço não tem acesso. Endereços IP estáticos com entradas de host locais funcionam de maneira razoavelmente confiável.

Se você tiver um endereço dinâmico, proteja o acesso de um intervalo de endereços IP relativamente grande ou use a porta batendo. Você pode usar fail2ban ou um programa semelhante para bloquear endereços que estão testando seu serviço ssh. tcpwrappers pode ser usado como acima para colocar restrições sobre quais endereços podem se conectar e adicionar logs adicionais. Se você não se conectar com frequência, talvez seja necessário registrar tentativas bem-sucedidas e malsucedidas.

    
por 25.05.2013 / 05:27