Gateway Appliance (vyatta) Configuration

1.1 Gateway Appliance (vyatta) 솔루션 개요
Gateway Appliance (이하, Vyatta) 솔루션은 Software 기반의 Firewall 솔루션으로 Bluemix Infra Portal에서 Vitual Server 기반 및 H/W Appliance 형태의 구성이 가능함

단, Vitual Server기반 vyatta 솔루션은 일반 VM생성 Option에 OS만 vyatta를 선택하여 생성되므로, 본 프로젝트에서 필요로 하는 vyatta 하단에 별도의 독립적인 Subnet을 구성할 수 없다. 그러므로, 이후의 솔루션 내용은 H/W Appliance 기반의 vyatta 위주로 설명한다.

[Vyatta Interface Overview]

  • Vyatta 생성시 Option에 따라 Public & Private 또는 Private Only 로 구성이 가능
  • Vyatta와 Service VM이 생성되어 있는 Private VLAN과의 연결은 vyatta 내부에 Virtual interface를 생성하여 필요 Vlan을 수용
  • Private service vlan을 vyatta 하단에 수용 후 해당 Interface에 Inbound / Outbound 보안 룰을 설정하여 내/외부 통신을 제어
  • 1.2 vyatta 생성
    Vyatta 생성 전 아래의 구성 조건을 고려한다

    – vyatta를 생성할 datacenter 선정

    – vyatta의 Link Interface 속도 (100Mbps, 1Gbps, Redundant 사용 여부)

    – vyatta가 수용할 Private vlan 정보 (BCR Number, VLAN 정보)

    Step1: Bluemix Infra portal 접속(www.softlayer.com/)

    Step2: Gateway Appliance Ordering menu
    Main화면 > Oder > Network -> Vyatta Oder ->new oder popup
    Hardware Appliance type으로 Order

    Step3: Data Center 지정 및 OS (vyatta) 선택
    대상 Data Center와 OS (vyatta 6.x Subscription Edition) 선택

    Step4: Network Interface 선택
    기본적으로 100Mbps or 1Gbps로 구성가능하며, port 안정성을 위하여 Redundant option의 선택이 가능하다

    Step 5: vyatta 하단에 위치할 Service Private VLAN의 선택

    Step 6: vyatta hostname 설정 후 Order Submit

    1.3 Configuring vyatta

    1) Vlan Association

    Vyatta 생성 후 보안 Rule을 적용 할 Private service vlan을 vyatta의 제어를 받을 수 있도록 vyatta 하단에 Association 과정을 수행한다.

    Step 1: vyatta Portal menu 확인

    Private Network > Gateway Appliance > View Gateway Appliance 메뉴를 통해 생성된 vyatta 자원확인 및 접속

    Step 2: VLAN Assoicate

    Associate a VLAN 메뉴에서 수용 가능한 Private vlan List를 확인하고, 대상 Vlan을 선택하여 Association 함

    Step 3: 수용된 VLAN을 Route mode로 전환

    최초 Association 된 VLAN의 운영 mode는 Bypass mode로 vyatta의 제어를 받지 않고, 기존의 BCR의 routing 정책을 따르게 되어 있다.

    해당 Vlan을 vyatta가 제어하기 위해서는 운영 mode를 Route VLAN으로 전환, 해당 VLAN의 Default Gateway가 Vyatta가 되도록 구성한다

    아래의 그림은 2개의 Association 된 VLAN 중 일부는 Route mode, 일부는 Bypass mode로 설정된 예이다.

    Step 4: Virtual Interface 설정

    Association된 VLAN의 Route mode 전환 이후 해당 VLAN은 vyatta의 Private VLAN에 위치하게 되므로, 해당 VLAN내부의 VM들이 Gateway 통신을 할 수 있도록, vyatta 내에 virtual interface (이후 vif) 를 생성한다. Vif는 물리적 Interface (eth0)에 대한 논리적 Interface를 생성하여, multi vlan을 vyatta가 제어할 수 있도록 지원한다.

    1) vyatta interface 확인

    생성된 vyatta의 Private IP를 확인 후 SSH 접속, vyatta의 구성 Interface 및 라우팅 Table을 확인한다

    – eth0, Bond0: Private network interface

    – eth1, Bond1: Public network interface

    – Routing Table 확인: show ip route

    2) Associated VLAN을 수용하기 위하여 Virtual Interface (vif) 설정

    CLI 설정을 통하여 VIF 생성

    Command: vyatta@vtattadal04# set interfaces ethernet eth0 vif 1250 address 10.81.170.131/26

    [수행결과]

    해당 VIF의 Interface IP는 Portal의 IP manager 메뉴에서 해당 VLAN(v1250)의 Gateway IP를 확인 후 입력한다.

    3) Multi VLAN, Multi Subnet 구성

    Case 1: Multi VLAN 구성

    해당 vyatta 하단의 VLAN이 하나 이상의 Multi VLAN으로 구성할 경우, 해당 추가 VLAN(1277)의 VIF를 추가 생성하여 설정한다.

    이후 생성된 VIF 단위로 VLAN별 보안 정책설정 및 제어가 가능하다

    CMD: set interfaces ethernet eth0 vif 1250 address 10.81.170.131/26

    set interfaces ethernet eth0 vif 1277 address ‘10.80.211.73/29’

    Case 2: Multi Subnet 구성

    vyatta 하단의 VLAN이 하나 이상의 Multi Subnet을 가질 경우, 해당 Subnet에 대한 Gateway 정보를 VLAN(1277)의 VIF에 추가 설정하여야 한다.

    Command:

    1.4 Firewall Rule 설정
    최초 Global Config 모드에서 공통적인 보안기능을 Enable 시킨 후 해당 VLAN의 Business 성격에 맞는 Security Rule을 생성하여 Interface의 In / Out bound에 선별하여 적용한다

    [Firewall Configuration Flow]

    Step1: Stateful firewall 구성 (Global Configuration mode)

    최초 생성된 vyatta는 방화벽의 Session base의 Rule을 제어하는 Stateful firewall 기능이 Disable 되어있다. Global Config mode에서 해당 기능을 Enable 한다

    CMD: set firewall name inbound default-action ‘drop’

    set firewall name inbound ‘enable-default-log’

    Step2 ~3: Security Group (Firewall Rule)의 생성 및 Interface 적용

    [Rule 시나리오: Web Server VLAN 구성]

    1) Inbound Firewall Rule 생성

    최초 vyatta의 Firewall Rule은 SERVICE-ALLOW 라는 Provisioning 및 Monitoring 관련한 대역허용 Rule이 생성되어 있으나, Interface에 적용이 되어 있지 않다.

    Firewall Rule의 단계별 설정

    • Firewall Rule Group name 및 Action 설정: Interface에 적용할 보안 Rule들의 그룹 (inbound) 이름을 생성하고, 해당 Rule의 Action (Accept, Drop, Reject)을 지정.

      Vyatta의 Default Action Rule은 Drop 이므로, 허용할 IP 대역, Service에 대한 Rule을 사전에 설정한다

    Command: set firewall name inbound rule 90 action ‘accept’

    • 대상 IP 대역 및 Service 지정: 허용 또는 차단할 IP 대역과 Service Protocol을 설정

      각 대역 및 서비스 별 Rule을 생성하며, Rule간의 적용 순서는 Rule 번호에 의해 결정되므로, 해당 Rule의 상관관계를 고려하여 Rule Number를 부여한다

      (Rule 90 ~ 100: Provisioning 및 Monitoring 관련 IP 대역 허용, Rule 101 : 해당 VLAN 대역에 대하여, SSH, HTTP 만 허용)

    Command:

    set firewall name inbound rule 90 action ‘accept’

    set firewall name inbound rule 90 source address ‘10.0.64.0/19’

    set firewall name inbound rule 91 action ‘accept’

    set firewall name inbound rule 91 source address ‘10.1.128.0/19’

    set firewall name inbound rule 92 action ‘accept’

    set firewall name inbound rule 92 source address ‘10.0.86.0/24’

    set firewall name inbound rule 93 action ‘accept’

    set firewall name inbound rule 93 source address ‘10.2.128.0/20’

    set firewall name inbound rule 94 action ‘accept’

    set firewall name inbound rule 94 source address ‘10.1.176.0/20’

    set firewall name inbound rule 95 action ‘accept’

    set firewall name inbound rule 95 source address ‘10.1.64.0/19’

    set firewall name inbound rule 96 action ‘accept’

    set firewall name inbound rule 96 source address ‘10.1.96.0/19’

    set firewall name inbound rule 97 action ‘accept’

    set firewall name inbound rule 97 source address ‘10.1.192.0/20’

    set firewall name inbound rule 98 action ‘accept’

    set firewall name inbound rule 98 source address ‘10.1.160.0/20’

    set firewall name inbound rule 99 action ‘accept’

    set firewall name inbound rule 99 source address ‘10.2.32.0/20’

    set firewall name inbound rule 100 action ‘accept’

    set firewall name inbound rule 100 source address ‘10.2.64.0/20’

    set firewall name inbound rule 101 action ‘accept’

    set firewall name inbound rule 101 destination address ‘10.81.183.0/26’

    set firewall name inbound rule 101 destination port ‘ssh,http’

    set firewall name inbound rule 101 protocol ‘tcp’

    • 생성된 Firewall Rule의 Interface 적용 (VLAN 1277의 Virtual Interface의 Outbound에 적용)

    Command: set interfaces ethernet eth0 vif 1277 firewall out name ‘inbound’

    • 적용결과 확인: vyatta@vtattadal04:~$ show firewall name inbound

    설정한 Rule들이 지정한 Rule 번호 순서에 따라 적용되며, 마지막 Rule 10000은 All Drop action으로 자동으로 적용된다. (Implied Deny)

    2) Outbound Firewall Rule 생성

    – Outbound 방향의 Interface에 적용할 보안 Rule들의 그룹 (outbound)을 생성하고, 해당 Rule의 Action (Accept, Drop, Reject)을 지정.

    – 대상 IP 대역 및 Service 지정: 허용 또는 차단할 IP 대역과 Service Protocol을 설정

    각 대역 및 서비스 별 Rule을 생성하며, Rule간의 적용 순서는 Rule 번호에 의해 결정되므로, 해당 Rule의 상관관계를 고려하여 Rule Number를 부여한다

    (Rule 1 ~ 11: Provisioning 및 Monitoring 관련 IP 대역 허용, Rule 100~101 : 해당 VLAN 대역에 대하여, SSH, HTTP, ICMP 만 허용)

    Command:

    set firewall name outbound rule 1 action ‘accept’

    set firewall name outbound rule 1 destination address ‘10.0.64.0/19’

    set firewall name outbound rule 2 action ‘accept’

    set firewall name outbound rule 2 destination address ‘10.1.128.0/19’

    set firewall name outbound rule 3 action ‘accept’

    set firewall name outbound rule 3 destination address ‘10.0.86.0/24’

    set firewall name outbound rule 4 action ‘accept’

    set firewall name outbound rule 4 destination address ‘10.2.128.0/20’

    set firewall name outbound rule 5 action ‘accept’

    set firewall name outbound rule 5 destination address ‘10.1.176.0/20’

    set firewall name outbound rule 6 action ‘accept’

    set firewall name outbound rule 6 destination address ‘10.1.64.0/19’

    set firewall name outbound rule 7 action ‘accept’

    set firewall name outbound rule 7 destination address ‘10.1.96.0/19’

    set firewall name outbound rule 8 action ‘accept’

    set firewall name outbound rule 8 destination address ‘10.1.192.0/20’

    set firewall name outbound rule 9 action ‘accept’

    set firewall name outbound rule 9 destination address ‘10.1.160.0/20’

    set firewall name outbound rule 10 action ‘accept’

    set firewall name outbound rule 10 destination address ‘10.2.32.0/20’

    set firewall name outbound rule 11 action ‘accept’

    set firewall name outbound rule 11 destination address ‘10.2.64.0/20’

    set firewall name outbound rule 100 action ‘accept’

    set firewall name outbound rule 100 destination port ‘http,ssh’

    set firewall name outbound rule 100 protocol ‘tcp’

    set firewall name outbound rule 101 action ‘accept’

    set firewall name outbound rule 101 protocol ‘icmp’

    • 생성된 Firewall Rule의 Interface 적용 (VLAN 1277의 Virtual Interface의 Inbound에 적용)

    Command: set interfaces ethernet eth0 vif 1277 firewall in name ‘outbound’

    • 적용결과 확인: vyatta@vtattadal04:~$ show firewall name outbound

    설정한 Rule들이 지정한 Rule 번호 순서에 따라 적용되며, 마지막 Rule 10000은 All Drop action으로 자동으로 적용된다. (Implied Deny)

    Step4: Firewall Monitoring & Troubleshooting

    1) Firewall Rule Monitoring

    – 적용한 Firewall Rule은 vyatta의 monitoring mode에서 해당 Rule의 적용순서 및 내용, 실제 Traffic 중 적용된 packet counter를 확인할 수 있다

    Command: vyatta@vtattadal04:~$ show firewall name inbound (* Rule inbound에 대한 Status 확인)

    [수행결과]

    2) Firewall Traffic flow Monitoring

    Firewall 적용 후 실제 Traffic에 대한 Flow 확인이 필요한 경우 vyatta의 monitoring mode에서 해당 Interface를 경유하는 traffic의 counter, flow, decoding 등이 가능하다

    A. 해당 Interface Flow 확인: packet Size, TX, RX, IP Flow 등에 대한 Table 확인기능을 제공

    CMD: vyatta@vtattadal04:~$ monitor interfaces ethernet eth0 vif 1277 flow

    [수행결과]

    B. Packet decode 확인: Traffic Packet들에 대한 Source, Destination, Sequence, Ack 등 Packet decoding 기능을 제공

    CMD: vyatta@vtattadal04:~$ monitor interfaces ethernet eth0 vif 1277 traffic unlimited

    [수행결과]

    3) Firewall Troubleshooting

    Firewall 구성 후 정상 서비스의 차단 또는 비 허용 Traffic 유입 등의 문제를 해결하기 위해서는 Rule Monitoring Tool 및 Log 분석 기능을 이용하여 종합적인 접근이 필요

    • Log 분석 기능 enable

    생성한 Firewall Rule별 Logging 기능을 enable 하여 Rule 단위의 문제분석 기능을 지원

    Command:

    vyatta@vtattadal04# set firewall name inbound default-action drop => default Action

    vyatta@vtattadal04# set firewall name inbound enable-default-log => default drop rule에 대해여 Logging 기능 Enable

    vyatta@vtattadal04# set firewall name inbound rule 98 log enable => 특정 rule (ex : 98)에 Logging 기능을 enable 하여 Rule 단위 문제 분석

    • Firewall Rule Log 분석

    Logging이 적용된 Rule에 대하여 실시간 적인 Log data 분석기능 제공

    Command: vyatta@vtattadal04:~$ show log firewall name inbound

    [Case 분석: Provisioning Error Troubleshooting]
    Vyatta 하단에 VLAN 1277 Firewall Rule 구성 후 해당 VLAN내에 VM 생성 Error가 발생

    . 해당 Firewall drop rule에 Logging enable 후 drop packet을 분석하여, 차단되는 IP 대역을 확인 후 Rule 반영

    – 결과 Log