ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 통신망 ( + AWS 에서 망 분리하기)
    네트워크 & 인프라 2022. 3. 23. 17:36

     

     

     

    이번에는 통신망을 분리하는 것에 대해 학습하였다. 

     

     

     

     

    망 분리하기 

    출처 https://medium.com/insa-tc/defense-in-depth-for-web-applications-38178696f833

    망분리는 개인 정보를 다루는 DB 서버 등을 위한 내부망, 사용자가 접근하는 웹 서버를 위한 외부망을 나누어 구성 한다. 여러겹의 복잡한 방어를 통해 최적화되고 강력한 보안체계를 갖추기 위해 사용된다. 

    • 통신망 : 노드(IP로 식별할 수 있는 대상)들과 노드들을 연결하는 링크(물리적 회선)들로 구성된 하나의 시스템 ( 1 Subnet = 1 망 )
    • 외부망 : 사용자가 접근하는 웹 서버를 위한 망
    • 내부망 : 개인정보를 다루는 DB 서버 등을 위한 망

     

     

     

    AWS에서의 망 
    • Region : 국가 / 지역
    • Availiability Zone (가용성 존) : 데이터 센터 ( 물리적으로 나뉜 IDC )
    • VPC : 하나의 Region에 종속되며 다수의 AZ설정이 가능, VPC IP 대역 내에서 망을 구성 

     

     

     

    L2  Switch 

    • Multiple Access를 위한 장비 
    • 서버에 Network Interface Card가 있고 이는 MAC 주소를 가지고 있다. (Ex) 3c:22:fb:58:4a:c0 (앞 6자리:제조사, 뒤는 식별자))
    • MAC 테이블에 정보가 있을 때 : Forwarding
    • MAC 테이블에 정보가 없을 때 : Flooding  (응답하는 장비가 있으면 포트에 장비 있다고 인지 -> MAC 테이블에 등록)

     

     

    Router

    • 서로 다른 네트워크 간의 통신을 중계
    • MAC 테이블에 정보가 있을 때 : Forwarding
    • MAC 테이블에 정보가 없을 때 : Drop (Fail Drop 형 장비)
    • 라우팅 프로토콜을 활용하여 어떤 대역으로 패킷을 보내는 것이 최적 경로인지 학습

     

     

    인터넷 통신

    • 외부 네트워크와 통신하기 위해 Public IP 필요
    • Private Ip가 목적지일 경우 인터넷 구간으로 보내지 않음 -> Public Ip로 변환해야한다 (NAT)
    • 자신이 속한 subnet : 가상 스위치를 통해 직접 통신
    • 자신이 속하지 않은 subnet : 가상 라우터를 통해 직접 통신
    • 그외의 전체대역(0.0.0.0/0) : 인터넷 게이트웨이로 통신 보내도록 학습 

     

     

     

    네트워크 장비 
    • Collision Domain : Half Duplex로 다중접속환경에서 데이터를 동시에 전송할 때 충돌이 일어날 수 있는 영역
      • 허브를 통해 MA 구성 : 1계층 장비이기 때문에 신호 증폭으로 인해 Collision Domain의 영역 확장
      • 스위치를 통해 MA 구성 : 2계층 장비로 신호증폭 + 2계층 헤더열어 MAC 주소 확인 후 전송해서 port 별로 Collision Domain 나눔
      • Mullti Access(다중 접속 환경)에서는 Switch를 사용해야 한다. 
    • Broadcast Domain : Broadcast 데이터가 전달되는 범위
      • 범위내의 단말은 직접 통신, 허용 영역은 라우터 기준으로 분할 
      • Broadcast 데이터가 증가하면 통신망에 부하가 가해지므로 라우터를 배치함으로서 Broadcast 허용영역을 적절히 분할해 통신망 부하를 줄여야 한다. 

     

     

    출처 https://blog.2dal.com/2017/09/12/aws-vpc-basic/

     

     

     

    VPC
    • 하나의 서비스를 위한 네트워크 다루는 단위 
    • 하나의 Region안에 구성 가능 

     

     

    Subnet 
    • VPC에서 설정한 네트워크 대역을 더 세부적으로 나눈 네트워크 ( VPC의 CIDR 영역 내에서 구성 가능 ) 
    • 서브넷 구성시 안전조치를 고려해 subnet의 AZ(IDC)을 다르게 구성
    • 하나의 VPC 내에 구성된 subnet들은 다른 IDC에 존재하더라도 사설망을 통해 통신 가능 

     

     

    Subnetting

    C 클래스 서브네팅
    B 클래스 서브네팅

     

    • A 클래스 : 255.0.0.0   ->  11111111.00000000.00000000.00000000
      • 자릿수로 표현하면 ~8자리 까지는 채워져있다. CIDR /8 부터 시작한다 .
    • B 클래스 : 255.255.0.0  ->   11111111.11111111.00000000.00000000
      • 자릿수로 표현하면 ~16자리 까지는 채워져있다. CIDR /16 부터 시작한다. 
    • C 클래스 : 255.255.255.0  ->   11111111.11111111.11111111.00000000
      • 자릿수로 표현하면 ~24자리 까지는 채워져있다. CIDR /24 부터 시작한다. 

     

     

    Q : 네트워크 아이디 192.168.4.0/24 의 네트워크를 3개의 subnet으로 나누고자 한다면?

    A : 

    네트워크는 C class로 나누고자하는 subnet의 개수가 3이므로 테이블을 보았을 때 subnet이 4인 테이블의 column을 참고한다.

    호스트는 64(2의 8승(0의 갯수))개 사용할 수있고 서브넷 마스크는 /26 (CIDR)이다. 

    첫번째 Host ID는 Network ID로 사용해야하고 마지막 Host id는 Broadcast ID로 사용해야 하므로 가용 Host 는 64-2 = 62개가 된다 . 

    따라서 위와 같이 192.168.4.1~62, 192.168.4.65~126,  192.168.4.129~190으로 나눌 수 있다. 

     

     

    Q: 211.168.83.0의 네트워크를 2개로 분할하려면 서브넷 마스크는? 

    A :  211.168.83.128 (10000000) /25

    C클래스의 네트워크 255.255.255.0 (11111111.11111111.11111111.00000000)에서 

    2개로 분할 시 211.168.83.128 (10000000) /25

    4개로 분할 시 211.168.83.192 (11000000) /26

    8개로 분할 시 211.168.83.224 (11100000) /27

    16개로 분할 시 211.168.83.240 (11110000) /28

    와 같이 계산해서 나타낼 수 있다. 

     

     

    Q: 회사에서 211.168.83.0의 네트워크를 사용하고 있으며 내부적으로 5개의 서브넷을 사용하기 위해 서브넷 마스크를  211.168.83.224 으로 사용하고 있다. 이때 211.168.83.34가 속한 서브넷의 브로드캐스트 ID는?

    A : 

    네트워크는 C class로 나누고자하는 subnet의 개수가 5이므로 테이블을 보았을 때 subnet이 8인 테이블의 column을 참고한다.

    호스트는 32개 사용할 수있고 서브넷 마스크는 /27 (CIDR)이다. 

    따라서 서브넷을 211.168.83.0~31, 211.168.83.32~63, 211.168.83.64~95, 211.168.83.96~127, 211.168.83.128~159,211.168.83.160~191, 211.168.83..192~223, 211.168.83.224~255으로 나눌 수 있다. 

    여기서 맨 처음 Host ID는 네트워크 아이디, 마지막 Host ID는 브로드캐스트 ID이므로 211.168.83.34가 속한 서브넷의 브로드캐스트 아이디는 211.168.83.63이 된다. 

     

     

     

    Q: 네트워크 아이디 172.16.0.0/16의 네트워크를 4개의 subnet으로 나누고자 한다면?

    A : 

    네트워크는 B class로 나누고자하는 subnet의 개수가 3이므로 테이블을 보았을 때 subnet이 4인 테이블의 column을 참고한다.

    (11111111 11111111 11000000(세번째 영역) 00000000(네번째 영역))

    호스트는 16384(2의 14승(0의 갯수))이며 서브넷 마스크는 /18 (CIDR)이다. 

    여기서 우리는 세번째 영역을 이용해서 서브넷을 나눌 수 있으므로 네번째 영역의 설정을 제외하여 호스트를 설정할 수 있다.

    여기서 네번째 영역은 2의8승 256이 되므로 사용할 호스트는 256으로 나눈 64가 된다. 

    첫번째 Host ID는 Network ID로 사용해야하고 마지막 Host id는 Broadcast ID로 사용해야 한다. 

    따라서 위와 같이 가용영역은 172.16.0.1~172.16.63.254, 172.16.64.1.~172.16.127.254,  172.16.128.1~172.16.191.254, 172.16.192.1~172.16.255.254 으로 나눌 수 있다. 

     

     

     

    ( 참고한 영상 )

    https://www.youtube.com/watch?v=o-NRjtQsJx4&ab_channel=%EC%B5%9C%ED%9D%AC%EC%A4%80%EA%B5%90%EC%88%98%EC%9D%98-%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%BC%EB%B0%98

    https://www.youtube.com/watch?v=wuIdYxaV46Y&t=10s

     

     

     

     

    Routing Table
    • 서브넷이 다른 서브넷 혹은 외부망과 통신하기 위한 정보를 가지고 있다. 

     

    Internet Gateway
    • 외부망과의 연결 담당 

     

    외부 네트워크와 연결 
    • EC2는 인터넷 게이트웨이를 통해 외부 인터넷과 연결 
    • 서브넷에 속한 EC2가 외부와 통신하기 위해 자신의 라우팅 테이블에 설정된 정보를 제외한 모든 대역(0.0.0.0/0)에 대한 통신을 인터넷 게이트웨이로 요청하게끔 설정 
    • 내부망은 별도의 라우팅 테이블 생성
    • 내부망 서버가 외부망에 접속해야 할 때 (라이브러리 설치 등 ) NAT 게이트웨이 활용

     

    접근 제어 
    • Public Cloud의 Official OS image, SpringFramework를 사용한다면 많은 부분에서 보안성을 보장
    • SYN Flooding: 커널에 SYN Cookie가 활성화 되어있어 TCP SYN Flooding 공격이 유효하지 않다. 
    • LAND, Smulf Attack : 라우터에 설정하여 막을 수 있음
    • SQL Injection : Preparedstatment, 혹은 JPA의 경우 pre-compile 거쳐 파라미터로 들어가는 값을 바인딩 하여 사용

     

    Security Group 설정 
    • 22번 포트 : 현재 자신의 공인 IP에서만 접근 가능하도록 설정
    • 80, 443, 8080 등의 사용할 포트 : 전체대역(0.0.0.0/0)에 오픈 
    • ICMP 프로토콜 : 현재 자신의 공인 IP에서만 접근 가능하도록 설정 

     

     

     

    ( 참고한 사이트 ❤️‍🔥)

    NextStep 프로젝트 공방 1기 (망 분리하기) 

    https://edu.nextstep.camp/

     

    NEXTSTEP

     

    edu.nextstep.camp

    https://medium.com/insa-tc/defense-in-depth-for-web-applications-38178696f833

     

    Defense In Depth For Web Applications

    Introduction

    medium.com

    https://brainbackdoor.tistory.com/115

     

    네트워크(L1,L2)의 다중화(Bonding 드라이버, RSTP)

    1) OSI 7 Layer 중 L1,L2 1계층 - Physical Layer - 역할: Bit Stream(이진수 흐름)을 전기, 빛 등의 신호로 변환 - PDU: Bit - 대표장비: 케이블(LAN-UTP, WAH-Serial), 허브, 리피터, 커넥터(LAN-RJ45) 등 2계..

    brainbackdoor.tistory.com

    https://catsbi.oopy.io/3743db62-615c-473c-a236-424965dfdcdc

     

    망 분리하기

    통신망

    catsbi.oopy.io

     

Designed by Tistory.