내 컴퓨터와 라우터 사이의 트래픽을 가로채는 네트워크 도청 장치를 만들고 싶습니다. 두 개의 이더넷 포트가 있고 Linux를 실행하는 Raspberry Pi 또는 유사한 장치를 상상해 보십시오. 라우터와 컴퓨터 사이에 연결하면 라우터와 PC 간에 트래픽을 중계하는 간단한 "스위치" 역할을 했습니다. 해당 트래픽을 가로채고 싶습니다. 즉, 패턴이 일치할 때 트래픽을 모니터링하고 일부 데이터를 기록하고 싶습니다.
가급적이면 패킷도 수정할 수 있으면 좋을 것 같습니다. 또한 바람직하게는 내 장치가 네트워크에서 "보이지 않는" 것, 즉 라우터와 PC 사이에 있는 네트워크 장치로 감지되지 않는 것이 좋을 것입니다. 하지만 그게 불가능하다면 네트워크 스위치로 인식해도 상관은 없습니다.
나는 이것이 사소한 프로젝트가 아닐 수 있다는 것을 알고 있으므로 여기에서 전체 레시피를 기대하지 않습니다. 어디서부터 시작해야 할지, 어떤 가능성이 있는지 등에 대한 지침을 찾고 있습니다.
지난 번 확인했을 때 Windows는 네트워킹과 관련하여 너무 제한적이어서 Windows 장치로 구축하는 것이 불가능할 것입니다(이더넷 포트 수에 관계없이). 반면에 Linux는 더 뛰어난 능력을 갖고 있지만, 제가 질문한 일부 사람들은 매우 심각한 시스템 프로그래밍(커널 조작 등) 없이는 불가능할 수도 있다고 말했습니다. 내 Linux 코딩 기술은 Python의 범용(즉, 시스템 수준이 아닌) 프로그래밍으로 제한됩니다.
그렇다면... 어떻게 이것이 가능할까요? 그러한 장치에 대해 어떤 아키텍처를 제안할 수 있습니까? 이와 같은 프로젝트를 구축하려면 Linux 네트워크 프로그래밍에 대해 무엇을 배워야 합니까? 간단히 말해서...어디서부터 시작해야 할까요?
내 소개: 저는 네트워킹에 대한 "개발자 수준"(즉, 중급) 지식과 Wireshark 및 유사한 도구에 대한 경험이 있지만 Linux에 대한 경험은 매우 제한적인 수석 소프트웨어 엔지니어(.Net/Web Dev)입니다.