Como posso bloquear a porta 6379 para tráfego externo no Ubuntu?

7

Eu quero bloquear o acesso à porta 6379 no meu servidor, mas ainda quero me conectar a ele internamente. O aplicativo redis-server é executado nessa porta e eu quero conectá-lo apenas localmente (127.0.0.1). Como posso fazer isso?

    
por Steve Rodrigue 21.04.2012 / 17:42

3 respostas

10

Para fazer isso, você precisa ter certeza de que suas regras do IPTables estão configuradas corretamente. O Ubuntu geralmente deixa seus servidores abertos por padrão, e é por isso que eu ainda não recomendo o uso deles como servidores, a menos que você esteja bem ciente de como fazer isso corretamente já.

Eu imagino que seu iptables -L -nv seja algo assim, sim?

# iptables -L -nv
Chain INPUT (policy ACCEPT 4M packets, 9M bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain OUTPUT (policy ACCEPT 8M packets, 4M bytes)
 pkts bytes target     prot opt in     out     source               destination

Está vazio e está bem aberto. O Ubuntu IPTables HowTo provavelmente ajudará bastante com isso. ( link )

Eu recomendo algo como isso, que permite SSH em qualquer interface e tcp 6379 qualquer interface, mas o que você não quer:

*filter
:INPUT DROP [92:16679]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [203:36556]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -p tcp -m tcp --dport 6379 -j ACCEPT
-A INPUT -i lo -p udp -m udp --dport 6379 -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT

Você salvaria esse arquivo em /etc/iptables.rules.

Obviamente, qualquer outra porta que você queira abrir deve ser adicionada.

Nota: adicionei as linhas específicas 6379 para maior clareza. A parte inferior ACCEPT, antes do COMMIT, permitiria isso, porque todas as conexões de loopback devem ser permitidas em um sistema Linux para operação adequada.

Você também desejará colocar as regras em seu arquivo / etc / network / interfaces, para garantir que elas sejam adicionadas quando a interface aparecer e não mais tarde no processo de inicialização. Recomenda-se algo assim:

auto eth0
iface eth0 inet dhcp
  pre-up iptables-restore < /etc/iptables.rules

Edit: Para carregar esta configuração inicialmente, você precisa executar o comando iptables-restore mencionado acima:

iptables-restore < /etc/iptables.rules
    
por 21.04.2012 / 18:05
3

Bem, eu sugiro usar o "firewall descomplicado" (ufw), que também é recomendado pelo canonical. Ler e escrever iptables é muito complicado apenas para tarefas ocasionais de bloqueio de portas.

Veja aqui: link

    
por 16.10.2012 / 06:39
2

Algo como

iptables -A INPUT -s 0.0.0.0  -i eth0 --protocol tcp --dport 6379 -j DROP

Deve funcionar.

    
por 21.04.2012 / 17:56