WAN(eth0) 및 LAN(eth1)이 있는 라우터로 Ubuntu 10이 있습니다. 특정 MAC 주소의 패킷만 수락하고 나머지는 삭제하도록 eth1을 제한하려면 어떻게 해야 합니까? 또한 특정 MAC 주소에 DHCP를 설정하려고 합니다. 그러나 누구나 수동으로 IP 주소를 설정할 수 있습니다. 나는 네트워크를 사용할 수 있는 장치를 4~6개 정도 가지고 있습니다.
답변1
댓글에서 언급했듯이 이것이 실제 보안을 제공하지 않거나 IP 기반 차단보다 더 많은 보안을 제공한다고 생각하지 않지만 다음과 같이 해야 합니다.
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
물론 기본 정책이 DROP이라고 가정합니다.
답변2
시작은 다음과 같습니다.
iptables -P FORWARD DROP
iptables -I FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -I FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:BB -j ACCEPT
iptables -P INPUT DROP
iptables -I INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:XX -j ACCEPT
iptables -I INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:BB -j ACCEPT
XX:XX:XX:XX:XX:XX
및 이외의 모든 Mac 주소는 XX:XX:XX:XX:XX:BB
라우터나 인터넷에 액세스할 수 없습니다.
답변3
( 그래요사용자63709; 내 Google OpenID 로그인과 MyOpenID 로그인이 분리되었는데 실제로는 Stack Overflow에서 동일합니다.)
arptables
자체 정책이 있습니다. 하다~ 아니다iptables
의 정책 과 혼동하세요 .
당신은 "[원문] eth1을 사용하여 특정 MAC 주소의 패킷만 허용하고 나머지는 삭제합니다."원하다기본 DROP 정책.
(그런데 위의 arptables 규칙에서 약간의 실수를 했습니다. 다음과 같아야 합니다. :)
arptables -P IN DROP
arptables -A IN -i eth1 --source-mac <allowed_mac_address> -j ACCEPT
arptables -A IN -i eth1 --source-mac <allowed_mac_address> -j ACCEPT
... and so on ...
(다시한번 말씀드리지만IN
내장 체인입니다구체적으로arptable에서만 발견됩니다. 읽다arptables의 매뉴얼 페이지자세한 내용은).
답변4
Michael, 규칙당 하나 이상의 Mac 소스를 지정할 수 없으므로 다음과 같은 규칙 세트가 필요합니다(iptables를 사용하려는 경우).
#Rules for allowing your mac addresses
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A FORWARD -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A FORWARD -i eth1 -j DROP
이는 FORWARD 체인에 있으며~ 아니다INPUT 체인. FORWARD 체인에 이러한 규칙을 가짐으로써 Linux 라우터는 허용된 Mac을 제외한 모든 Mac이 라우터를 통해 트래픽을 보내거나 받는 것을 허용하지 않습니다. 그들은 여전히 자신과 동일한 서브넷에 있는 컴퓨터와 통신할 수 있습니다(왜냐하면 라우터를 통과할 필요가 없기 때문입니다).
입력 체인에 대해 위의 규칙을 복제하여 라우터에 연결할 수 있는 사람을 제어할 수도 있습니다.
#Rules for allowing your mac addresses
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:11 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:22 -j ACCEPT
/sbin/iptables -A INPUT -i eth1 -m mac --mac-source XX:XX:XX:XX:XX:33 -j ACCEPT
#One final rule to drop all packets which do not match one of the rules above (are not from one of your allowed macs)
/sbin/iptables -A INPUT -i eth1 -j DROP
FORWARD 및 INPUT이 작동하는 사례에 대한 다른 짧은 답변 중 하나에 대한 귀하의 의견을 읽으면 여기에 간단한 설명이 있습니다.
앞으로이동하는 패킷에만 적용됩니다.~을 통해라우터를 다른 서브넷이나 외부 세계(WAN을 통해) 인터페이스로 연결합니다.입력라우터 자체에서 종료될 예정인 패킷에 적용됩니다(예: 라우터/리눅스 상자 자체에 대한 SSH 연결).