패킷(예: Wireshark)을 검사하거나 대기 시간/패킷 손실(예: netem)을 시뮬레이션할 수 있는 도구가 있다는 것을 알고 있지만, 모두 패킷을 검사/수정하려면 관리 권한이 필요한 것 같습니다.
저는 단일 응용 프로그램에서 패킷을 가로채서 표준(루트가 아닌) 사용자가 사용할 수 있도록 할 수 있는 것을 찾고 있습니다.
valgrind
애플리케이션을 래핑하고 네트워크 요청을 가로채 검사/수정하는 데 사용할 수 있는 일종의 네트워크 도구가 필요합니다 .
나의 주요 사용 사례는 학생들이 대학 컴퓨터에서 이러한 도구를 쉽게 사용할 수 있도록 하는 것입니다(예: VM 또는 관리자 지원이 필요하지 않음).
그런 도구가 존재하나요? 그렇지 않으면 무엇이 실제로 존재하는 것을 방해합니까?
참고: 이와 같은 도구는 setcap
시스템 관리자의 구성이 필요하며 사용자에게 너무 많은 권한을 부여할 수 있으므로(예: 애플리케이션에서 생성된 패킷뿐만 아니라 모든 패킷 검사) 적합하지 않습니다.
편집하다: 응, 좀 조사한 끝에 알아냈어LD_PRELOAD 팁connect
, 특정 라이브러리 기능(예 : sendto
등)을 가로채고 패킷을 계산/수정하기 위해 가난한 사람의 래퍼로 사용할 수 있습니다 . 분명히 이를 기반으로 하는 루트 프리 도구가 그리 많지 않은 이유는 다음과 같습니다.
- 보안 목적으로는 유용하지 않습니다(쉽게 우회할 수 있음).
- 그럼에도 불구하고 대부분의 사람들은 네트워크를 사용하여 유용한 작업을 수행할 때 이미 루트 액세스가 필요하므로 학습용으로 맞춤화된 매우 구체적인 앱 외에는 루트 액세스가 실제로 필요하지 않습니다.
그러나 호기심이 많은 학생들이 스스로 그러한 앱을 개발하려는 경우 기술적으로 가능합니다.
또 다른 기술은 이 문제를 처리하기 위해 valgrind 플러그인을 작성하고 valgrind를 사용하여 프로그램을 실행하는 것입니다. 하지만 너무 과한 것 같아서 제정신인 사람은 그렇게 하지 않았습니다.
나보다 더 잘 아는 사람이 내 이전 진술이 올바른지 확인할 수 있습니까?
답변1
TCP/IP 패킷을 보고자 한다고 가정하면, 실제 패킷은 애플리케이션이 아닌 커널에 의해 생성되기 때문에 패킷을 검사하려면 루트 액세스 권한이 있어야 합니다.