Tcpdump 를 사용하여 원본 패킷 보기
Tcpdump 를 사용하는 가장 기본적인 방법은 단순히 다음 명령을 실행하는 것입니다.
자세한 내용은 -v 옵션을 사용하여 얻을 수 있고 -vv 를 사용하면 더 많은 정보를 얻을 수 있습니다.
유용한 옵션
관리하려는 원격 컴퓨터에 로그인한다고 가정합니다. 옵션 없이' tcpdump' 를 실행하면 SSH 연결의 패킷에 출력이 잠기게 됩니다. 이를 피하려면 출력에서 포트 22 를 제거하면 됩니다.
코드:
여러 가지 다른 포트를 사용하여 이 작업을 수행할 수 있습니다.
코드:
반대로, 즉 하나의 포트만 모니터하려는 경우 (네트워크 응용 프로그램을 디버깅하는 데 유용함) 다음을 수행할 수 있습니다.
네트워크의 특정 호스트에서 데이터를 가져올 수도 있습니다.
컴퓨터에 여러 개의 네트워크 인터페이스가 있는 경우 수신할 네트워크 인터페이스도 지정할 수 있습니다.
계약을 지정할 수도 있습니다.
프로토콜 목록은 /etc/protocols 에서 찾을 수 있습니다.
나중에 사용할 수 있도록 출력을 저장합니다
경우에 따라 나중에 자세히 조사할 수 있도록 출력을 하나의 파일로 리디렉션하거나 다른 프로그램을 사용하여 출력을 구문 분석할 수 있습니다. 다음 예제에서는 출력을 파일에 저장할 때 여전히 볼 수 있습니다.
위의 예에서는 날짜와 시간을 사용하여 각 덤프를 식별할 수 있습니다. 하루 중 특정 시간에 문제를 처리할 때 유용할 수 있습니다.
또한 Tcpdump 는 나중에 읽을 수 있도록 출력을 바이너리 형식으로 덤프하도록 선택할 수 있습니다. 이진 파일을 생성하려면 다음을 수행합니다.
나중에 다음 명령을 사용하여 tcpdump 에서 파일을 읽도록 할 수 있습니다.
Ethereal 프로그램을 사용하여 원시 덤프를 열고 해석할 수도 있습니다.
Tcpdump 는 네트워크를 오가는 모든 패킷에 대한 정보를 제공합니다.
Tcpdump 와 함께 Ethereal 을 사용합니다.
Ethereal 은 네트워크 패킷을 캡처하는 데 사용할 수 있는 도구입니다. 설치 후 만든 원본 덤프 파일을 열 수 있습니다.
무슨 일이 일어나고 있는지 쉽게 알 수 있다. 소스 및 대상 IP 와 어떤 패킷인지 확인할 수 있습니다. 이렇게 하면 쉽게 발생할 수 있는 네트워크 문제를 해결하고 의심스러운 행동을 분석할 수 있습니다. 일화를 하나 더 덧붙여, 내가 이 수업을 쓰고 나의 덤프를 설명할 때, 나는 나의 개인 워크스테이션에서 이상한 활동을 보았다. 나는 거의 일정한 간격으로 세계의 다른 IP 기계에 있는 32772 포트를 점검한다. 포트 32772 에 대해 다음과 같이 특정 덤프를 실행했습니다.
원본 출력 읽기
보시다시피 tcpdump 에서 소위 "인간이 읽을 수 있는" 출력을 읽어도 약간 신비로울 수 있습니다. 다음 예를 들어, 덤프에서 무작위로 패킷을 선택했습니다.
타임 스탬프가 지나간 후, 우리는 https://www.linux.org/. 에 대한 웹 서버 요청이 있다는 것을 알 수 있을 것이다. Www 가 끝나는 호스트 이름 (포트 80) 입니다. 요청을 보낸 호스트 test.linux.org 의 포트 34365 로 전송됩니다. P' 는 TCP“oush' 기능을 나타냅니다. 즉, 데이터를 즉시 전송해야 합니다. 2845: 3739 (894) 이후의 숫자에서 2845 는 첫 번째 패킷의 8 비트 수를 표시합니다. 숫자 3739 는 패킷이 전송되는 마지막 바이트의 숫자와 1 을 더한 숫자입니다. 숫자 894 는 전송 패킷의 길이입니다. Ack 1624' 를 나타내는 부분은 TCP 용어' acknowledge' 입니다. 패킷이 수락되었음을 나타내고 다음 예상 패킷 번호는 1624 입니다. 나중에 "win 9648" 전송 호스트가 창 크기가 9648 옥텟인 패킷을 기다리고 있는 것을 보았습니다. 이 뒤에는 타임 스탬프가 있습니다.
이제 해석하기 어려운 경우 16 진수 출력에 패킷 내용을 포함하는 -x 옵션을 사용할 수 있습니다.
출력에서 우리는 이것이 HTTP 요청이라는 것을 알 수 있다. 나머지는 인간이 읽을 수 있는 것은 아니지만 합법적인 패킷이라는 것을 쉽게 알 수 있습니다. 이 형식을 사용하는 또 다른 장점은 이 패킷의 상태를 완전히 설명할 수 없더라도 가능한 사람에게 보낼 수 있다는 것입니다. 마지막으로, 이것은 네트워크를 통해 전송되는 원시 데이터이며 필터링되지 않았습니다.