tracepath와 traceroute의 중요한 차이점은 무엇입니까?


58

최근에 HowToGeek에 대한 기사를 읽었습니다. 나는 리눅스에 대한 경험이 거의 없기 때문에 이것이 엔트리 레벨이라면 용서하십시오.

"tracepath 명령은 traceroute와 유사하지만 루트 권한이 필요하지 않습니다."

http://www.howtogeek.com/108511/how-to-work-with-the-network-from-the-linux-terminal-11-commands-you-need-to-know/

traceroute와 tracepath는 어떻게 비슷한 기능을 다르게 수행합니까?

루트 권한이 필요한 traceroute는 트레이스 경로에없는 기능은 무엇입니까?

traceroute보다 tracepath를 선호해야하는 시나리오가 있습니까?

답변:


57

traceroute와 tracepath는 어떻게 비슷한 기능을 다르게 수행합니까?

두 프로그램 모두 본질적으로 한 가지 작업을 수행합니다. 특정 IP 패킷을 보내고받습니다.

일반 소켓 API를 사용하여이를 수행하거나 인터페이스에서 원시 패킷을 조작 할 수 있습니다. 소켓 API는 상당히 안전하기 때문에 루트 권한이 필요하지 않습니다. 한 프로그램이 다른 프로그램이 만든 IP 패킷에 액세스하지 못하도록하는 메커니즘이 내장되어 있습니다.

Tracepath는 모든 기능을 위해 소켓 API를 사용합니다. Traceroute는 일부 기능을 위해 원시 패키지를 조작합니다.

루트 권한이 필요한 traceroute는 트레이스 경로에없는 기능은 무엇입니까?

원시 패키지를 조작합니다.

원시 패킷을 조작하려면 루트 권한이 필요합니다.이를 수행하면 소켓 API의 보안 메커니즘을 무시하기 때문입니다. 해당 인터페이스를 사용하여 다른 모든 프로세스 및 사용자의 통신에 액세스 할 수 있습니다. 원시 패키지를 조작 할 수 있다면 바이러스가 무엇을 할 수 있는지 생각해보십시오.

traceroute보다 tracepath를 선호해야하는 시나리오가 있습니까?

Traceroute에서 사용 가능한 고급 명령 중 하나는 IPv4 또는 IPv6 프로토콜을 사용하여 네트워크 추적을 실행하는 기능입니다. 프로브의 ICMP, TCP 또는 UDP 데이터 형식 중에서 선택할 수도 있습니다. Traceroute는 프로브에 대한 특정 소스 라우팅을 선택하고 전송할 포트를 선택할 수 있습니다. 아웃 바운드 프로브에서 허용하도록 최소 및 최대 TTL에 대한 한계를 설정할 수 있습니다. 또한 Traceroute는 응답 핑 대기 시간을 표시하고 각 프로브에서 전송되는 패킷 수와 보낼 프로브 수를 설정할 수 있습니다. 이러한 명령 중 일부는 경로를 따라 네트워킹 하드웨어에서 지원되지 않을 수 있으며, 이는 대상 대상에 도달하기 전에 프로브를 종료 할 수 있습니다.

출처 : 1 2 3


1
마지막으로 로컬 시스템에 영향을 미치는 합법적 인 보안 문제에 대한 답변입니다. 감사!
Iszi

10

당신이 사용할 수있는 traceroute당신은 IPv4와 IPv6 프로토콜을 선택할 수 있습니다, 고급 네트워크 추적을 위해, 당신은 또한 ICMP, TCP 또는 프로브에 대한 UDP 데이터 형식을 선택할 수 있습니다.

따라서 추적에 UDP 패킷을 사용하는 traceroute것보다 고급 옵션이 있습니다 tracepath.

이제 약 수퍼 유저 권한 :

사용 하려는 옵션에traceroute 따라 일반 사용자와 수퍼 유저와 함께 사용할 수 있습니다 . 예를 들면 다음과 같습니다.

여기에 이미지 설명을 입력하십시오

여기 에서는 슈퍼 유저 권한이 필요없는 UDP 패킷을 사용하고 있습니다

여기에 이미지 설명을 입력하십시오

여기서 우리는 특권이 필요한 ICMP 에코 패킷을 사용하고 있습니다.

에 의해 ICMP의 패킷 당신은 DDOS 공격을 할 수 있습니다.

ICMP 옵션에 대해 알아 보려면 Traceroute 매뉴얼 페이지

traceroute터미널에서 옵션 유형 을 보려면man traceroute

ICMP는 관리자가 일부 옵션을 사용할 수 있도록하려면 수퍼 유저 권한이 필요합니다. 죽음을 ping하고 특정 네트워크에 대한 정보를 수집하는 데 사용될 수 있기 때문에 여기에서 권한을 부여하면 수퍼 유저에게 ICMP를 사용하여 옵션을 변경할 수 있습니다 패킷.

웹 사이트를 핑하려고 할 때 www.microsoft.com온라인으로도 핑이 실패하고 Microsoft 라우터가 ICMP_requests를 차단하기 때문에 볼 수 있습니다.

따라서 Linux는 권한이없는 사용자로부터 시스템을 보호하므로 공격에이 명령을 사용할 수 없습니다.


3
일반적으로 권한이없는 사용자에 대한 제한은 시스템 다른 시스템을 공격하기위한 경로로 사용되는 것이 아니라 공격 으로부터 시스템을 보호하는 데 사용됩니다. 이것은 나에게 이해가되지 않습니다-당신은 이것을 뒷받침하는 문서를 알고 있습니까?
Iszi

3

http://www.ehow.com/list_7526520_differences-between-traceroute-tracepath.html 을 읽어야한다고 생각합니다 .

위의 링크에서 :

TracePath

Tracepath는 지정된 네트워크 주소에 대한 경로를 추적하여 "Time to Live"또는 TTL 지연 및 최대 전송 단위 (MTU)를보고합니다. 이 명령은 다른 사용자가 명령 행 프롬프트에 액세스하여 실행할 수 있습니다.


트레이스 루트 기본

Traceroute는 기본적으로 Tracepath와 동일하지만 기본적으로 TTL 값만 제공합니다. 추가 데이터를 원하면 명령 행에서 해당 변수를 요청해야합니다. 또한 traceroute는 Linux 상자에서 명령을 실행하려면 수퍼 유저 액세스 권한이 필요하며 일부 고급 데이터 요청은 경로를 따라 일부 라우터에서 지원되지 않을 수 있습니다. Windows 환경에서 명령 행에 액세스 할 수있는 모든 사용자는 Traceroute를 실행할 수 있습니다.


링크 주셔서 감사하지만 답변에 실제 내용을 넣을 수 있습니까?
Iszi

안녕하세요 bodhi.zazen, 내 게시물을 개선 주셔서 감사합니다. :)
rɑːdʒɑ

5
설명해 주셔서 감사합니다. 그러나 여기 링크 (아직 링크를 검토하지는 못했지만)에는 여전히 질문의 두 부분이 누락되었습니다. traceroute 슈퍼 유저 액세스 가 필요한가 (특히 기본적으로 실제로는 기본 보다 적은 것으로 보이므로 tracepath)? 그리고 수퍼 유저 가 아닌 시나리오를 제외하고 왜 다른 것을 선택해야합니까?
Iszi

1

pingtracerouteICMP 프로토콜을 사용합니다. UDP 및 TCP와 마찬가지로 일반 소켓 API를 통해 액세스 할 수 있습니다. 루트가 아닌 1024 미만의 UDP 및 TCP 포트 번호 만 사용으로부터 보호됩니다. ICMP는 모든 사용자가 자유롭게 사용할 수 있습니다.

ping과 traceroute가 어떻게 작동하는지 알고 싶다면 CodeProject 에서 예제 C 코드 구현을 다운로드 할 수 있습니다 .

간단히 말해, 그들은 ICMP 소켓을 간단하게 열고 traceroute는 대상에 도달 할 때까지 setsockopt를 사용하여 TTL의 증분을 변경합니다.

출처 : 링크


또한; tracepath는 traceroute 자체의 UDP 옵션 외에도 상승 된 권한이 필요하지 않은 UDP를 사용합니다.
Ahmadgeo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.