Whitelist permitiu IPs (in / out) usando iptables

19

Eu tenho alguns intervalos de IP para os quais eu quero que meu servidor possa se conectar e os usuários se conectem. Todo o resto deveria estar bloqueado.

Como devo fazer isso com o iptables?

Meu sistema operacional é uma distribuição Linux baseada no Debian.

    
por Frank Bannister 23.06.2009 / 00:25

5 respostas

27

Eu sugeriria usar uma ferramenta de configuração de firewall, como Firestarter , e a partir daí. Aqui estão alguns princípios básicos para você, no entanto.

#Flush existing rules
iptables -F
# Set up default DROP rule for eth0
iptables -P INPUT DROP
# Allow existing connections to continue
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Accept everything from the 192.168.1.x network
iptables -A INPUT -i eth0 -s 192.168.1.0/24 -j ACCEPT
# Allow connections from this host to 192.168.2.10
iptables -A OUTPUT -o eth0 -d 192.168.2.10 -j ACCEPT
    
por 23.06.2009 / 00:49
14
iptables -I INPUT -s <allowed_ip> -j ACCEPT #(repeat this line as needed)
iptables -P INPUT DROP

Isso transformará seu sistema em um sistema inexistente para computadores não permitidos.

    
por 23.06.2009 / 00:47
7

Se você quiser permitir intervalos arbitrários ao invés de sub-redes inteiras, você pode usar o módulo iptables 'iprange':

iptables -P INPUT DROP

iptables -A INPUT -m iprange --src-range 192.168.1.30-50 -j ACCEPT

por exemplo, permitirá o tráfego proveniente de todas as máquinas com endereços entre 192.168.1.30 e 192.168.1.50.

Se você quiser permitir o tráfego de entrada e saída para o mesmo intervalo de IPs, sugiro que crie uma cadeia específica que permita que os IPs segmentem todos os alvos de entrada e saída:

- defina as políticas padrão para eliminar everithing:

iptables -P INPUT DROP

iptables -P OUTPUT DROP

- crie a nova cadeia:

iptables -N allowed_ips

- se a fonte fizer parte do intervalo permitido, aceite

iptables -A allowed_ips -m iprange --src-range 192.168.1.30-50 -j ACCEPT

- se não, retorne à cadeia de chamadores para continuar o processamento

iptables -A allowed_ips -j RETURN

- faz todo o tráfego entrar e sair da máquina passar por nossa nova cadeia

iptables -A INPUT -j allowed_ips

iptables -A OUTPUT -j allowed_ips

e pronto! é claro que você pode precisar de regras adicionais, como uma que permita todo o tráfego de / para a interface, etc.

    
por 23.06.2009 / 02:07
1

Quando estiver satisfeito com as suas regras, você provavelmente desejará salvá-las . Os comentários neste link têm várias opções sobre como fazer isso.

Um gerador de regras de iptables fácil de usar para necessidades simples é ufw . O pacote está disponível no debian unstable.

Tente também Firestarter . Disponível no lenny.

    
por 23.06.2009 / 02:25
0

Você também pode usar o ferm que eu também uso no ano passado e me ajudou muito com casos como regras de firewall condicionais.

    
por 13.05.2016 / 12:35