DHCP 서버를 설치까지 했다.

이제 DHCP 서버를 이용해 서비스를 제공해보겠다. :)

우선 DHCP의 동작을 살펴보겠다.

DHCP는 어떻게 동작

1. 클라이언트는 과연 언제 임대 요청을 하게될까?
 1) 컴퓨터를 처음 켰을 때
 2) 임대시간이 만료가 되었을 때
 3) 최대 임대시간이 만료가 되었을 때

2. DHCP Message 종류
 1) DHCP Discover
 2) DHCP offer
 3) DHCP Request
 4) DHCP ACK

각 타입의 내용
1) DHCP Discover
 - 아이피를 할당받지 못했기 때문에 통신이 안되는 상황이고 서버가 누군지도 모르기 때문에
 -> Broadcast로 뿌린다.
 - MAC 주소로 통신을 한다.
 - Bootstrap Protocol 이라고 적혀있다. 이것은 지금 현재 DHCP이다.
2) Offer
 - 디스커버의 응답이다.
 - 서버가 호스트에게 디스커버의 응답으로 전달한다.
3) Requset
 -같은 네트워크 상에서 내가 이 아이피를 쓰겠다고 브로드 캐스트 하는 것이다.

상황
 1) 클라이언트가 서버로 아이피 배당해달라고한다. (디스커버)
 2) 서버는 응답한다. (Offer)
 3) 클라이언트는 이제 그 아이피를 쓴다고 주변에 브로드 캐스트한다.(Request)
 -> 이 과정이 없으면 아이피가 충돌난다. 다른 DHCP 서버는 모르기 때문에
 4) 마지막으로 서버가 클라이언트에게 ACK 패킷을 보내면서 아이피 배당이 끝난다.

우리는 이제 Offer 패킷을 보낼 때의 내용을 채워줘야한다.
Offer 패킷을 보낼 때 배당할 아이피 범위, 라우터 정보, DNS 정보 등을 설정해주어야한다.

설치된 dhcp 폴더를 들어가보니
dhcp.conf 의 샘플 파일이 있었다.
이 샘플 파일을 먼저 복사한다.




(복사하는 장면)



복사된 conf 파일을 vi 편집기로 연다.




(vi 편집기)



샘플 파일이다.
우리는 이것을 수정해서 사용할 것이다.




(DHCP conf 설정 부분)



이 부분을 수정해 줄것이다.



(수정된 모습)



우리의 네트워크 환경에 맞추어 설정해주었다.




(DHCP 서버 실행)



이제 저장하고
DHCP 서버를 실행시켰다.

그 후 leases 폴더를 들어가 지금 임대하고 있는 아이피 목록을 볼 수 있었다.



(아이피 배당한 목록)



DHCP 서버가 잘 돌아가고 있음을 알 수 있다.

그러면 호스트에서 이번에 Wireshark로 DHCP 패킷을 분석해 보겠다.




(캡쳐 필터링)



패킷 캡쳐 시작 전에
필터링룰을 설정하여 패킷을 받아주었다.



(DHCP 패킷)



DHCP 동작의 4개 패킷이 캡쳐된 모습이다.




(Discover 패킷)



디스커버 패킷으로
아직 IP주소가 없으므로 0.0.0.0 으로 나오는 것을 확인 할 수 있고
요청 IP주소도 볼 수 있다.



(Offer 패킷)



Offer 패킷의 내용을 살펴보면
우리가 위에서 설정해준 내용이 그대로 들어가 있음을 확인 할 수 있다.

이러한 DHCP의 취약점이 어떤게 있을까?

-> 만약 악의적인 목적으로 DHCP 서버를 운영한다면???
DHCP서버는 같은 네트워크에 여러개가 동작할 수 있다.
즉, 누구나 원하면 DHCP 서버를 구축하여 동작시킬 수 있다는 것이다.

그렇게 되면 DHCP 설정에서 잘못된 게이트웨이 주소를 알려주거나
잘못된 DNS 주소(해커가 구축한 DNS, 해킹한 DNS등등) 을 알려주게되면
큰 위험에 빠질 수 있다.

반대의 입장이 되보면
공격자 입장에서는 DHCP 서버하나만 구축해놓고 손쉽게
스니핑, 스푸핑(DNS, DHCP..) 를 할 수 있게 되는 것이다.

아래는 공격받은 모습이다.



(공격 받은 모습)



IP 151번에게 IP주소를 배당 받았다. 동시에 게이트웨이 주소를 보면
192.168.3.151로 되어있다.
즉 나는 인터넷을 할 때 공격자에게 패킷을 보내게 되는 것이다.

만약 공격자가 포워딩을 안해준다면,



(인터넷 멈충)



인터넷이 동작하지 않는것을 확인 할 수 있다.(통신이 안된다.)

만약 공격자가 포워딩도 해주면
나는 인터넷도 되고 아무것도 모른채 패킷을 스니핑 당할 수 있다.

리눅스에서 포워딩 하는 방법은 간단하다.



(포워딩 설정)



sysctl net.ipv4.ip_forward 를
1로 바꾸어주면 자동으로 포워딩 까지 해주게 된다.



오늘은 와이어샤크에 대해서 알아보겠다.

아래는 와이어샤크 첫 화면이다.

여기서 인터페이스를 선택할 수 있다.
선택 후 그 인터페이스로 들어오는 패킷을 보여준다.




(와이어샤크 첫 화면)



와이어 샤크 파일을 저장해서
원하는 곳에서 열어서 분석을 할 수 있다. -> 수집된 위치에서만 분석할 수 있는 것이 아니다.



(저장화면)




(저장 파일)



이 파일을 열면 와이어샤크에서 받은 패킷들의 내용을 그대로 볼 수 있다.
pcapng 확장자로 설정되어있다.

레이아웃을 보기 편하게 바꾸어 볼 것이다.

편집에 들어가서




(편집 선택)



Preferences 에 들어가면 아래와 같은 화면이 나온다.

Layout 선택 하는 화면이다.



(Layout 설정)



난 2번째것으로 설정해주었다.

* 와이어 샤크가 제공하는 필터링 기능
1. 캡쳐 필터
 - 패킷을 캡쳐할 때 적용되는 룰
 - 복잡한 룰을 적용할 수 없다. (적용하지 않는게 좋다.)
 -> 캡쳐할 때 부하가 걸린다.
 - 캡쳐필터할 때는 단순한 룰을 적용시킨다.
 -> 수집 단계에서 필터링이 적용된다.
 - 캡쳐 필터는 신중하게 작성할 필요가 있다.
 - 아이에 수집이 안되기 때문에 최소한으로 적용시키는 것이 좋다.

2. 디스플레이 필터
 - 패킷을 캡쳐한 이후에 적용하는 룰
 - 성능과 관계없이 룰을 적용
 - 아주 복잡한 룰도 적용이 가능하다.

먼저 패킷 필터부터 살펴보겠다.
패킷필터는 캡쳐 위에 옵션에 들어가서 설정해줄 수 있다.




(패킷 필터 화면)



빨간색 부분에 필터링 룰을 입력하면 된다.

혹은 룰을 세팅해두어서 나중에 필요할 때 써도 된다.




(필터링 룰 설정)



아래는 캡쳐 필터를 직접 입력해주는 모습이다.



(필터링 룰 직접 입력)



디스플레이 필터는
캡쳐가 이미 된 후에 화면에서 필터링하는 것이다.

화면에서 아래에 표시된 부분에 디스플레이  필터링 룰을 입력하는 곳이다.



(IP 주소 필터)



IP 주소로 필터링을 하는 모습이다.

이 외에 다양한 필터링 룰이 있는데
화면 오른쪽에 Expression 버튼을 누르면
다양한 필터링 룰이 나온다.
아래는 필터링 룰 화면이다.


(필터링 룰 화면)




처음에는 여기서
찾아가면서 입력하면 된다.


이제 와이어샤크의 간단한 입문을 마무리하고 응용프로토콜을 살펴보겠다.

1. UDP 통신을 하는 응용 프로토콜
 - DHCP ( Dynamic Host Configuration Protocol )
 - DNS ( Domain Name System )
 - TFTP

2. TCP 통신을 하는 응용 프로토콜
 - FTP (File Transfer Protocol)
 - HTTP ( HyperText Transfer Protocol ) : WEB
 - SMTP ( Simple Mail Transfer Protocol ) : mail전송 프로토콜

응용프로토콜의 종류는 위와 같다.

제일 먼저 살펴볼 것은 DHCP 이다.

* DHCP ( Dynamic Host Configuration Protocol )
 - 동적으로 자동으로 IP 할당을 하게 해주는 것.
 - 네트워크를 알지 못해도 통신이 가능하다.
 
 - 가상머신(리눅스)을 통해서 DHCP 서버를 구축해볼 것이다.
 - 서버를 구축한다 -> 서비스를 제공하겠다.

* 리눅스 운영체제가 서비스를 제공하지 않는다.
-> 어떤 운영체제만으로 특정 서비스를 제공할 수 없다.
* 서버를 구축 -> 서비스를 제공한다. -> 서비스를 제공할 수 있는 응용프로그램(데몬)을 설치 후 실행한다.
( 운영체제가 서비스를 제공하는 것이 아니라 운영체제 위의 프로그램이 서비스를 제공하는 것이다.)

리눅스에서 DHCP 설치 하는 과정이다.



(search 해준다.)


먼저 설치할 파일을 찾아준다.
명령어 yum search dhcp



(리스트들이 나온다.)



우리는 여기서 dhcp.x86_64 를 설치해 줄것이다.




(설치 화면)



yum install dhcp.x86_64
를 입력해주어 설치를 한다.



(설치가 완료된 모습)



DHCP가 설치된 모습을 확인 할 수 있다.


+ Recent posts