스위치 포트로 트래픽이 과다하게 수신될 경우 Storm-control 기능을 사용하여 수신하는 트래픽 처리양을 제어 및 관리할 수 있다. 스위치 포트로 유니캐스트, 멀티캐스트, 브로드캐스트 트래픽이 1초 동안 일정 수준 이상으로 수신되면 해당 트래픽을 일시적으로 차단하거나 조절해준다.
테스트는 Cisco Packet Tracer로 시뮬레이션을 진행합니다.
아래와 같이 만들어서 테스트 진행했습니다.
Storm-control 설정
장비에 따라 조금 다를 수 있습니다.
Storm-control 기능을 사용할 포트를 정해주세요. Switch(config)#interface range fastEthernet 0/2-4
Storm-control 기능을 이용하여 제어되는 프레임 유형을 선택할 수 있습니다. Switch(config-if-range)#storm-control broadcast level Switch(config-if-range)#storm-control multicast level Switch(config-if-range)#storm-control unicast level
Storm-control 기능을 이용해서 포트를 제어할 방법을 설정할 수 있습니다. Switch(config-if-range)#storm-control action ? shutdown Shutdown this interface if a storm occurs (설정값보다 초과되면 해당 포트를 Shutdown 한다.) trap Send SNMP trap if a storm occurs (설정값보다 초과되면 SNMP로 메시지를 전송한다.)
Switch(config-if-range)#storm-control broadcast level ? <0.00 - 100.00> Enter rising threshold bpsEnter suppression level in bits per second (bps 단위를 사용하여 초당 입력되는 트래픽 용량을 제어한다.) ppsEnter suppression level in packets per second (pps 단위를 사용하여 초당 입력되는 패킷 개수를 제어한다.)
Switch(config-if-range)#storm-control broadcast level 50 20 해당 포트에서 broadcast 프레임 처리양이 50이 되면 broadcast 프레임을 차단한다. storm-control action shutdown 설정이 되어있으면 포트를 Shutdown 한다. 해당 포트에서 broadcast 프레임 처리양이 20이 될때까지 broadcast 프레임을 제어한다.
아래 명령어를 이용해 현재 설정값이랑 사용량을 볼 수 있습니다. Switch#show storm-control broadcast Interface Filter State Upper Lower Current --------- ------------- ----------- ----------- ---------- Fa0/2 Link Up 20.00% 20.00% 0.00% Fa0/3 Link Up 20.00% 20.00% 0.64% Fa0/4 Link Up 20.00% 20.00% 0.64%
사용하는 전자기기가 많아지거나 PC 자체의 변동사항으로 IP 설정이 필요할 경우 매번 관리가 어려워 자동으로 IP를 할당해주는 프로토콜 입니다.
DHCP 프로토콜의 원리
DHCP 프로토콜을 통한 IP주소 할당은 임대라는 개념을 가지고 있는데 이는 DHCP 서버가 IP주소를 영구적으로 단말에 할당하는 것이 아니고 임대기간을 설정하여 설정 기간동안만 단말이 IP주소를 사용하도록 하는 것입니다. 임대기간이 끝나면 단말은 임대받은 IP주소를 반납하는 절차를 수행하게 됩니다.
1 - DHCP Discover (Brodcast)
클라이언트는 DHCP 서버를 찾기 위하여 같은 네트워크상에 Discover 메시지를 브로드캐스트 합니다.
2 - DHCP Offer (Unicast)
클라이언트로부터 Discover 메시지를 받아 DHCP Server는 IP 정보들을 클라이언트에게 제공합니다.
3 - DHCP Request (Brodcast)
클라이언트는 서버로부터 받은 IP 정보들을 할당받겠다고 모든 서버들에게 request 메시지를 보냅니다.
4 - DHCP ACK (Unicast)
클라이언트에게 IP 정보를 할당해준 서버로부터 ACK 메시지를 이용해 IP 정보 할당을 승인하겠다는 메시지를 클라이언트에게 보냅니다.
이제 EVE-NG를 이용하여 라우터를 DHCP Server로 만들어 보겠습니다.
아래 그림과 같이 인터페이스 설정 및 Port 설정 Static route 설정이 된 다음에 시뮬레이션을 진행하였습니다.
일단 DHCP Service가 Enable이 기본값이지만 Disabled 상태라면 Enabled 상태로 만들어준다.
특정 포트에 Port-Security 기능을 사용하여 포트에 학습할 수 있는 MAC주소의 수를 제한하거나 포트에 MAC 주소를 설정하여 허가된 MAC 주소만 접속 가능하도록 설정하는 것입니다.
사용 목적
스위치는 하나의 포트에 여러 개의 MAC주소를 학습할 수 있도록 되어있고 제한이 없다.
이러한 점을 이용하여 여러 개의 MAC주소를 학습하게 하여 스위치의 MAC Address table을 가득차게 만들고 더이상 MAC주소를 학습하지 못하게 된 스위치는 그 이후에 들어오는 모든 Frame을 Flooding 시켜 허브처럼 동작하게 만든다. 이러한 공격하는 기법을 MAC Flooding Attack이라고 한다.
내부 네트워크까지 침입한 공격자는 Sniffing 환경을 구성하여 중간에서 패킷을 훔쳐볼 수 있다. 이런 공격으로 대표적인 것은 MAC주소를 변경하여 네트워크 시스템에 들어갈 수 있는 ARP Spoofing이 있다.
이제 실습을 해보겠습니다.
SW1 가지고 있는 MAC 주소
SW1#show mac address-table Mac Address Table ------------------------------------------- Vlan Mac Address Type Ports ---- ----------- -------- ----- 100 0050.7966.6802 DYNAMIC Et1/0 100 0050.7966.6804 DYNAMIC Et1/1 100 0050.7966.6805 DYNAMIC Et1/2 Total Mac Addresses for this criterion: 3
SW2 가지고 있는 MAC 주소
SW2#show mac address-table Mac Address Table -------------------------------------------
Vlan Mac Address Type Ports ---- ----------- -------- ----- 100 0050.7966.6806 DYNAMIC Et1/2 100 0050.7966.6807 DYNAMIC Et1/1 100 0050.7966.6808 DYNAMIC Et1/0 Total Mac Addresses for this criterion: 3
SW1(config)#interface ethernet 0/0 SW1(config-if)#switchport port-security SW1(config-if)#switchport port-security maximum 5 (기본은 1개 장비마다 다르지만 최대 4097개까지 가능)
SW2에 MAC주소는 총 3개 입니다. 하지만 Maximum을 2개로 테스트 했을 경우 Log 입니다.
SW1(config-if)#switchport port-security maximum 2
*Mar 26 14:14:01.841: %PM-4-ERR_DISABLE: psecure-violation error detected on Et0/0, putting Et0/0 in err-disable state *Mar 26 14:14:01.842: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.7966.6806 on port Ethernet0/0. *Mar 26 14:14:01.842: %IP-4-DUPADDR: Duplicate address 192.168.100.1 on Vlan100, sourced by aabb.cc80.0200 *Mar 26 14:14:02.847: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet0/0, changed state to down. *Mar 26 14:14:03.843: %LINK-3-UPDOWN: Interface Ethernet0/0, changed state to down
Port-Security의 학습 3가지 방식
Static Port-Security MAC Address
특정 포트에 사용할 사용자의 MAC주소를 직접 입력하여 설정하고 NVRAM에 저장할 수 있다.
*Mar 26 14:38:44.398: %PM-4-ERR_DISABLE: psecure-violation error detected on Et1/0, putting Et1/0 in err-disable state *Mar 26 14:38:44.398: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MAC address 0050.7966.6802 on port Ethernet1/0. *Mar 26 14:38:45.403: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1/0, changed state to down *Mar 26 14:38:46.399: %LINK-3-UPDOWN: Interface Ethernet1/0, changed state to down
Dynamic Port-Security MAC Address
특정 포트에 사용할 사용자의 MAC주소를 동적으로 학습하지만 학습한 MAC주소는 NVRAM에 저장할 수 없다
스위치가 Reboot이 되면 Port-Security에 학습했던 MAC주소는 삭제된다.
(명령어 X)
Sticky Port-Security MAC Address
특정 포트에 사용할 사용자의 MAC주소를 동적으로 학습하고, 학습한 MAC주소는 NVRAM에 저장할 수 있다.
특정 포트에 Port-Security가 동작하면 해당 포트의 연결된 장비의 MAC주소에 대한 유지 시간을 설정할 수 있다.
포트의 MAC주소 개수를 제한하면서 기존의 MAC주소를 수동으로 삭제하지 않고 aging time을 설정하여 관리할 수 있다. 기본 aging time 은 0분이고 최대 1440분이다.
Absolute
특정 포트 Port-Security에 등록된 MAC주소가 설정한 aging time이 만료되어야 Port-Security에 등록된 MAC주소가 삭제된다.
SW1(config)#interface ethernet 0/0 SW1(config-if)#switchport port-security SW1(config-if)#switchport port-security aging time 10 SW1(config-if)#switchport port-security aging type absolute
Inactivity
특정 포트 Port-Security에 등록된 MAC주소로 설정한 aging time동안 Data Traffic이 없는 경우에 해당 Port-Security에 등록된 MAC주소가 삭제된다.
SW1(config)#interface ethernet 0/0 SW1(config-if)#switchport port-security SW1(config-if)#switchport port-security aging time 10 SW1(config-if)#switchport port-security aging type inactivity
해당 포트에 Port-Security 설정 확인입니다.
SW1#show port-security interface ethernet 0/0 Port Security : Enabled Port Status : Secure-up Violation Mode : Restrict Aging Time : 0 mins Aging Type : Absolute SecureStatic Address Aging : Disabled Maximum MAC Addresses : 2 Total MAC Addresses : 2 Configured MAC Addresses : 0 Sticky MAC Addresses : 0 Last Source Address:Vlan : 0050.7966.6806:100 - 가장 마지막에 연결된 MAC주소 Security Violation Count : 20 - 위반된 MAC주소 횟수
저는 스탠다드로 이렇게 사용합니다.
SW1(config)#interface ethernet 0/0 SW1(config-if)#switchport port-security SW1(config-if)#switchport port-security aging time 1 SW1(config-if)#switchport port-security aging type inactivity SW1(config-if)#switchport port-security maximum 5 SW1(config-if)#switchport port-security violation restrict