IPTABLES regra para separar usuários

1

Eu tenho um roteador OpenWrt 10.03 [IP: 192.168.1.1] e ele tem um pool de servidores DHCP: 192.168.1.0/24 - os clientes o estão usando através de conexão wireless / com fio. Ok!

Aqui está o problema: eu preciso separar os usuários uns dos outros.

Como eu preciso fazer isso: pela regra IPTABLES [/etc/firewall.user].
Ok!
"Pensamento alto": Então eu preciso de uma regra como esta [no roteador OpenWrt]:

- DROP onde SOURCE: 192.168.1.2-192.168.1.255 e DESTINATION é 192.168.1.2-192.168.1.255

A ideia é essa. Ok!

Questões!
Eu vou me trancar se eu aplicar essa regra de firewall?
- Este é um método seguro? [É fácil fazer isso ?: Olá, eu sou um cliente, e eu digo, meu endereço IP é 192.168.1.1! - Agora ele pode farejar o tráfego não criptografado! :( - porque todos os clientes estão na mesma sub-rede!)
Existem bons métodos para encontrar / auditoria para endereços IP duplicados?
Os métodos bons para encontrar / auditar endereços duplicados MAC? Existem bons métodos para fazer esta regra IPTALBES em Layer2?:
$ wget -q "http://downloads.openwrt.org/backfire/10.03/ar71xx/packages/" -O - | grep -i ebtables $


p.s .: A regra seria [ela está em uma boa cadeia?]: iptables -A FORWARD -m iprange --src-range 192.168.1.2-192.168.1.255 --dst-range 192.168.1.2-192.168.1.255 -j DROP
Obrigada!

    
por LanceBaynes 05.03.2011 / 09:59

1 resposta

2

Se você deseja separar usuários sem fio e com fio, por que não corresponder às interfaces? Assumindo que o ppp0 esteja voltado para a internet, eth0 é sua LAN local e wlan0 é o wireless:

iptables -P FORWARD DROP                                 # Drop everything except:
iptables -A FORWARD -m state --state RELATED,ESTABLISHED # Accept already accepted connections
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT            # Accept outgoing connections from local LAN
iptables -A FORWARD -i wlan0 -o ppp0 -j ACCEPT           # Accept outgonig connnections from wlan

Se você usar isso:

  • nada pode ser conectado pela internet
  • usuários sem fio só podem se conectar à internet
  • usuários com fio só podem se conectar à internet
  • você pode impor intervalos IP separados se adicionar o --src-range

Se o seu servidor DHCP estiver sendo executado no dispositivo OpenWrt, a cadeia FORWARD não afetará isso de nenhuma maneira. Para permitir que o servidor DHCP use

iptables -P INPUT DROP                                   # Drop everything except:
iptables -A INPUT -m state --state RELATED,ESTABLISHED   # Accept already accepted connections
iptables -A INPUT ! -i ppp0 -p tcp --dport 22 -j ACCEPT  # Don't forget SSH
iptables -A INPUT ! -i ppp0 -p udp --sport 68 --dport 67 # Accept DHCP requests from any local network

Eu geralmente permito tudo em OUTPUT, exceto alguns tipos de ICMP e spam. Mas você pode preferir o DROP padrão mais seguro, então aqui está a regra específica:

iptables -P OUTPUT DROP                                             # Drop everything except:
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT ! -o ppp0 -p udp --sport 67 --dport 68 -j ACCEPT # Allow DHCP to the local network

Faz mais sentido em um roteador que não deve se conectar a tudo.

Eu recomendaria contra filtragem de MAC na minha experiência, não acrescenta segurança apenas inconviniência. Mas se você quiser ver:

iptables -m mac --help

O registro de endereços MAC pode ser útil, mas eles são facilmente forjados. Basta adicionar -j LOG ou -j NFLOG antes da regra ACEITAR com as mesmas regras de correspondência.

Como você está configurando um computador acessível apenas pela rede, deve ter muito cuidado para não se bloquear. Você não pode simplesmente ir até ele e excluir as regras manualmente. Em particular, digitar iptables -P INPUT DROP com uma cadeia INPUT vazia irá matar sua sessão SSH. Eu recomendo usar o iptables-save e iptables-restore e gravar as regras em um arquivo de configuração. Também ajuda se você puder testar as regras em um computador com um teclado e monitor antes de testá-lo no roteador.

    
por 05.03.2011 / 10:57