<0> 순서
<1> ES 구축
<2> 키바나 사용을 위한 사용자 프로파일 Cognito 설정
<3> Lambda 설정
<4> 로그를 Lambda, ES로 보내기 - 아파치 로그 그룹 확인 ?
<5> 로그를 Lambda, ES로 보내기 - Cloud Trail 로그 그룹 확인 ?
<6> 로그를 Lambda, ES로 보내기 - VPCFlowLog 로그 그룹 확인 ?
<7> 로그를 Lambda, ES로 보내기 - SSHLog 로그 그룹 확인 ?
<8> kibana 대시보드로 확인
<9> 로그 검색과 분석
<10> Elastic Search Workshop
<11> CloudWatch Agent로 로그 수집하기
<12> VPC flow logs 몰아보기
<0> 순서
1
각종 로그를 Cloudwatch log group 에 모으자
VPC flow logs Group , SSH log group , Cloudtrail log group 등
Cloudwatch log group 을 람다로 보낸다.
ElasticSearch 사용하자
키바나로 분석하자
2
로그를 Cloudwatch 로그 그룹으로 받자!
EC2 접속 로그 , VPC Flowlog , SSH접속 시도 로그 , CloudTrail log를 받자.
로그를 람다로 보내 처리하고, ES에서 분석하자.
Kibana로 볼 수 있도록 하자.
3
EC2 Apache 접속 로그 -----> CloudWatch 로그 그룹
VPC Flowlog -----> CloudWatch 로그 그룹
CloudTrail log -----> CloudWatch 로그 그룹
SSH접속 시도 로그 -----> CloudWatch 로그 그룹
4
EC2 OS , VPC Flow Logs, CloudTrail 등 로그 수집 --> CloudWatch log Group -> lambda-> ES --> Kibana
<1> ES 구축
1
Elasticsearch > 새도메인 생성 > 개발 및 테스트 > ES 버전 6.7
Elasticsearch도메인 이름
log-es
데이터 노드
인스턴스 유형 : t2.medium (t3.small은 AZ-B,D에 생성 안되므로 주의. T3로 하거나 AZ-A,C에 생성)
노드 수 : 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> 키바나 사용을 위한 사용자 프로파일 Cognito 설정
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> 로그를 Lambda, ES로 보내기 - 아파치 로그 그룹 확인 ?
4가지 로그에 대해 Cloudwatch log 가 남겨 있어야 한다.
1
아파치 로그 그룹 확인 ?
Access log group
Cloudwatch > 로그 그룹 > 동작 > Access log group 선택
2
오른쪽 위 > 작업 > 람다 구독 필터 생성 > 람다 함수 : log-to-es-lambda 선택
> 로그 형식 : 기타
3
구독 필터 패턴
[host, ident, authuser, date, request, status, bytes, referrer, agent]
// 아파치 로그 형식
4
패턴 테스트
// 결과 : 이벤트에 일치하는 항목 x개를 찾았습니다.
5
스트리밍 시작
<5> 로그를 Lambda, ES로 보내기 - Cloud Trail 로그 그룹 확인 ?
1
Cloud Trail 로그 그룹 확인 ?
Cloudwatch > 로그 그룹 > Cloud Trail 로그 그룹 >
2
오른쪽 위 작업 > Lambda 구독 필터 생성 > 람다 함수 > log-to-es-lambda 선택
> 로그 형식 > AWS CloudTrail > > 패턴 테스트
> 스트리밍 시작
<6> 로그를 Lambda, ES로 보내기 - VPCFlowLog 로그 그룹 확인 ?
1
VPCFlowLog 로그 그룹 확인 ?
Cloudwatch > 로그 그룹 > VPCFlowLogGroup 선택 >
2
오른쪽 위 작업 > Lambda 구독 필터 생성 > 람다 함수 > log-to-es-lambda
> 로그 형식 > 아마존 VPC 흐름 로그
> 스트리밍 시작
<7> 로그를 Lambda, ES로 보내기 - SSHLog 로그 그룹 확인 ?
1
SSHLog 로그 그룹 확인 ?
Cloudwatch > 로그 그룹 > SSHLogGroup >
2
오른쪽 위 작업 > Lambda 구독 필터 생성 > 람다 함수 > log-to-es-lambda 선택
> 로그 형식 : 기타
3
> 구독 패턴
[month, day, timestamp, destIp, id, msg1, msg2, msg3, srcIp, msg5, destPort, msg7]
// SSH 로그 탐지
4
패턴 테스트
스트리밍 시작
<8> kibana 대시보드로 확인
1
키바나 아키텍처?
베스천 Windows 서버는 Public subnet에 위치
Kibana는 Private Subnet에 위치
베스천 Windows 서버에서 kibana접속하여 확인
2
서비스 > EC2 > 서버 연결
Windows 서버 접속을 위해 > 연결 > 다운로드 > Get Password
pem키를 받아 암호해독
public dns 복사
계정 administrator
암호 표시됨
3
PC에서 mstsc 실행
public dns 접속
4
// kibana jason 다운로드
5
kibana 초기 설정
로그온 한 Windows 서버에서
크롬 브라우저로 kibana login url 접속
계정
암호
6
explor my own > Management(관리 ) > Create index (인덱스 패턴 만들기)
cwl-*
시간 필터 필드 이름 선택 :
@timestamp 선택
> 색인 패턴 생성
7
임포트 하기
관리 > Save Objects 클릭
사전에 빌드된 대시보드 가져오기 > 저장된 객체 클릭 > 가져오기
다운로드한 json 파일 선택 > 가져오기 > 완료
8
그래프 확인
대시보드 > 고급 대시보드 > 확인
Dashboard 클릭
<9> 로그 검색과 분석
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에서 다른 서버 접속 시도 확인
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/
<10> Elastic Search Workshop
1
https://deh4m73phis7u.cloudfront.net/log-analytics/mainlab/
<11> CloudWatch Agent로 로그 수집하기
https://brunch.co.kr/@topasvga/618
<12> VPC flow logs 몰아보기
https://brunch.co.kr/@topasvga/1752
감사합니다.