it-swarm-ko.tech

네트워크에 불량 DHCP 서버가 있는지 어떻게 알 수 있습니까?

네트워크 내에 불량 DHCP 서버가 있는지 확인하는 가장 좋은 방법은 무엇입니까?

대부분의 관리자가 이러한 종류의 문제에 어떻게 접근하는지 궁금합니다. 검색을 통해 DHCP Probe 을 (를) 찾았으며 시도해 보았습니다. 누구든지 경험이 있습니까? (컴파일하고 설치하는 데 시간을 내기 전에 알고 싶습니다).

불량 DHCP 서버를 찾는 데 유용한 도구 나 모범 사례를 알고 있습니까?

92
l0c0b0x

간단한 방법 중 하나는 컴퓨터에서 tcpdump/wireshark와 같은 스니퍼를 실행하고 DHCP 요청을 보내는 것입니다. 실제 DHCP 서버 이외의 다른 제안이 있으면 문제가있는 것입니다.

54
Zoredache

다른 답변 중 일부를 요약하고 추가하려면 다음을 수행하십시오.

운영 DHCP 서버를 일시적으로 비활성화하고 다른 서버가 응답하는지 확인하십시오.

Windows 시스템에서 ipconfig /all를 실행하여 서버의 IP 주소를 얻은 다음 arp -a를 사용하여 해당 IP 주소를 찾아 MAC 주소를 얻을 수 있습니다.

Mac에서는 ipconfig getpacket en0 (또는 en1)를 실행하십시오. http://www.macosxhints.com/article.php?story=20060124152826491 를 참조하십시오.

DHCP 서버 정보는 일반적으로/var/log/messages에 있습니다. Sudo grep -i dhcp /var/log/messages*

프로덕션 DHCP 서버를 비활성화하는 것은 물론 좋은 옵션이 아닐 수도 있습니다.

특히 불량 DHCP 서버를 찾는 도구를 사용하십시오

도구 목록 (다수의 다른 응답에 나열된 도구)에 대해서는 http://en.wikipedia.org/wiki/Rogue_DHCP 를 참조하십시오.

DHCP 오퍼를 차단하도록 스위치 구성

불량 DHCP 서버를 방지하도록 대부분의 관리되는 스위치를 구성 할 수 있습니다.

22
Jason Luther

dhcpdump , 입력 형식 tcpdump 를 입력하고 DHCP 관련 패킷 만 표시합니다. LAN에서 가짜 DHCP로 위장하여 루트킷 Windows를 찾는 데 도움이되었습니다.

17
vartec

Wireshark/DHCP 탐색기/DHCP 프로브 접근 방식은 한 번 또는 주기적으로 확인하는 것이 좋습니다. 그러나 네트워크에서 DHCP Snooping 지원을 살펴 보는 것이 좋습니다. 이 기능은 네트워크의 불량 DHCP 서버로부터 지속적인 보호를 제공하며 여러 하드웨어 공급 업체에서 지원합니다.

Cisco docs 에 표시된 기능 세트는 다음과 같습니다.

• 신뢰할 수없는 출처에서받은 DHCP 메시지의 유효성을 검사하고 잘못된 메시지를 필터링합니다.

• 신뢰할 수있는 소스와 신뢰할 수없는 소스의 DHCP 트래픽을 속도 제한합니다.

• 임대 IP 주소를 가진 신뢰할 수없는 호스트에 대한 정보가 포함 된 DHCP 스누핑 바인딩 데이터베이스를 구축하고 유지 관리합니다.

• DHCP 스누핑 바인딩 데이터베이스를 사용하여 신뢰할 수없는 호스트의 후속 요청을 확인합니다.

15
Dave K

dhcploc.exe 는 Windows 시스템에서 가장 빠르고 편리한 방법입니다. XP 지원 도구에서 사용할 수 있습니다. 지원 도구는 모든 OEM/소매 XP 디스크에 있지만 "복구 디스크"에 있거나 없을 수 있습니다) 일부 OEM에서 제공하며 MS에서 다운로드 를 제공 할 수도 있습니다.

간단한 명령 줄 도구입니다. dhcploc {yourIPaddress} 를 실행 한 다음 'd'키를 눌러 가짜 발견을 수행하십시오. 아무 키도 누르지 않고 실행 상태로두면 모든 DHCP 요청이 표시되고 응답합니다. 'q'를 눌러 종료하십시오.

10
quux

Scapy는 이러한 정렬 작업에 적합한 python 기반 패킷 제작 도구입니다. 정확하게 here 를 수행하는 방법에 대한 예가 있습니다.

9
Kyle Brandt

bootp.type == 2을 필터로 사용하는 것에 대한 l0c0b0x 님의 의견을 확장하려면 bootp.type 필터는 Wireshark/tshark에서만 사용할 수 있습니다. tcpdump에서는 그의 의견의 맥락 적 위치가 저를 믿도록 기울여 놓았습니다.

Tshark는이를 위해 완벽하게 작동합니다.

우리는 네트워크를 수많은 브로드 캐스트 도메인으로 나누었습니다. 각각은 "로컬"브로드 캐스트 도메인과 관리 서브넷에서 어떤 방식 으로든 존재하는 자체 Linux 기반 프로브를 가지고 있습니다. ClusterSSH 와 결합 된 Tshark를 사용하면 네트워크의 다른 모서리에서 DHCP 트래픽이나 그 밖의 문제를 쉽게 찾을 수 있습니다.

Linux를 사용하여 DHCP 응답을 찾을 수 있습니다.

# ifconfig ethX promisc
# tshark -i ethX -n port 68 -R 'bootp.type == 2'
8
user62491

네트워크에 불량 DHCP 서버가 있음을 확인한 후 해결하는 가장 빠른 방법은 ...

다음과 같이 회사 전체에 이메일을 보냅니다.

"여러분 중 한 명이 LAN에 무선 라우터를 추가했는데 다른 사람을 위해 인터넷을 죽였습니다."

양의 반응 또는 충돌하는 장치가 빨리 사라질 것으로 기대합니다. :)

6
Shh now
3
juFo

기본 DHCP 서버를 비활성화하고 연결을 다시 구성하십시오.

IP 주소를 얻는다면 불량품입니다.

리눅스가 편리한 경우 표준 dhcpclient는 DHCP 서버의 IP 주소를 알려줍니다 (그렇지 않으면 트래픽을 스니핑하여 DHCP 응답의 출처를 알 수 있습니다).

3
Vinko Vrsalovic

소규모 네트워크를 실행하는 가장 간단한 방법은 dhcp 서버를 끄고/비활성화/플러그를 뽑은 다음 클라이언트에서 ipconfig/renew 또는 이와 유사한 방법을 실행하고 IP를 얻거나 얻는 경우 여러 가지 방법이 있습니다. 회로망.

다른 방법은 Wireshark 패킷 캡처/분석기를 사용하여 네트워크 트래픽을보고 DHCP 연결을 찾는 것입니다. here 에서이 작업을 수행하는 방법에 대한 랩 워크 시트가 있습니다.

이 작업을 수행하는 데 사용할 수있는 여러 유틸리티도 있습니다. DHCP Explorer 다른 것은 원래 게시물에서 언급 한 DHCP 프로브입니다.

3
Jona

네트워크를 핑 스윕 한 다음 DHCP 서버가 전달한 DHCP 임대 수와 비교할 수 있습니다.

이 숫자가 약간 왜곡되는 정적 장치 (라우터 인터페이스 및 프린터)의 수에 대한 일반적인 아이디어가 필요하지만 여러 네트워크에서 빠르고 정확하게 식별 할 수있는 방법이어야합니다.

2
Peter

데비안/우분투에서는 dhcpdump 및/또는 tcpdump을 사용하는 옵션도 있습니다. dhclient

Dhcpdump를 사용하십시오.

  • 1.a) 하나의 쉘/쉘 (eth0 또는 인터페이스 이름)에서 dhcpdump -i eth0를 실행하십시오.
  • 1.b) 다른 쉘에서 dhclient 시작 (성공적으로 실행할 필요는 없음)
  • 1.c) 정보를 위해 dhcpdump의 결과를 살펴보십시오 (가장 자세한 형식의 정보를 제공하는 멋진 형식의 목록이어야 함)

Dhcpdump를 사용하지 않으려는 경우 옵션 2 :

  • 2.a) 하나의 쉘/윈도우에서 tcpdump -i eth0 -t -n > /tmp/my_file.txt를 실행
    (선택 사항 : -t = 타임 스탬프 비활성화 // -n = 이름 확인 비활성화, IP 주소 만, 서버 이름 없음 (RHEL/centos 사용 -nn))
  • 2.b) 다른 쉘에서 dhclient 시작 (성공적으로 실행할 필요는 없음)
  • 2.c) tcpdump 실행 중지 ()
  • 2.d) 즐겨 사용하는 편집기로 /tmp/my_file.txt 파일을 검사하고 ".53"(기본 DNS 포트)/"NX"/ "CNAME"/ "A?"와 같은 항목을 검색하십시오./"AAAA"-

* sidenote : tcpdump 및 dhcpdump가 설치되어 있어야합니다 (예 : Sudo apt get install tcpdump dhcpdump); dhcpdump는 tcpdump에 의존

2
eli

모니터링 용 터미널과 요청 전송 용 터미널 두 개를 시작하는 것이 좋습니다. 터미널 1은 MAC 주소를 포함한 모든 기존 DHCP 서버의 응답을 보여줍니다. 이 예제는 Ubuntu에서 실행되었습니다.

터미널 1 (모니터링 용) :

Sudo tcpdump -nelt udp 포트 68 | grep -i "boot. * reply"

tcpdump : 상세 출력 억제, enp2s0, 링크 유형 EN10MB (이더넷), 캡처 크기 262144 바이트 20 : a6 : 80 : f9 : 12 : 2f> ff : ff : ff에서 전체 프로토콜 디코드 청취에 -v 또는 -vv 사용 ff : ff : ff, 이더넷 유형 IPv4 (0x0800), 길이 332 : 192.168.1.1.67> 255.255.255.255.68 : BOOTP/DHCP, 회신, 길이 290 00 : 23 : cd : c3 : 83 : 8a> ff : ff : ff : ff : ff : ff, 이더넷 유형 IPv4 (0x0800), 길이 590 : 192.168.1.253.67> 255.255.255.255.68 : BOOTP/DHCP, 회신, 길이 548

터미널 2 (요청을 보내기위한) :

Sudo nmap --script broadcast-dhcp-discover -e eth0

2019-10-13 21:21 EEST 사전 스캔 스크립트 결과에서 시작 Nmap 7.01 ( https://nmap.org ) 시작 : | broadcast-dhcp-discover : | 응답 1 of 1 : | IP 제공 : 192.168.1.228 | DHCP 메시지 유형 : DHCPOFFER | IP 주소 임대 시간 : 2h00m00s | 서버 식별자 : 192.168.1.1 | 서브넷 마스크 : 255.255.255.0 | 라우터 : 192.168.1.1 | _ 도메인 이름 서버 : 8.8.8.8, 8.8.4.4 경고 : 대상이 지정되지 않았으므로 0 개의 호스트 검색 Nmap 완료 : 0.94 초 내에 0 개의 IP 주소 (0 호스트) 검색)

모니터링 터미널은 모든 응답을보기 위해 필요합니다 (nmap은 첫 번째 응답 만 표시 할 수 있음).

1
ajaaskel