Como definir regras diferentes para vários IPs na mesma interface?

1

Eu sou novo no iptables e estou confuso sobre como devo configurá-lo. Parece que tenho 2 placas ethernet mas tenho 4 endereços IP. Não há prob lá. Na minha rede / interfaces, parece que eles estão todos em enp2s0f0. Posso apenas alterar 2 deles para estar na interface enp2s0f1, assumindo que a rede que entra no servidor é a mesma que enp2s0f0?

Se no iptables você especifica eth0 (no meu caso enp2s0f0) então como eu deveria fazer regras para cada IP?

O que eu tentei fazer é especificar o iface na rede / interfaces como mostrado abaixo, no entanto iptables mostra o destino como "em qualquer lugar" quando eu especifico especificamente para enp2s0f0: 0 e enp2s0f0

iptables -A INPUT -i enp2s0f0 -p tcp --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp2s0f0 -p tcp --sports 80,443 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i enp2s0f0:0 -p tcp --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp2s0f0:0 -p tcp --sports 80,443 -m state --state ESTABLISHED -j ACCEPT

Aqui está minha saída mostrando minhas interfaces ...

$ls /sys/class/net
enp2s0f0  enp2s0f1  lo

$cat /etc/network/interfaces
auto lo
iface lo inet loopback

# The primary network interface
auto enp2s0f0
iface enp2s0f0 inet static
        address xx.xx.xx.76
        netmask 255.255.255.0
        network xx.xx.xx.0
        broadcast xx.xx.xx.255
        gateway xx.xx.xx.1

auto enp2s0f0:0
iface enp2s0f0:0 inet static
        address xx.xx.xx.77
        netmask 255.255.255.0
        network xx.xx.xx.0
        broadcast xx.xx.xx.255

auto enp2s0f0:1
iface enp2s0f0:1 inet static
        address xx.xx.xx.78
        netmask 255.255.255.0
        network xx.xx.xx.0
        broadcast xx.xx.xx.255

auto enp2s0f0:2
iface enp2s0f0:2 inet static
        address xx.xx.xx.79
        netmask 255.255.255.0
        network xx.xx.xx.0
        broadcast xx.xx.xx.255

l

    
por Brént Russęll 07.01.2017 / 14:21

1 resposta

2

cito algumas linhas de man iptables :

[!] -p, --protocol protocol
       The  protocol  of  the rule or of the packet to check.
[!] -s, --source address[/mask][,...]
       Source specification. Address can be either a network name, a hostname, 
       a net‐work IP address (with /mask),  or  a  plain  IP  address.  
[!] -d, --destination address[/mask][,...]
       Destination  specification.

Eu considero o caso de você ter duas interfaces com dois IP estáticos cada, já que você pode fazer isso. Então, se você quiser corresponder IPs específicos, poderá reorganizar suas regras:

iptables -A INPUT  -i enp2s0f0 -p tcp -s 0.0.0.0 -d <IP> --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp2s0f0 -p tcp -s <IP> -d 0.0.0.0 --sports 80,443 -m state --state ESTABLISHED -j ACCEPT

iptables -A INPUT  -i enp2s0f1 -p tcp -s 0.0.0.0 -d <IP> --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o enp2s0f1 -p tcp -s <IP> -d 0.0.0.0 --sports 80,443 -m state --state ESTABLISHED -j ACCEPT

É claro que você precisa alterar <IP> com o (s) seu (s) IP (s) de sua máquina. Se você quiser permitir conexões apenas de / para determinados IPs, altere 0.0.0.0 também.

    
por 07.01.2017 / 20:20