同じインターフェイスで複数のIPに対して異なるルールを設定する方法は?

同じインターフェイスで複数のIPに対して異なるルールを設定する方法は?

私は最初にiptablesに触れ、設定方法が混乱しています。イーサネットカードは2つですが、IPアドレスは4つあるようです。問題ありません。私のネットワーク/インターフェースでは、すべてenp2s0f0にあるようです。サーバーに入るネットワークがenp2s0f0と同じであると仮定すると、そのうちの2つをenp2s0f1インターフェースに変更できますか?

iptablesにeth0(私の場合はenp2s0f0)を指定すると、各IPのルールをどのように作成する必要がありますか?

私がやろうとしているのは、次のようにネットワーク/インターフェースでifaceを指定することです。ただし、特に enp2s0f0:0 に設定すると、enp2s0f0 iptables はターゲットを「Anywhere」とマークします。

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

私のインターフェースを示す私の出力は次のとおりです。

$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

答え1

私は次の行を引用します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.

私はそれぞれ2つの固定IPを持つ2つのインターフェイスがある状況を考えています。そうできるからです。したがって、特定のIPを一致させたい場合は、ルールを並べ替えることができます。

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

もちろん、<IP>コンピュータのIPを変更する必要があります。0.0.0.0変更される特定のIPとの接続のみを許可したい場合。

関連情報