brunch

You can make anything
by writing

- C.S.Lewis -

by Master Seo Jun 06. 2020

392. Log 수집, Elasticsearch

목표

EC2, SSH접속 시도, Cloudtrail log를  Cloudwatch 로그 그룹으로 받자

로그를 람다로 보내 처리하고, ES에서 분석, Kibana로 볼 수 있도록 하자.



<0> 구성

EC2                    ---------- Cloudwatch 로그 그룹------lambda----ES ---Kibana

CloudTrail log  ----------

SSH접속 시도     ---------

q-x


<1>  ES 구성 보자


Serivice > Elasticsearch >  name :  log-cloudwatch-lambda  >  내용 확인

VPC탭에서 내용 확인 : vpc , sg, iam, az 2개



<2> Kibana 설정


서비스 > Cognito  > 사용자 풀 관리

 log-cloudwatch-lambda  > 사용자 및 그룹  >  사용자 추가

//입력

사용자 생성




<3>  lambda 설정

Cloudwatch log ------- lambda--------ES



Service > Lambda >  Create lambda >

seo-es1

node.js 12

함수 작성

생성


기능 코드

s3 업로드

// s3 경로

전송

index.handler

저장


환경변수  > 환경변수 추가

DOMAIN_ENDPOINT

//  ES endpint URL  입력

저장


기본 설정

512

2분

저장


편집

사용자 지정 VPC

보안 그룹 수정

저장




<4> 로그 그룹을 람다로 보내기


로그 그룹 ----- 람다 --- ES

// 로그 그룹을 람다로 보내는 기능을 찾지 못함.

// 람다에서 cloudwatch event 트리거로 추가함.



1

Cloudwatch  > 로그 그룹 > 동작 > Access log group > 로그 형식 기타 > 구독 필터 패턴

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

// 아파치 로그 형식  

테스트 패턴

다음

스트리밍 시작


2

 Cloud Trail log  > 동작 > 다음 > 스트리밍 시작


3

VPCFlowLogGroup 선택 > 로그 형식 > 아마존 VPC 흐름 로그 > 스트리밍 시작


4

보안로그 > sshloggroup > 동작 > Stream to AWS Lambda > 다음 > 로그 형식

구독 패턴

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

// SSH 로그 탐지

테스트 패턴

스트리밍 탐색



<5> kibana 대시보드로 확인


1

서비스 > EC2 > 서버 접속 테스트

Windows 서버 클릭 >  연결  > 다운로드  >  Get Password


PC에서 mstsc (원격 접속 프로그램 실행)

DNS UTL 입력


계정




Administrator


암호


// kibana jason 다운로드



2

kibana 초기 설정

크롬

// kibanaloginurl 접속

계정

암호


explor  my own   > 관리  > 인덱스 패턴 만들기  

cwl-*

시간 필터 필드 이름  선택 :  @timestamp

색인 패턴 생성


3.

Save Objects 클릭

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

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



4.  그래프 확인

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




<6> 로그 검색과 분석


1

kibana

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

필터 추가 > 필터 > 선택  > 저장


필드

host, status, request, agent추가

필터 추가  > 필터   >200  > 저장


검색 이름

xxxxxx



2

ssh공격 점검


kibana  > 탐색  

cw-

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


srcip, destip, destport 추가 > 필터 추가  > 필터> 저장



ec2로 ssh 연결 시도  > 저장

ssh_attacks > 저장 확인



#

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


1

kibana  > cwl

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


eventsource 등등  > 필터 추가  > 필터  

useragent

aws-cli

저장


필터 추가

필터 eventSorce.keyware  > ssm.amazonaws.com  > 저장


검색 이름 > ssm_api_calls  > 저장



감사합니다.


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

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari