본문 바로가기

01. Network

Network-6 ( 보안 장비, VLAN&VxLAN&Tunneling, ACL, NSLookup&Proxy, Data 암호화 방식, Subnetting&방화벽 Security Zone 별 Priority, Network Packet Tracer 실습-1 )

728x90

<보안 장비>

+ Firewall 장비 ~ 내부로는 제한, 외부로는 제한X

  -> 서버로부터의 들어오는 트래픽에 대해서는 허용(<- 서비스를 받기 위해)

 

+ SDI( Stateful Deep Inspection)

  ; IP Header 정보를 가지고서만이 아니라 주소 정보, 프로토콜 #, 등으로 패킷 필터링

    -> Port # 까지 필터링 요소로 하면 “포트 필터링”

  <= Firewall의 기본 동작

  Ref. Stateful; 내부에서 보낸 후 다시 들어 올 때, 나갈 때의 기록을 가장 먼저 보고 허용해주는 상태

    ※ UDP는 일방 통신이지만, TCP는 양방향 통신

    df. Stateless; 보통 R, SW <- 상태 정보를 남기지 않는다.

      Ex. 1번 포트에서 2번 포트로 나가는 것을 기록하지 않는다 

        <- MAC Table, Routing Table을 근거로 전송하기에

 

+ Route에서의 방화벽같이 제어: ACL (~ 외부로부터의 트래픽 제어 가능)

  ~ 과거, Firewall에 의한 제어가 없을 때의 기능

  ~ 운영체제 IOS에서 보안 기능인 ACL을 가진 것

 

+ Firewall 침투 발생; 우회 경로 or 열린 포트로 침투 

  -> IDS(~ 알림뿐); signature 기반(<- 잘 알려진 정보 기반으로)

    Ref. signature 기반의 경우, 잘 알려지지 않은 공격에 대응 못하지만

      anomaly 기반의 오류/오탐의 문제로 signature형의 탐지를 선호

 

+ IDS는 One-arm 방식에서 mirroring 기법으로 복제본을 받아서 탐지하기에

  -> 문제 발생 이후 탐지로 방지 기능 X -> IPS(; 방지)

 

+ IPS(Intrusion Prevention System)는 (One-arm 방식이 아닌) 데이터 경로 상에,

  라우터 밖에 위치하기도 또는 라우터 뒷단에 배치하기도 한다

+ 내부망 안에서 또한 보안의 필요성이 커지며 -> Zero-trust 환경

  -> (Zero-trust 환경을 구성하기 위해) Micro Segmentation; 정책 부여를 위해 (내부망/외부망처럼) 경계가 있어야 함에, 그 경계를 최소화하는 방법

 

+ 3 Tier-Architecture

  -> Presentation Tier - Application Tier(Logic Tier) - Data Tier

    Ex. 3 Tier-Architecture의 Application Tier에 WAS(Web Application Server)

 

+ SDN(Software Defined Network) 

  : 급격한 네트워크 확장에 의한 빠른 대응에 시간적 어려움 존재 

    <- 네트워크 장비 추가 시, 초기 Configuration & Routing Table 작성 등을 장비 별로 각각 세팅해야 하기에

    -> Management Plane(~ 설정) & Control Plane(~ MAC Table, Routing Table; 데이터 제어) 기능을 서버에서 보관하고 구성원에게 전송 <- 장비 별 각각 세팅 X

    Ref. 처음 가상화 기술이 나올 때부터 시도했던 기술(~ 그만큼 필요하고 유용하다)

  Ex. VMware NSX 

    ; VMware’s NSX manager - transport node(<~ Host or Edge VM)

      -> 모든 설정 데이터를 manager에서 보내고 node에서는 필요한 설정 데이터만 사용

    (<- 분산 서비스)

    ※ 초창기 가상화가 서버에서 시작되었을 때, 네트워크 부분에 가상화 기술이 부족했다

      -> Cisco에서 UCS 서버 출시; (IBM 등 서버 회사와) 차별화 전략을 써서 출시 

      -> Cisco & VMware 협력 -> 가상화에서 가상 스위치가 부족하여 -> Cisco Nexus 1000V 제품 출시 -> Nexus 1000V SW를 ESXi에 넣어서 사용하는 부분에서, VMware의 가상화 engr와 Cisco의 네트워크 engr의 협력 문제로 적용/활성화 실패

        -> VMware NSX(<- 두 회사의 각 엔지니어들이 트레이드와 같이, 각 회나 내 인력으로 보충되며 나온 결과 -> 그에 따라, Cisco와 비슷한 기술 구현)


<VLAN & VxLAN & Tunneling>

+ VLAN <- Underlay vs Overlay Network

  Why? VLAN이 Overlay Network(; 논리적으로 분리되어 있는 Net)

    ; VLAN의 경우, SW에서 물리적인 설정이 무조건 필요하기에

      Ex. 가상화 환경에서, 두 개의 VM Host가 있는 경우

        두 가상 스위치에서 VLAN 설정을 다 해주고 네트워크를 구성하여도

          -> 중간의 알지 못 하는 물리적 SW가 존재하는 경우, (알지 못하는) SW의 (내가 설정한) VLAN이 활성화 되어 있지 않아(; 중간 SW의 물리적인 Configuration 필요) 

            -> VLAN을 사용한 정상적인 네트워크 구성 불가

    => 논리적인 설정으로만 Network를 구성하지 못하기에 Underlay Network이다.

    Ref. 서로 다른 Network에서 통신에서는 Packet은 변하지 않고 L2 Header만 변경된다

      -> Router를 통해서 다른 네트워크로 가면 L2H가 수신 측에서 제거되므로, VLAN 정보 전달 X

 

+ VxLAN ; Extend VLAN 의미로, L3 넘어서까지 확장

  -> 물리적인 설정 없이 Network 구성 가능

  - Overlay Network

  <- Tunneling을 통해서

 

+ Tunneling (~ Encapsulation)

  - 해당 네트워크에서 지원하지 않는 Protocol을 사용하여 네트워크를 통해 데이터 전송 방법

  - 패킷을 캡슐화하여(; wrapping) 작동

  Ex.(1). 이중 NAT 구성이 어려워서 tunneling으로 해결

    Packet 1: | Data | SIP(PrivateIP) | DIP(PrivateIP) | 

    Packet 2: | Data | SIP(PrivateIP) | DIP(PrivateIP) | SIP(PublicIP) | DIP(PublicIP) |

    : Packet 1으로는 Src IP & Dst IP가 사설 IP로 인해 통신이 안되므로

      Packet 2와 같이, Src IP & Dst IP를 Public IP로 Encapsulation을 해서 통신

  Ex.(2). 회사 합병 등으로 인해, 사설IP 대역 충돌 같은 경우 NAT로도 해결 안되며 tunneling 사용 


<ACL>

+ ACL(Access Control-lists)

  (1). Standard ACL: Packet Filtering(1-99)

    - List에 IP Header의 소스 IP 정보만 확인해서 Filter

    - 목적지에 가까운 곳에서 설정

  (2). Extended ACL: Port Filtering(100-199)

    - Source IP, Destination IP, Protocol, Port Number 까지 확인해서 Filter

    - 출발지에 가까운 곳에서 설정

~ (1) vs (2): (1).SACL의 Packet Filtering으로 L3를 통한 통신 자체 Blocking -> 그래서, SACL 설정을 Dest에 가까운 Port(Interface)에 설정하는 것이 기본

  df. (2).EACL는 라우팅 리소스 사용을 줄이기 위해, 동작하기 전에 Filtering하도록 Source에 가까운 Port(Interface)에 설정

 

  Ex.(SACL).1. 

    access-list 10 permit any

    access-list 10 deny 192.168.1.10 0.0.0.0

    access-list 10 deny any  <- 암묵적 Deny

    ->(ACL 처리 방식에 의해) 192.168.1.10으로부터 와도 Top-Down process & First Match로 인해 (최상위 정책인 permit any 적용으로) permit 된다

  ※ MAC Addr도 필터링 가능

 

+ access list #로 형식 인식해서 리스트 작성 Ex. 1~99: Standard ACL, 100~199: Extended ACL

 

+ ACL 처리 방식

  (1). Top-Down process

    ~ 리스트가 작성된 순서대로 위에서 아래로 처리

  (2). First Match  -> 좁은 범위를 위쪽에 기록

    ~ 가장 먼저 매칭되는 조건만 적용 -> 넓은 범위는 아래, 좁은 범위는 위로

  (3). Wildcard 사용해서 주소 범위 제한

    Ex. any : 0.0.0.0 255.255.255.255 

          host : 192.168.1.10 0.0.0.0

더보기

※ Wildcard Mask (df. Subnet Mask)

  IP: 192.168.1.10

  SM: 255.255.255.0 

    ~ SM’s “1” Bit : Network Part

       SM’s “0” Bit : Host Part

  WM: 0.0.0.255 ( <= 255.255.255.255 - SM(; 255.255.255.0) )

    ~ WM’s “0” Bit : Exactly Match Part

       WM’s “1” Bit : Don’t Care Match Part

  Ref. 라우터는 Default Routing을 해서라도 받은 데이터를 내보내려고 한다

    (4). 암묵적 deny -> 특정 주소만 차단하고자 할 때는 맨 아래 permit any 조건을 추가해 줘야 함

=> Router & Firewall & 가상화 ACL 모두 기본 처리 방식은 동일

  Ex.(SACL).2. 정상적인 SACL 설정 (df. “Ex.(SACL).1.”)

    access-list 10 deny 192.168.1.10 0.0.0.0

    access-list 10 permit any

    (access-list 10 deny any)

 

+ SACL Test: A to Server DENY

(config)# access-list 10 deny 192.168.1.10 0.0.0.0

  -> 제어 하고 싶은 Data(; A to Server)

  S : A

  D : Server

(1). 제어할 Data의 (Source로부터) 들어오는 interface에 ACL 적용

  (config)# int f0/0

  (config-if)# ip access-group 10 in

  A to B & A to Server

  ~ 드랍되는 위치에서 Destination Unreachable이 온다 (Destination Unreachable도 종류가 많다) ~> Dst로 가는데 보안 장비가 있음을 알 수 있다 ~> ”보안 장비에서 ICMP를 차단한다”. <- 보안 장비가 있는 걸 알려버리기에 ICMP 차단해버린다.

(2). A to B 통신의 Destination Unreachable 문제 해결하기 위해

  (config)# int f0/0

  (config-if)# no ip access-group 10 in

  (config-if)# int e0/0(or f1/0)

  (config-if)# ip access-group 10 out

-> C to Server 차단되었다 <- {(config)# access-list 10 permit any} 설정하지 않아서

  (config)# access-list 10 permit any

-> C-> Server 통신 가능

 

+ EACL Test: A to Web Server, tcp/80 DENY 

(사전 설정)

  int e1/0

  no ip access-group 10 out

Server: Web & DNS( A record: 192.168.3.80 www.test.com )

> Router’s Terminal 

  (config)# access-list 100 deny tcp host 192.168.1.10 host 192.168.3.80 eq 80

  (config)# access-list 100 permit ip any any <- TCP가 아니라 TCP/UDP ICMP를 아우르는 IP로 protocol 설정

  ( (config)# access-list 100 deny ip any any ); 암묵적 Deny

  (config)# int f0/0

  (config-if)# ip access-group 100 in

> A’s Terminal

# ping 192.168.3.80

# nslookup www.test.com

 


<NSLookup & Proxy>

+ nslookup

(1). 라운드 로빈 DNS

  -> 순차적으로 보내서 트래픽 분산

    -> 서버의 Health 체크 불가

(2). AnyCast Routing

  <- 주소는 Unicast이지만 사용은 Multicast처럼 

  -> 라우터는 인터넷 상에 다수의 같은 IP의 서버들이 있겠지만 가장 빠른 길을 가진 가장 인접한 서버로 라우팅된다. 

    ~ AnyCast Routing

      ~ Cache 서버

        Ref. IX: ISP와 ISP간에 서로 정보 교환을 위해 만나는 접점부

          -> IX(Internet exchange?)에 Cache 서버를 위치하게 구성 -> 서비스 환경 속도 증가 -> CDN Content Delivery Network

    -> GSLB Global Service LoadBalancer

 

+ Proxy ; 대행자

  -> 외부에게 내부의 정보 노출 시키지 않기위한 Proxy Server; Forward Proxy

    <- Client를 보호하기 위해서 

  <- LB 중에서도 one-arm 방식과 동일한 구조

  -> 외부로부터 내부 서버를 보호하기 위한 Proxy Server; Reverse Proxy

  + Port forwarding; 외부와 내부의 같은 서비스, 다른 Port 번호의 매칭 변환


<Data 암호화 방식(: 대칭키 & 비대칭키)>

+ Data 암호화 방식 2가지

  (1). 대칭키 암호화

    ~ 암호화 알고리즘을 사용한다 

    ~ 강력한 암호화 알고리즘 뿐만 아니라 키까지 더해서 암호화 한다.

    : 암호화키 = 복호화키 

    ~ 키 사용자가 늘어 날 수록, 키의 노출도가 커지는 단점

    ~ 대량의 데이터를 암호화하고 복호화하는데 편리하다는 장점

      ~ 프로세스에 리소스 많이 요구 -> 별도 칩셋 요구(; 데이터 전송 빨라진다)

      -> 제대로 된 속도를 내려면 제대로된 암호화 방식을 사용해야한다.

   Ex. DES, 3DES, …, AES(<-무선 환경에서 사용), etc.

  (2). 비대칭키 암호화

    - 데이터 암호화 키(: Public Key, 공개키) != 데이터 복호화 키(: Private Key, 개인키)

  Ex.Situ. A – B

    A, B 각각 Pri Key, Pub Key 생성

    서로 각각 Pub Key 교환

    A: B에게 전송 시, B’s Pub Key로 암호화해서 B로 전송

    B: A에게 전송 시, A’s Pub Key로 암호화해서 A로 전송

 

  But, A와 B 중간에 C가 자신의 Pub Key가 A’s인 것처럼 B에게 B’s 인 것처럼 A에게 전달

  -> 중간자 공격을 당하면, 비대칭키 암호화 기능 X 

    -> A입장에서 진짜 B의 PubKey인지 확인 필요 -> CA(인증기관)을 통해 확인

    -> CA에게 A는 본인의 공개키와 함께 인증 신청 -> CA에서 인증내용을 CA’s PriKey로 전자서명(자신의 PriKet로 암호화해서 전송)하여 인증서를 A에게 보낸다

      -> 기업의 경우, 기업 내 별도 CA를 만들어서 운영하는 환경: PKI Public Key Infrastructure <- Open된 환경이 아니라 기업 내에서만 사용하게 된다

   -> 비대칭키 암호화는 대량의 데이터 암호화는 어렵다

   -> 소량의 Data 암호화 용이

 => 일반적으로 대칭키를 비대칭 암호화해서 안전하게 대칭키를 주고받고 그 대칭키로 서로 암호화 통신한다.

 

Ref. Application 단에서 암호화에서 SSL/TLS와 같은 비대칭 암호화 방식으로 대칭키 주고 받아서 Tunnel 형성 후, 대칭키 암호화로 데이터 통신 진행한다


<Subnetting(; FLSM & VLSM) & 방화벽 Security Zone 별 Priority>

+ Subnetting 두가지

  - Network Part 중심 -> (1). FLSM 구현 시, 사용

  - Host 부 중심 -> (2). VLSM 중심으로 할 때 사용

(1). FLSM(Fixed Length Subnet Mask)

  Ex. 10.0.0.0/8

    -> 10.1.10.0/24 & 10.1.11.0/24, etc.

    ; C class가 관리하기 용이해서 /24 Fixed Length를 사용해서 할당

      -> 모든 네트워크의 크기(; 호스트의 수)가 동일

    ; 일반적으로 기업의 내부 망 

(2). VLSM(Variable Length Subnet Mask)

  ; 보통 ISP에서 최대한 효율적으로 제한된 IP 자원을 할당하기 위해 사용

    ~ 실제 할당할 host의 수에 따라 Subnetting

 

+ 방화벽을 기준으로 3 방향의 Security Zones

  -> Outside & Inside & DMZ

  - DMZ에 ServerFarm ~ 대외 서비스를 하기 위한 Server 배치

  Priority 지정하게 된다 -> ex. Inside Priority: 100, DMZ Priority: 50, Outside Priority: 0

  낮은 쪽에서 높은 쪽으로 접근 불가능 <- 가는건 가능하지만 오는건 안된다(;외부에서 접근 X)

  => 외부에서 DMZ 통해서도 Inside 접근 불가능한 구조


<Network Packet Tracer 실습. 본사 & 지사(인천,부산,대구) Network 구성 & ACL>

+ Network Packet Tracer 실습. Pic_Topology & 요구사항 & 결과

본사 & 지사(인천, 부산, 대구) Network 구성 & ACL 설정

더보기

Network Packet Tracer 실습. 참고 Scripts)

HQ & DQ Routing 시, 참고 할 것

access-list 100 permit tcp 192.168.1.0 0.0.0.255 host 192.168.1.241 eq 443

access-list 100 permit tcp 192.168.1.0 0.0.0.255 host 192.168.1.241 eq 80

access-list 100 permit udp 192.168.1.0 0.0.0.255 host 192.168.1.241 eq 53

access-list 100 deny ip any any

int f0/0

ip access-group 100 in

 

HQ

  access-list 100 permit tcp any any eq 80  <- 정책 번호 10

  access-list 100 permit tcp any any eq 443  <- 정책 번호 20

f0/1 (from DQ to HQ Port)

  ip access-group 100 in

 

sh access-lists -> 앞에 정책별 앞에 번호가 있다

그래서 (1). 원하는 곳의 번호 지정해서 설정

  or (2). 지우고 다시 작성

ip access-list extended 100

(config-ext-nacl)# 15 deny ip 192.168.1.160 0.0.0.31(; 대구지점 Net) 192.168.1.0 0.0.0.127(; PC용 Net)  <- 대구 지점에서 본사PC Net 접근 X

(config-ext-nacl)# 16 deny … <- 대구 지점에서 서버 Net 접근 X

(config-ext-nacl)# 17 permit … <- 부산 지점에서 DNS(UDP/53) 서비스 허용

728x90