![iptables 규칙이 로컬 네트워크 포트를 차단합니다.](https://linux55.com/image/168537/iptables%20%EA%B7%9C%EC%B9%99%EC%9D%B4%20%EB%A1%9C%EC%BB%AC%20%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC%20%ED%8F%AC%ED%8A%B8%EB%A5%BC%20%EC%B0%A8%EB%8B%A8%ED%95%A9%EB%8B%88%EB%8B%A4..png)
저는 로컬 192.168.1.0/24 네트워크에 있고 openwrt 라우터는 192.168.1.1에 있으며 개방형 포트(예: 192.168.1.12:5001)가 있는 IoT 장치에 대한 모든 tcp 연결을 차단하고 싶습니다. 장치에 대한 Linux 액세스 권한이 없으므로 거기에서 규칙을 시행할 수 없습니다.
복잡한 분할 없이 라우터를 통해 이것이 가능합니까? 특별한 라우터/스위치가 필요한가요?
라우터에서 다음을 시도했지만 아무것도 작동하지 않습니다.
root@OpenWrt:~# iptables -I INPUT -p tcp --destination-port 5001 -j DROP
root@OpenWrt:~# iptables -I OUTPUT -p tcp --destination-port 5001 -j DROP
root@OpenWrt:~# iptables -I FORWARD -p tcp --destination-port 5001 -j DROP
(테스트를 위해 모든 패킷을 포트 5001에 삭제할 수 있습니다)
답변1
클라이언트의 트래픽은 라우터를 방해하지 않고 LAN의 다른 장치로 직접 전송되기 때문에 이 작업을 직접 수행할 수 없습니다.
답변2
같은 서브넷에 있기 때문입니다. 라우터를 통과하지 않습니다.
라우팅 테이블에는 현지 직원을 직접 라우팅하는 것과 같은 내용이 표시됩니다(이는 거의 하드 코딩된 경우가 많습니다). 그런 다음 (대부분의 장치에서) 나머지는 기본 라우터로 전송됩니다.
장치는 "arp: 192.168.1.12는 누구입니까?"를 브로드캐스트하고 129.168.1.12는 "Arp: 나는 192.168.1.12입니다"라고 응답합니다. 이 메시지를 듣는 모든 장치는 MAC 주소를 추출하여 자체 apt 테이블에 넣고 IP 패킷을 장치에 직접 보낼 수 있습니다.
따라서 두 개의 서브넷을 설정하고 그 사이에 라우터 경로를 설정해야 합니다. 동일한 물리적 네트워크에 있을 수 있지만 보안을 강화하려면 네트워크에 있는 별도의 물리적 네트워크에 배치해야 합니다. 그렇지 않으면 네트워크를 제어할 수 있으면 보안을 우회하는 것이 쉽지 않습니다.