brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Nov 21. 2020

8탄-8. 8주차-보안그룹, NACL,VPC Flowl

<1>  보안 그룹

<2>  네트워크 ACL

<3>  VPC Flow log

<4> WAF




<1>  보안 그룹


1

EC2 인스턴스, ALB 대상으로  접속 제어를  한다.


2

상태 저장 방식이다.

State full


디폴트로 모두 Deny이다.

허용해주는 것만  허용한다.


웹서버로 접속한 경우 유입 80이 허용되면 접속이 허용된다.

나가는 설정에 상관없이 유입은 된다.

외부에서 유입된 건 그냥 나간다.  

Inbound 허용이 필요하면, 유입 한쪽 방향만 설정해주면 된다.

Outbound 제어가  필요하면 ,  나가는  방향 쪽만 열어 주면 된다.



3

보안 그룹에서  나가는 것 제어는?


아래는 80으로 나가는 것만 허용해주는 설정이다.

내부에서 외부로  HTTP만  허용하면 된다.

목적지 포트나 IP로 허용하면 된다.



[ec2-user@Server-EC2 ~]$ curl ifconfig.me

3.14.145.82


나가는 것 모두 지우면  외부로 나갈 수 없다.



4

소스를 보안 그룹으로 지정할 수 있다.

소스를  접두사 목록 ID로도 설정할 수 있다.(S3 지정가능)



https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/managed-prefix-lists.html


5

보안 그룹 Rule 수  제한은 60개이다.

60개 정도면 사용하는 데는 이상 없다.


https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/amazon-vpc-limits.html



6

보안 그룹 Outbound 제어 설정

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_SecurityGroups.html


7

https://brunch.co.kr/@topasvga/757


8

https://brunch.co.kr/@topasvga/1297



https://brunch.co.kr/@topasvga/1363






<2>  네트워크 ACL


1

서브넷 네트워크에 대한 접속 제어를 한다.

NCAL는 설정 시 유입 유출 2가지 모두 열어줘야 서비스가 된다.


2

상태 저장하지 않는다.  

Stateless


기본으로 유입과 유출이 모두 허용되어 있다.

허용과 차단 설정을 같이 할수 있다.


외부 유입 허용된 경우라도 외부로 나가는 포트가 열려 있어야 서비스된다.

나가는 것도 열어줘야 한다.

예를 들어   80으로 들어가는 것을 열어주려면 , 나가는 1024~65535 포트를 열어줘야 한다.

반대로, 내부에서 80으로 나가려면 , 들어오는 1024~65535 포트를 열어줘야 한다.


그래서, 네트워크 ACL로 서비스 관리하는것은 아주 힘들다.

들어온건 나가게 설정을 해야 한다.



서브넷 단위로 적용된다.

특정 IP에서 DDOS 공격받을 때 서브넷 단위로 한 번에 막을 수 있는 장점이 있다.



3

NACL 기본은  유입과 유출이 모두 허용되어 있다.



4

net-acl2라고 새 NACL을 만들어 관리하자.

새로 만들면 기본으로 모두 Deny이다.




5

NAcl 설정 예제

서버로 SSH 접속하려면 2가지 Open설정을 해야 한다.

유입되는 SSH 22번 포트 허용

유출되는 1024-65535 허용입니다.

NACL은 2가지 열어줘야 한다.


Inbound Rule


Outbound Rules



6

내부  -> 외부로 80 접속하려면

ADD 해서 작업하라

NACL 은 무조건 3가지 작업을 해야 한다.


Outbound  80 허용

Inbound     1024-65535 허용해야 한다.

Subnet associations에 사  대상 서브넷을 선택해  지정해야 한다.


포트 허용

Outbound Rules


inbound Rules


Subnet associations에서  대상 서브넷을 선택해  지정해야 한다.




8

특정 IP에서 공격 올 때 막기?


새 NACL

10  TCP  해당 IP 소스 deny

11  UDP  해당 IP 소스 deny

Subnet 적용


Inbound Rules

Outbound Rules



9

NACL 제약?

20개 Rule설정 가능

최대 40개까지 가능하나 성능상의 이슈가 발생될 수 있으니 40개는 사용하지 않도록 한다.

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/amazon-vpc-limits.html


10

네트워크 ACL?

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-network-acls.html




<3>  VPC Flow log


1

VPC를 통해 들어오거나 나가는 것에 대한 흐름을 로그로 남긴다.


보안그룹에서 Outbound 설정을 삭제 한다.

기본 차단 이다.


2

서버 접속해 접속 상태  확인

netstat -ntp


3

접속상태 2초마다 확인

# while true ; do netstat -ntp && echo "-----------------------------" ; sleep 2; done    


4

테스트 

[ec2-user@Server-EC2 ~]$ curl ifconfig.me

^C

[ec2-user@Server-EC2 ~]$ ping 1.1.1.1

PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.

^C


5

거부 로그 확인

// 클라우드 포메이션에서 로그 포맷을 별도로 지정한 상태이다.


80 TCP (2 6) 로 조회


CloudWatch > 로그 > 로그그룹   >  "80 2 6" 으로 필터링해서 확인하자!



2 6 의 의미 ?

TCP flags : SYN 2 , SYN-ACK 18 , FIN 1 , RST 4 , ACK 16 , PSH 8

https://www.manitonetworks.com/flow-management/2016/10/16/decoding-tcp-flags


IP 프로토콜 : ICMP 1 , TCP 6 , UDP 17 



6

SYN-ACK 18  Deny 로그가 차단 되는경우 찾아보자 ~~


7

트러스트 어드바이저에서도   VPC Flow log를 모니터링한다.

Security Hub에서도   VPC Flow log를 모니터링한다.


8

실습하기


https://brunch.co.kr/@topasvga/1752



8  기본 개념 

VPC Flow Logs - Amazon Virtual Private Cloud





<4> WAF


1

 방화벽이다.

CloudFront , ALB , API Gateway에 배포 가능하다.

Cloudwatch에서 모니터링 가능하다.

AWS Firewall Manager로 통합해 사용 가능하다.



// Cloudformation으로  EC2를 DVWA로 자동 구성된다.

// DVWA  = 취약한 웹서버 


2

취약 부분 확인



3

WAF 적용 ?

4가지 단계를 거친다


1단계   WAF생성

2단계   ALB등에 적용

3단계  공격 테스트

4단계  차단되었는지 뷰로 확인



4

1단계   WAF생성 ?


WAF >  지역부터 지정한다.  > ALB로 지정한다.  >  생성  완료




5

2단계   ALB등에 적용 ?


WAF에 적용할   리소스 지정한다.

ALB로 지정한다.


WAF > Web ACLs  >  Associated AWS resources  > My-ALB 선택  > 완료





6

생성된 부분 확인

WAF > Web ACLs >  





7

적용될 룰 확인



8

3단계  공격 테스트 ? 


공격 테스트툴로 테스트한다.



9

4단계  차단되었는지 뷰로 확인 ?




10

테스트 완료후 리소스  삭제



11

참고 서비스 

AWS WAF Security Automations


https://aws.amazon.com/ko/solutions/implementations/aws-waf-security-automations/



다음은  9주차 VPC 미러링


https://brunch.co.kr/@topasvga/1344


감사합니다.


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