iptables - 설정을 통해 전달 규칙 허용

iptables - 설정을 통해 전달 규칙 허용

저는 종속 포털(예, 또 하나의 포털을 구축 중입니다. ;)) 이제 핵심 기능인 iptables 규칙을 처리하려고 합니다. 이를 바탕으로 ipsetname이라는 유효한 Mac 주소 목록이 있습니다 allow-mac. 이것은 현재 구성입니다(질문 자체 제외).

echo 1 >/proc/sys/net/ipv4/ip_forward

ipset create allow-mac hash:mac counters
ipset add allow-mac XX:XX:XX:XX:XX:XX

IPT="/usr/sbin/iptables"

WAN="eth0"
LAN="eth1"

$IPT -P FORWARD DROP
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE
$IPT -I FORWARD -i $LAN -m set --match-set allow-mac src -j ACCEPT

이것은 작동해야 하지만 작동하지 않습니다! 따라서 FORWARD기본 체인을 다음으로 변경 ACCEPT하고 규칙을 반대로 변경하면 다음과 같습니다.

$IPT -P FORWARD ACCEPT
$IPT -I FORWARD -i $LAN -m set ! --match-set allow-mac src -j DROP

원하는 결과를 얻었고 목록에 알려진 MAC 주소가 있는 클라이언트만 전달할 수 있습니다.

제 질문은 첫 번째 설정에서는 왜 작동하지 않습니까? 두 번째 누락된 기능은 counters모듈이 추가되었지만 이제 클라이언트의 "업로드" 트래픽이 계산되는 경우 다운로드 트래픽도 어떻게 계산할 수 있습니까(별도의 카운터에서)?

답변1

첫 번째 규칙 세트에서는 지정된 나가는 트래픽만 허용하므로 -i $LAN응답이 필터링됩니다. -i $LAN`을 제거하면 작동합니까?

하지만 이 경우 전체 트래픽(업로드 + 다운로드)이 계산됩니다. 업로드와 다운로드를 별도로 계산하려면 다음 두 가지 태그 정책을 만들어야 할 수 있습니다.

  • 하나는 업로드용입니다.소스 코드맥 태그됨
  • 하나는 다운로드용입니다.목적지맥 태그됨.

관련 정보