brunch

You can make anything
by writing

- C.S.Lewis -

by Master Seo Jun 06. 2020

392. 서버,VPC flow,Trail을 ES모니터링

ES 실습, 프로세스 이해,키바나는 별도 실습

목표

Elasticsearch로 모니터링,분석 해자


<> 구성


EC2 Apache 접속 로그, VPC Flowlog, CloudTrail log, SSH접속 시도 로그--> Cloudwatch 로그 그룹

--->  lambda--->  ES --->   Kibana



구성

EC2 Apache 접속 로그, VPC Flowlog, CloudTrail log, SSH접속 시도 로그-- Cloudwatch 로그 그룹---lambda---ES ---Kibana



순서

1. 로그를 Cloudwatch 로그 그룹으로 받자! 

    EC2 접속 로그 , VPC Flowlog , SSH접속 시도 로그 , CloudTrail log 를 받자.

2. 로그를  람다로 보내 처리하고, ES에서 분석하자.

3. Kibana로 볼 수 있도록 하자.




<0> 사전 작업

<1>  ES 구축

<2>  Kibana 설정

<3>  Lambda 설정

<4>  로그를  ES 로  보내기

<5>  Kibana 대시보드로 확인

<6>  로그 검색과 분석



<0> 사전 작업

EC2 Apache 접속 로그, CloudTrail log, SSH접속 시도 로그-->  Cloudwatch 로 보내야 한다.



<1>  ES 구축

1

서비스  > Elasticsearch >  새도메인 생성 > 개발 및 테스트 > ES버전 6.7

Elasticsearch도메인 이름

log-es

데이터 노드 

인스턴스 유형 : t2.medium  (small은  Az-b에서 생성안되므로 주의)

노드 수 : 2

전용 마스터 노드 체크 

노드 수 : 3 (기본값)

> 다음


2

VPC

서브넷

보안그룹

가용 영역 2개

IAM역할 : AWSServiceRoleforAmazoneElasticsearchService

사용자 지정 액세스 정책

IPv4주소

10.0.0.0/0

허용

https://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-ac.html

> 10분 걸림 



3

VPC탭에서 내용 확인 

>  vpc , 보안그룹 , IAM , AZ  2개



<2>  Kibana 설정


서비스 > Cognito  > 사용자 풀 관리 >  log-es  > 사용자 및 그룹  >  사용자  생성> username

topas

임시 암호

xxxxxxxxxx  (대문자 포함)

전화번호 체크 해지

이메일 체크

topasvga@naver.com

> 사용자 생성




<3>  Lambda 설정


1

CloudWatch log ------->  람다--------->   ES

2

서비스 >  람다 >    함수 생성 

log-to-lambda

node.js 12

기존 역할 사용 

logstream    역할 선택

함수 생성


3

함수 코드  > 작업 >  s3 업로드

// s3 경로

전송

index.handler

저장


4

환경변수  > 환경변수 추가

DOMAIN_ENDPOINT   >    ES endpoint URL  입력

예) https://vpc-loganalysiswithes-nzpa6cenzpnr4wnblm75gmxfca.us-west-2.es.amazonaws.com

> 저장


5

기본 설정 > 편집

512

2분

> 저장


6

VPC  > 편집

사용자 지정 VPC

보안 그룹 

80 , 443 허용

> 저장




<4>  로그를  ES 로  보내기


4가지 로그에 대해 Cloudwatch log 가 남겨 있어야 한다.



1

Access log group 

Cloudwatch  > 로그 그룹 >  동작 > Access log group  선택  

오른쪽 위 작업  >  람다 구독 필터 생성 >  람다 함수 :  log-to-es-lambda 선택  

> 로그 형식 :  기타 >  구독 필터 패턴

[host, ident, authuser, date, request, status, bytes, referrer, agent]

// 아파치 로그 형식  

패턴 테스트 

// 결과 : 이벤트에 일치하는 항목  x개를 찾았습니다.  

 > 스트리밍 시작


2

 Cloud Trail 로그

Cloudwatch  > 로그 그룹 >   Cloud Trail 로그 그룹   > 

오른쪽 위 작업  >   Lambda 구독 필터 생성 >  람다 함수 >   log-to-es-lambda 선택  

> 로그 형식  >  AWS  CloudTrail   > > 패턴 테스트 

> 스트리밍 시작


3

VPCFlowLog

Cloudwatch  > 로그 그룹 >  VPCFlowLogGroup 선택 >

오른쪽 위 작업  >   Lambda 구독 필터 생성 >   람다함수 >  log-to-es-lambda  

> 로그 형식 > 아마존 VPC 흐름 로그 

> 스트리밍 시작


4

SSHLog

Cloudwatch  > 로그 그룹 >  SSHLogGroup > 

오른쪽 위 작업  >   Lambda 구독 필터 생성 >  람다 함수  >  log-to-es-lambda 선택  

> 로그 형식 :   기타

> 구독 패턴

[month, day, timestamp, destIp, id, msg1, msg2, msg3, srcIp, msg5, destPort, msg7]

// SSH 로그 탐지

패턴 테스트  > > 스트리밍 시작






<5> kibana 대시보드로 확인


1

서비스 > EC2  > 서버 연결 

Windows 서버 접속을 위해  >  연결  > 다운로드  >  Get Password

pem키를 받아 암호해독 

public dns 복사

계정 administrator

암호 표시됨


2

PC에서 mstsc 실행

public dns 접속


3

// kibana jason 다운로드



4

kibana 초기 설정

로그온한 Windows  서버에서 

크롬 브라우저료   kibana login url 접속

계정

암호


5

explor  my own   > Management(관리 ) > Create index (인덱스 패턴 만들기)

cwl-*

시간 필터 필드 이름  선택 :  

@timestamp  선택

> 색인 패턴 생성



3.

임포트 하기 

관리  >  Save Objects 클릭 

사전에 빌드된 대시보드 가져오기 > 저장된 객체 클릭 > 가져오기

다운로드한 json 파일 선택 > 가져오기  > 완료



4.  그래프 확인

대시보드  > 고급 대시보드  >  확인

Dashboard 클릭 





<6> 로그 검색과 분석


1. 웹으로  제일 많이 들어오는 IP들 확인


1)

kibana

왼쪽 

Discover (탐색) 클릭 >  cwl-*  색인 선택

필터 추가 > 필터 > @log_gropup.keyword  선택 >  is    > access log Group   > 저장


2)

필터 추가  >  status  >  is not one of   >  200  > 저장


3) 200

검색 이름

Non200WebHits



2

ssh공격 점검


1)

kibana  > Discover (탐색)

cw-*

필터 추가  > @log_group   > SSHLogGroup  > 저장


2)  

필터 추가  > Discover (필터)  >   msg1.keyword >   is  >  Connection > 저장

검색 이름  >   ssh_attacks



3

EC2에서 다른 서버 접속 시도 확인


1

kibana  >   cwl-*

필터 추가 > @log_group  >   is  >  CloudTrailLogGroup  > 저장

필터 추가  >  Useragent  > is  > awscli  >   저장 

필터 추가 >  eventSorce.keyware  >  is  > ssm.amazonaws.com  > 저장

검색 이름 >  ssm_api_calls  > 저장




VPC Flowlog



https://aws.amazon.com/ko/elasticsearch-service/

감사합니다.


매거진의 이전글 391. MediaLive, 이미지 삽입

매거진 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari