내 iptables 규칙이 작동하지 않는 이유는 무엇입니까?

내 iptables 규칙이 작동하지 않는 이유는 무엇입니까?

내 VPS에는 두 가지 인터페이스가 있습니다: eth0eth0:0. eth0:0iptables를 사용하여 포트 80에서 들어오는 패킷을 차단 하고 싶습니다 . 나는 이것을 시도했지만 작동하지 않습니다.

iptables -A INPUT -i "eth0:0" -p tcp --destination-port 80 -j DROP

변경하면 eth0:0eth0작동합니다. 문제가 무엇입니까?

답변1

짧은 이야기: 당신은 올바르게 하고 있습니다(질문에 대한 귀하의 의견에 따르면).

간단히 말해서, Linux에서 foo:bar동일한 라인의 여러 서브넷에 응답하도록 하는 등 "foo" 인터페이스에 여러 네트워크 설정을 할당해야 하는 경우 "foo"라는 네트워크 "장치"는 별칭입니다.

이는 투박한 접근 방식이며 시작과 일치하지 않습니다. IPv6의 경우 인터페이스 eth0에 할당된 모든 주소는 eth0 항목 아래에 함께 나열됩니다. 이를 수행하는 보다 현대적인 방법이 있습니다(명령을 통해 ip addr).

별칭 인터페이스는 이름에 콜론이 있고 :콜론 왼쪽 부분은 기존 인터페이스 이름이며 별칭 인터페이스를 검색할 때 인터페이스 섹션이 ifconfig매우 짧기 때문에 검색할 수 있습니다. HWaddr또한 "상위" 인터페이스와 동일해야 합니다 . 또한 에는 나열되지 않습니다 . 그렇게 /proc/net/dev말하면 인터페이스의 두 번째 주소로 표시됩니다 . ( 로 시작하는 들여쓰기된 줄을 찾으세요 )ip addreth0:0eth0inet

별칭과 해당 상위 항목은 물리적 계층을 공유하므로 많은 설정과 필드를 공유합니다. 커널은 이들을 완전히 독립적인 인터페이스로 취급하지 않습니다. 먼저 트래픽이 나타납니다.부모별칭이 아닌 인터페이스입니다. 별칭에는 패킷/바이트 카운터도 없다는 사실을 눈치챘을 것입니다.

별칭 인터페이스에서 트래픽, 방화벽 등을 스니핑해야 하는 경우 해당 상위 인터페이스를 사용해야 합니다. 별칭과 해당 상위 간의 유일한 차이점은 IPv4 설정이므로 별칭의 트래픽을 일치시키는 유일한 방법은 해당 IP 설정을 사용하는 것입니다. 을 사용하면 iptables답변에 대한 설명에서 했던 것처럼 별칭의 IPv4 주소를 일치시킬 수 있습니다.

관련 정보