2010-08-16 6 views
2

특정 MAC 주소를 가진 사람이 내 서버의 특정 포트에 액세스하는 것을 막으려 고합니다.이 포트를 사설 서버에 대한 하드웨어 금지 종류로 사용하고 있습니다. 실행됩니다.MAC 주소가 특정 포트에 액세스하지 못하도록 차단 - C++

나는 이것을 C++로 할 생각이고 그것을하기 위해 내가 연구해야 할 것이 무엇인지 알고 싶다. 서버가 Windows를 실행합니다.

또한 액세스하는 사람의 MAC 주소를 어떻게 알 수 있습니까? 고맙습니다.

+0

OS에서 제공하는 UI를 사용하십시오. 해당 창으로 이동하여 MAC 주소를 삽입하십시오. 방화벽을 자동으로 구성하려면 서버에서 사용중인 방화벽 소프트웨어를 알려줘야합니다. –

답변

11

MAC 주소의 필터링은 서버와 클라이언트가 동일한 LAN에있는 경우에만 유용합니다. 서버에는 클라이언트의 MAC 주소가 아니라 가장 가까운 업스트림 라우터의 MAC 주소가 표시됩니다.

+1

사실입니다. TCP는 로컬 LAN에만 사용되기 때문에 발신 MAC 주소를 통해 보내지 않습니다. 친구의 TCP 패킷이 로컬 LAN을 떠나야 할 때, 친구 정보가 아닌 라우터 정보와 함께 _ 다른 이더넷 패킷으로 다시 패키징됩니다. 친구가 진정으로 개인 _ 서버 _를 가지고 있다면 IP 주소 (또는 DNS 이름)가 일관성이 있어야하며이를 필터링 할 수 있습니다. – paxdiablo

+0

@paxdiablo 나는 서버가 금지하려고 시도한 서버라고 생각합니다. 금지되지 않았습니다. –

6

응용 프로그램 수준 소켓은 MAC 필터링을 허용하지 않습니다. MAC을 얻는 유일한 방법은 소켓이 액세스를 제공하지 않는 TCP/IP 헤더 자체에 직접 액세스하는 것입니다. WinPCap과 같은 저수준의 인터셉트 드라이버를 사용하지 않는 한, 실제 하드웨어 방화벽/라우터 뒤에 서버를 설치하는 것이 더 좋으며, MAC 필터링을 수행하는 것이 좋습니다.

3

질문에 대답 할 수 없지만 MAC 주소는 이제 소프트웨어에서 설정되는 경향이 있으므로 매우 쉽게 변경할 수 있습니다.

+0

+1. MAC 주소 필터링은 너무 쉽게 스푸핑되어 보안을 제공하지 않습니다. – Anthony

관련 문제