동일한 인터페이스에서 여러 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.

저는 각각 두 개의 고정 IP가 있는 두 개의 인터페이스가 있는 상황을 고려합니다. 그렇게 할 수 있기 때문입니다. 따라서 특정 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와의 연결만 허용하려는 경우 .

관련 정보