
중간 네트워크 노드(예: Linux 기반 스위치)에서 패킷 전체(MAC 헤더 포함)를 캡처하고 패킷에 대해 일부 처리를 수행한 다음 중간 노드로 보내는 MACsec과 유사한 보안 솔루션을 구현하고 싶습니다. .
이 작업을 수행하는 데 도움이 될 수 있는 적절한 리소스를 알려주시겠습니까? 현재 NIC 드라이버 수정이 필요한 솔루션을 찾고 있습니다. 이보다 더 간단한 해결책이 있을까요? 다른 사람들은 MACsec을 어떻게 구현합니까?
나는 pcap이나 유사한 방법을 사용하여 단순히 패킷을 캡처하려는 것이 아니라는 점에 유의하십시오. 내가 찾고 있는 것은 패킷이 중간 노드를 통과하기 전에 캡처하여 변조하여 의도한 수신자에게 보낼 수 있는 것입니다.
감사합니다
답변1
Linux 커널이 패킷을 수신할 때 패킷을 분석하려면 커널 드라이버를 작성해야 하며 커널 자체를 수정할 수도 있습니다. 인터페이스가 데이터를 수신하면 처리가 즉시 시작됩니다. 다음 레이어를 수신하도록 등록된 모든 항목에는 해당 핸들러가 호출됩니다. MAC 헤더는 많은 처리를 필요로 하지 않으므로 IP 계층 처리기는 많은 처리를 수행하기 시작하는 첫 번째 처리기입니다.
MAC 헤더를 조작하고 원하는 작업을 수행하려면 MAC 헤더가 수신된 직후와 IP 처리 전에 자신을 삽입해야 합니다. 또는 가상 NIC가 되도록 드라이버를 작성할 수도 있습니다. 그렇게 하면 적절하다고 생각되는 대로 데이터를 처리할 수 있습니다. 가상 NIC는 실제 NIC와 마찬가지로 모든 데이터를 볼 수 있습니다. 커널을 가지고 장난을 시작하고 자신의 프로젝트를 위해 커널을 다시 빌드하고 싶지 않기 때문에 이것이 아마도 최선의 방법일 것입니다.
내 대답은 여기에Linux 커널 네트워킹에 대해 배울 수 있는 몇 가지 좋은 링크를 제공합니다. 또한 Rami Rosen이 쓴 Linux 커널 네트워킹: 구현 및 이론을 선택하는 것이 좋습니다. 네트워크 스택을 심층적으로 살펴볼 수 있는 훌륭한 리소스입니다.
MACSec는 어느 시점에 커널에 구현될 것입니다. 예를 들어 IPSec는 보안 정책을 커널에 유지하는 반면 사용자 영역 데몬은 터널 연결을 추적합니다. 따라서 불행하게도 원하는 작업을 수행하려면 일정 수준의 커널 코드를 작성해야 한다고 생각합니다.
답변2
얼마 전에 저는 레이어 2, 레이어 3 또는 그 이상의 레이어와 같은 데이터 패킷을 가지고 조금 플레이하고 싶었습니다. 파이썬을 기반으로 한 좋은 도구를 찾았습니다. 이 도구는
스캐피.
패킷을 캡처하고 조작할 수 있습니다. 또는 필요에 따라 패킷 기반 필터를 구축할 수도 있습니다.