Ajuda com IPtables e conexão SSH no Ubuntu VPS

3

Procurando ajuda com uma configuração VPS. Eu sou um desenvolvedor web que está tentando configurar um Ubuntu VPS de 64 bits. Mudei a porta SSH para 30000, adicionei um usuário com todos os privilégios e configurei o IPtables usando o seguinte script

*filter

#  Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -i ! lo -d 127.0.0.0/8 -j REJECT

#  Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allows all outbound traffic
#  You could modify this to only allow certain traffic
#  This is in addition to allowing established and related traffic as listed above
-A OUTPUT -j ACCEPT


# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT


#  Allows SSH connections from trusted-host only - drop the rest
#
# CHANGE THE TRUSTED-HOST DETAILS AFTER THE WORD --source
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
#
-A INPUT -p tcp -m state --state NEW --source mydomain.com --dport 30000 -j ACCEPT
-A INPUT -p tcp --dport 30000 -j DROP

# Create time lock for non-wanted SSH attempts of a period of 1 minute
-A INPUT -p tcp -m state --syn --state NEW --dport 30000 -m limit --limit 1/minute       --limit-burst 1 -j ACCEPT
-A INPUT -p tcp -m state --syn --state NEW --dport 30000 -j DROP


# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT


# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7


# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

Quando eu tento SSH usando o comando ssh padrão recebo um erro de conexão recusada, o que é esperado, mas quando eu tento este comando, o terminal parece travar e não responde e nenhuma conexão é feita.

ssh -p 30000 user@ipaddress

Estou fazendo algo óbvio com o comando ssh ou há um erro com o script iptables?

Toda ajuda é muito apreciada!

    
por user866190 21.08.2011 / 18:20

2 respostas

2

Verifique se o endereço IP que mydomain.com resolve é o mesmo endereço IP do qual você está tentando se conectar. Eu posso fazer a mesma coisa que você vê acontecer, se eu criar a situação, ligando de uma máquina com o endereço IP errado.

Esta linha em particular

-A INPUT -p tcp --dport 30000 -j DROP

faz com que o terminal pareça travar ao conectar da máquina errada. Remover a linha e conectar da máquina errada me dá a mensagem de erro

ssh: connect to host host.lan port 22: No route to host

Ao longo de tudo isso, posso me conectar usando uma máquina que tenha o endereço IP correto, conforme resolvido por mydomain.com .

    
por 21.08.2011 / 19:06
4

Eu sou péssimo com o iptables, mas o que vou dizer é que rodar o ssh em uma porta não padrão é basicamente fútil. Você não pode presumir que as pessoas não encontrarão a porta - portanto, você precisa incluir toda a proteção usual (restringir o acesso a usuários específicos ou máquinas clientes específicas, desativar o acesso por senha e permitir acesso somente por chave, etc.)

Nesse caso, a mudança de porta é apenas mais incômodo do que vale a pena.

O que eu gostaria de sugerir, mesmo se você quiser movê-lo para uma porta diferente, é fazê-lo funcionar na porta normal usando a configuração normal primeiro e, em seguida, você pode alterar a porta sabendo que ela costumava funcionar. A alteração da porta pode ser a causa de quaisquer problemas.

    
por 21.08.2011 / 18:33

Tags