O Firewall me bloqueia do ssh

2

Estou apenas tentando criar um script simples que configure o iptables para bloquear todo o tráfego de entrada e saída, exceto o ssh na porta padrão 22 e o udp na porta 8888.

Isso é o que eu tenho:

#!/bin/sh
#
# Flush all current rules from iptables
#
iptables -F

#
# Set default policies for INPUT, FORWARD and OUTPUT chains
#
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

#
# Allow SSH connections on tcp port 22
#
iptables -A INPUT -i eto0 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eto0 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#
# Set access for localhost
#
iptables -A INPUT -i lo -j ACCEPT

#
# Accept connections on 8888 for vpn access from client
#
iptables -A INPUT -i eth0 -p udp --dport 8888 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p udp --sport 8888 -m state --state ESTABLISHED -j ACCEPT

#
# Apply forwarding for OpenVPN Tunneling
#
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT     
iptables -t nat -A POSTROUTING -s 10.8.0.0./24 -o eth0 -j MASQUERADE   
iptables -A FORWARD -j REJECT

#
# Enable forwarding
# 
echo 1 > /proc/sys/net/ipv4/ip_forward

#
# List rules
#
iptables -L -v

Mas quando eu corro eu fico bloqueado do meu vps e tenho que reiniciá-lo para voltar. Eu realmente não consigo ver onde estou indo errado ... também a vpn não vai funcionar depois de correr este firewall.

Eu também queria bloquear todos os pings para o ip público em todas as portas, mas não tenho ideia de como.

    
por Daniel Gratz 03.11.2011 / 10:16

1 resposta

4

para você ser bloqueado porque o motivo é "eto0! = eth0", e configure as políticas no final depois de ter configurado todas as suas regras e ter permitido todo o tráfego de saída em todas as interfaces.

para regras relacionadas a ping, faça man iptables e leia em icmp

Além disso, no futuro, crie uma permissão para todas as regras, algo como

/sbin/iptables -P INPUT ALLOW e o mesmo para OUTPUT e FORWARD e coloca em seu cron para rodar a cada 5/10 minutos para que você possa se logar mesmo que algo saia de mãos.

    
por 03.11.2011 / 11:51