No seu roteador, se você puder executar o iptables, ponha tudo o que for recebido na interface externa e adicione exceções:
Um exemplo simples do que você descreve, presumindo que o eth1 é o dispositivo voltado para fora:
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i eth1 -j DROP
iptables -I FORWARD -i eth1 -s 123.123.123.123 -j ACCEPT
iptables -I FORWARD -i eth1 -s 123.124.0.0/16 -j ACCEPT
As linhas significam o seguinte:
- Permitir tráfego já comprovado, como respostas a suas próprias consultas
- Largue tudo
- Permitir IP
123.123.123.123
- Permitir toda a sub-rede
123.124.xxx.xxx
Observe a mudança para -I
em vez de -A
nas linhas 3 e 4. Isso significa que a regra deve ser colocada em primeiro lugar na lista, em vez de anexá-la.
Se você precisar rodar isso na própria máquina linux, o mesmo deve funcionar, mas você precisa substituir FORWARD
with INPUT
, e você pode pular a interface de entrada. Além disso, você provavelmente deseja adicionar uma regra ACCEPT
para 192.168.1.0/24
, pois sua LAN provavelmente é confiável.
Para mais informações, consulte este tutorial ou o manual