No iptables eu tenho uma regra para o ssh, porque não funciona?

-1

Alterei todas as cadeias do iptables para DROP e criei uma regra para permitir ssh do computador (10.21.0.40, oculto NAT, eth1) para o Ubuntu Server (172.16.21.1, static ip, eth0), aqui está a regra:

sudo iptables -I INPUT 1 -p tcp -dport 22 -i eth1 -s 10.21.0.40 -d 172.16.21.1 -m conntrack --ctstate NEW -j ACCEPT

e quando estou tentando conectar do computador ao servidor ubuntu no ssh, recebo o erro:

connect to host 172.16.21.1 port 22: Connection refused

por que isso acontece?

    
por Benny 29.11.2015 / 11:51

2 respostas

0

A regra estava bem, esqueci de instalar o open-ssh.

    
por Benny 08.12.2015 / 16:42
1

A regra que você citou não funcionaria devido a erros de sintaxe. Além disso, você tinha dois outros problemas:

  • você só permitiu conexões de entrada que possuem apenas o sinalizador SYN definido (novas conexões)
  • você define a política padrão como DROP for OUTPUT sem permitir que as respostas sejam eliminadas. Como o servidor SSH enviaria suas respostas?

O conjunto completo de regras para adicionar na máquina que você deseja aceitar conexões SSH de entrada:

# Flush all the rules in all tables
iptables -F
iptables -t nat -F

# Delete all user defined tables
iptables -X

# Set default policies (you normally leave OUTPUT as 'ACCEPT')
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP

# Allow local connections
iptables -A INPUT -i lo -j ACCEPT

# Allow ICMP traffic (optional)
iptables -A INPUT -i lo -j ACCEPT

# Allow TCP sessions that are already established
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Finally, allow incoming SSH connections.
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    
por Marcin Kaminski 29.11.2015 / 14:08