Ubuntu 1404, iptables, bloqueia tudo exceto ips específicos

1

Estou tentando bloquear qualquer coisa no meu servidor, exceto por alguns intervalos de IP específicos. Não deve haver acesso da web nem do ssh ou de qualquer outra coisa.

Eu já pesquisei diferentes tópicos e encontrei uma solução que soa bem:

iptables -P INPUT DROP
iptables -A INPUT -s IP/24 -j ACCEPT

Na verdade, a queda funciona como deveria, mas assim que eu executar o comando, estou desconectando. Estou conectado através de um cliente ssh. Eu também tentei criar um script bash. Mas depois da queda também me cai e parece que o roteiro não termina.

O que posso fazer para alcançar meu objetivo?

    
por Michael Schneider 02.09.2014 / 12:42

2 respostas

1

Como ananthan já observou, primeiro você deve inverter a ordem em que você define política e exceção. Se você definir a política primeiro, seu servidor não terá como saber que você está prestes a definir uma exceção e, portanto, bloqueia você. Se você definir a exceção primeiro, ela já estará em vigor e isentará seu tráfego quando a política estiver definida.

Em segundo lugar, se você quiser o intervalo de IP 10.10.0.0 - 10.10.255.255 , precisará de uma máscara de rede mais ampla. Tente 10.10.0.0/16 em vez disso. Você também pode encontrar nossa pergunta canônica sobre sub-redes IPv4 para ser útil.

Finalmente, obrigado por ser tão gentil em relação à resposta a essa pergunta (leitores com privilégios suficientes para ver respostas excluídas saberão o que quero dizer); Se Ananthan vier mais tarde e escrever um, eu ficarei encantado em retirar minha resposta a seu favor.

    
por 03.09.2014 / 09:46
1

Você deve primeiro permitir a conexão localhost e, em seguida, seu endereço IP ou sua rede.

Exemplo: se o seu endereço IP é algo como 192.168.1.20, você pode permitir apenas o seu endereço IP ou toda a rede.

# Allow connection from localhost
iptables -A INPUT -s 127.0.0.1/32 -j ACCEPT

# Allow my IP address.
iptables -A INPUT -s 192.168.1.20/32 -j ACCEPT

# ... or allow my entire network
iptables -A INPUT -s 192.168.1.1/24 -j ACCEPT

# Filter invalid packets
iptables -A INPUT -m state --state INVALID -j DROP

# Drop some custom ports
iptables -A INPUT -p tcp -m tcp --dport 22 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP

# ... or allow some custom ports
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

# Allow related and established connection
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

# And drop all
iptables -A INPUT -s 0.0.0.0 -j DROP

Este é apenas alguns exemplos e não a solução perfeita. Há muito mais coisas que você pode fazer com o iptables.

Por outro lado, você pode verificar a página do manual do Ubuntu 14.04 Firewall .

    
por 02.09.2014 / 16:48

Tags