Como posso implementar uma lista branca em uma porta específica usando o iptables?

0

Estou tentando implementar um conjunto de regras usando o iptables que bloqueia o tráfego de entrada com um determinado dport por padrão, mas permite o tráfego de entrada se o endereço IP ou MAC de origem estiver em uma determinada lista de desbloqueio.

Até agora, só estou ciente de poder aplicar uma política global DROP a uma cadeia ( INPUT / OUTPUT , etc.), mas não tenho certeza sobre como aplicar esse tipo da política para conexões de entrada apenas em uma determinada porta.

    
por Jules 17.08.2016 / 19:34

2 respostas

1

A partir da sua descrição, este é um problema bastante simples no iptables. Eu abordaria isso em três etapas.

Adicione uma nova cadeia para sua política:

iptables -N MYCHAIN

Defina uma lista de portas na cadeia INPUT para a porta de destino que você deseja processar:

iptables -A INPUT -p <protocol, either tcp or udp> -m <again, protocol, match the '-p' switch value> --dport <portnum> -j MYCHAIN

O que isto faz é definir as portas específicas e depois "saltar" para as regras da cadeia nomeada (MYCHAIN, neste caso).

Agora, configure as regras em MYCHAIN para permitir / negar o tráfego para as portas descritas.

iptables -A MYCHAIN -s <source_IP> -j ACCEPT
iptables -A MYCHAIN -s <other_source_IP> -j ACCEPT
iptables -A MYCHAIN -J DROP

Na última regra, você poderia, é claro, usar REJECT, em vez de DROP. O manual do usuário ( man iptables ) deve mostrar parâmetros adicionais que você pode usar para registrar ou limitar o tráfego que está vendo. Há também vários tutoriais on-line disponíveis para regras mais avançadas.

    
por 17.08.2016 / 21:51
0

Defina sua política padrão. Os pacotes que correspondem a nenhuma das regras abaixo serão descartados por padrão:

iptables -P INPUT DROP

Crie uma cadeia personalizada. Nós vamos passar pacotes que preenchem determinadas condições (por exemplo, ter o endereço de origem 10.0.0.1) para esta cadeia:

iptables -N CUSTOM

Aceite as conexões que já estão ativadas e aceite conexões na interface de loopback:

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT

Transmita novas conexões TCP de 10.0.0.1 (chegando na interface eth0) para a cadeia CUSTOM:

iptables -s 10.0.0.1 -i eth0 -p tcp -m conntrack --ctstate NEW -j CUSTOM

Anexe regras à cadeia personalizada que aceitam portas específicas:

iptables -A CUSTOM -p tcp -m multiport --dports 22,80 -j ACCEPT
    
por 17.08.2016 / 21:59

Tags