Quero bloquear o acesso à porta 6379 no meu servidor, mas ainda quero conectar-me a ela internamente. O aplicativo redis-server é executado nessa porta e eu quero conectar-me apenas localmente (127.0.0.1). Como posso fazer isso?
Quero bloquear o acesso à porta 6379 no meu servidor, mas ainda quero conectar-me a ela internamente. O aplicativo redis-server é executado nessa porta e eu quero conectar-me apenas localmente (127.0.0.1). Como posso fazer isso?
Respostas:
Para fazer isso, você precisa verificar se as regras do IPTables estão configuradas corretamente. O Ubuntu geralmente deixa seus servidores totalmente abertos por padrão, e é por isso que eu ainda não recomendo o uso deles como servidores, a menos que você já esteja bem ciente de como fazer isso corretamente.
Eu imagino que você se iptables -L -nv
parece com isso, 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á aberto. O Ubuntu IPTables HowTo provavelmente ajudará bastante com isso. ( https://help.ubuntu.com/community/IptablesHowTo )
Eu recomendo algo parecido com isto, que permite SSH em qualquer interface e tcp 6379 em qualquer interface, exceto a que você não deseja:
*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, quaisquer outras portas que você deseja abrir especificamente devem ser adicionadas.
Nota: eu adicionei as 6379 linhas específicas para maior clareza. A parte inferior ACCEPT logo antes do COMMIT realmente permitiria isso, porque todas as conexões de loopback devem ser permitidas em um sistema Linux para uma operação adequada.
Você também deseja colocar as regras no seu arquivo / etc / network / interfaces, para garantir que elas sejam adicionadas quando a interface surgir e não mais tarde no processo de inicialização. É recomendável adicionar 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
Bem, eu sugeriria usar o "firewall não complicado" (ufw), que também é recomendado pela canonical. Ler e escrever iptables é muito complicado para tarefas ocasionais de bloqueio de portas.
Algo como
iptables -A INPUT -s 0.0.0.0 -i eth0 --protocol tcp --dport 6379 -j DROP
Deveria trabalhar.