0부터 시작하는 가상머신과 네트워크 공부 - LB와 ACL

Jaehong Lee·2022년 7월 11일
0
post-thumbnail

1. LB 구조

  • 만약 LB를 사용하지 않으면, 각 서버당 공인 주소가 할당되야하며, 요청시 첫번째 서버에 몰리게된다
  • LB를 사용하면 공인 주소는 LB의 포트 하나에만 할당해주면 된다. 이 LB에 접근시 사용자는 웹서버와 직접 통신하는 것이 아닌, LB와 통신하며, 이 LB가 대신 웹서버와 통신한다
  • LB의 웹서버와 연결된 내부 PORT에서 라운드 로빈 방식을 통해 웹서버의 서버들과 통신한다
  • 각 서버는 접근 허용을 통해 접근을 제어한다. WAS는 WEB 서버에서만 접근을 가능하게 하고, DB는 WAS에서만 접근을 허용하게 하여, 그 외에는 접근이 불가능하게 할 수 있다. WEB 역시 특정 PORT에서만 접근이 가능하게하여 외부에서 직접 접근을 막을 수 있다

2. ACL

  • 라우터에 PACKET이 들어오면 먼저, ACL에 보내진다

    • 이 ACL에서 필터링이 되는데, PERMIT이 되어 NAT에 보내지거나, DENY되어 DROP된다
    • 그 후, NAT를 거쳐 라우팅되어 NEXT HOP으로 보내진다
  • ACL은 Access Control List의 약자로 번호나 이름을 이용하여 정책을 생성하고, 생성된 정책에 기반하여 패킷을 필터링, 분류한다

    • 필터링 : PERMIT 혹은 DENY를 통해 PACKET을 골라내는 것
    • 분류 : 특정 PACKET을 구분하는 것. 이렇게 구분된 PACKET들에 NAT나 QOS와 같은 정책을 부여한다
      • QOS는 Quality of Service로 애플리케이션, 사용자 및 컴퓨터를 기반으로 네트워크 제어를 제공하는 네트워크 대역폭 관리 도구
  • 패킷의 어떠한 부분을 확인하고 필터링 하느냐에 따라 standard/extended ACL로 구분한다

    • 출발지 IP 만을 확인하고 필터링 : Standard ACL ( 번호 1~99 ) ( 이름 WORD ) - WORD란 아무 단어나 입력해도 된다는 뜻이다
      • 클라우드나 대규모 환경에서는 사용하지 않는 방법이다
    • 출발지/목적지 IP, 출발지/목적지 PORT 번호 ( L3,L4 )를 모두 확인 : Extended ACL ( 번호 100~199 ) ( 이름 WORD )
      • 일반적으로 방화벽의 역활로서 사용하는 ACL은 Extended 방식을 사용한다

3. Standard ACL

  • 번호 1~99를 사용하며, 출발지의 IP 주소만을 확인하고 필터링한다
  • 작성 방법
    • access-list 1 permit 192.168.1.0 0.0.0.255
    • access-list 1 deny 2.2.2.2 0.0.0.0
    • Standard는 특정 IP 주소로부터의 모든 접근에 대하여 허용 또는 차단으로만 구분할 수 있다. 따라서 특정 PORT로 서버에 접근하는 것이 불가능하며, 해당 라우터를 거쳐서 다른 곳에 접근할때 세세하게 접근 권한을 설정하는 것이 불가능 하다

4. Extended ACL

  • 작성 방법
    • access-list 111 permit ip any host 1.1.1.1 : IP -> 패킷의 IP (L3) 부분만을 확인하고 필터링 하겠다, ANY -> 출발지 IP , HOST 1.1.1.1 : 목적지 IP, 모든 IP가 1.1.1.1로 접근하는 것을 허용
    • access-list 111 deny tcp any host 2.2.2.2 eq 80 : TCP -> L3 , L4를 모두 확인한다, DENY -> 차단, ANY -> 출발지 IP, HOST 2.2.2.2 -> 목적지 IP, EQ 80 -> = 80이라는 뜻으로 80번 PORT 하나만을 의미한다 -> 모든 IP가 2.2.2.2의 80번 PORT로 접근하는 것을 차단한다
    • access-list 111 deny icmp any host 2.2.2.2 : 외부의 모든 사용자들이 2.2.2.2로 Ping을 보내는 것을 차단하겠다
    • access-list 111 deny ip any any : 모든 것을 차단하겠다

5. ACL의 Rule

  • 1. ACL은 TOP-DOWN 방식 : 위에서부터 차례대로 작동한다

  • ex) 나는 외부에서 접속하는 사용자들의 트래픽 중 2.2.2.2로부터의 모든 트래픽을 차단하고 싶다. 나머지 모든 트래픽은 허용하고자 한다

    access-list 1 deny host 2.2.2.2
    access-list 1 permit any

  • 위와 같이 작성해야한다. TOP-DOWN 방식이므로, 만약 permit any가 위에 있다면 permit이 먼저 되기에, deny를 위에 작성해야한다

  • 2. 지정하지 않은 나머지 모든 트래픽은 자동으로 차단된다

  • 별도로 작성하지 않더라도 ACL의 가장 아래에는 deny ip any any가 생략되어있다

  • ex) 외부에서 유입되는 트래픽 중 2.2.2.2 만을 차단하고 싶다

    • access-list deny host 2.2.2.2 만을 쓰면 밑에 deny ip any any가 생략되어있으므로 모든 트래픽이 차단된다
    • 따라서 밑에 access-list 1 permit any를 추가해야된다
  • 3. 생성된 ACL은 적용해 주어야 활성화 된다

  • 적용할 때에는 방향을 지정해 주어야 한다

  • Ex) 172.16.1.0/24 에는 우리회사의 서버들이 존재하고 있다. 이 서버들로 접속할 수 있는 사용자 (IP)는 172.16.2.100이 유일하며, 나머지는 모두 차단된다 -> fa0/1.10의 out에 설정해야한다. 먼저, 허용하고, 다음에 나머지를 차단한다

    1. access-list 11 permit host 172.16.2.100 -> 172.16.2.100이 접속하는 것을 허용
    2. int fa 0/1.10
    3. ip access-group 1 out -> fa 0/1.10을 통해 host로 나갈때로 설정

6. 0.0.0.255는 무슨 의미일까? - Wild Card Bit

  • Wild Card Bit로 0은 'look at this bit'로 0에 해당하는 부분의 IP 주소는 똑같아야한다. 1은 'don't care bit'로 자유롭게 써도 된다는 부분이다
    • 이는 subnet mask가 아니라 wild card bit임을 인지하자
    • 따라서, 홀수만 허용할려면 0.0.0.254를 통해 마지막 1을 무조건 고정시켜 홀수만을 허용할 수 있다
    • 예를 들면, 192.168.1.4 0.0.0.3은 192.168.1.4 ~ 7까지가 범위다
    • access-list 1 deny 2.2.2.2 0.0.0.0은 2.2.2.2 한 대의 PC를 제한하는 것이다 = access-list 1 deny 2.2.2.2
    • 모두를 제한하고 싶으면 access-list 1 deny 0.0.0.0 255.255.255.255 = access-list 1 deny any를 사용하면 된다
  • Wild Card Bit는 유용하지가 않아서 많이 사용하지는 않는다. 따라서, 일반적으로는 Wild Card Bit보다는 Subnet Mask를 사용한다

7. ACL 추가

  • HOST는 WILD CARD BIT가 0.0.0.0이라는 의미로 IP주소 하나만을 해당하게 한다
  • 만약 IP가 하나있다면 EXTENDED ACL에서 이를 출발지 IP라고 판단
  • HOST 키워드는 STANDARD, EXTENDED 둘 다 사용 가능하다
  • WCB가 따로 명시 안되있으면 DEFAULT로 0.0.0.0이 된다
profile
멋진 엔지니어가 될 때까지

0개의 댓글