Skip to Content
05. Security04. MAC Authentication Bypass (MAB)

MAC Authentication Bypass (MAB)

802.1X는 스위치 포트에 연결하는 모든 것을 인증해 네트워크를 보호하는 훌륭한 방법입니다. 그러나 802.1X의 한 가지 단점은 종단 장치가 이를 지원해야 한다는 것입니다.

이는 대부분의 현대 장치에서는 문제가 되지 않지만, 802.1X를 지원하지 않는 네트워크 프린터나 카메라가 있다면 어떻게 할까요?

802.1X를 사용할 수 없지만 여전히 어떻게든 스위치 포트를 보호하고 싶다면, MAC Authentication Bypass(MAB) 를 사용할 수 있습니다.

스위치 포트에서 MAB를 활성화하면, 스위치는 MAC 주소를 학습하기 위한 첫 번째 프레임을 제외하고 모든 프레임을 드롭합니다. CDP, LLDP, STP, DTP 트래픽을 제외하면 거의 모든 프레임이 MAC 주소를 학습하는 데 사용될 수 있습니다.

스위치가 MAC 주소를 학습하면, 인증 서버(RADIUS)에 연락해 MAC 주소를 허용하는지 확인합니다.

19_MAC Authentication Bypass (MAB)_img_p02_01

MAB는 RADIUS 서버의 동적 값도 지원합니다. 802.1X와 마찬가지로 동적 access-list와 VLAN 할당을 사용할 수 있습니다.

MAC 주소 외에 MAB는 다른 어떤 것도 확인할 수 없습니다. MAC 주소를 스푸핑하기 쉽기 때문에 안전한 인증 옵션이 되지 못합니다.

참고: MAB의 전신은 Cisco의 VLAN Management Policy Server(VMPS) 입니다. VMPS에서는 스위치 중 하나가 MAC 주소 데이터베이스를 가진 VMPS 서버였습니다. 다른 스위치들은 VMPS 서버에 특정 MAC 주소가 허용되는지와 어떤 VLAN에 속해야 하는지 확인합니다.

MAB를 구성하는 두 가지 방법이 있습니다.

  • Standalone: 인증을 위해 MAB만 사용합니다.
  • Fallback: 802.1X에 대한 폴백으로 MAB를 사용합니다. 스위치는 먼저 802.1X를 시도하고, 실패하면 MAB를 사용해 인증합니다.

호스트 모드

기본적으로 MAB는 스위치 포트당 단일 종단점(장치)만 지원합니다. 둘 이상의 소스 MAC 주소를 보면 보안 위반을 일으킵니다. 예를 들어 IP 전화기 뒤에 PC가 있는 경우 문제가 될 수 있습니다. 이 동작을 변경할 수 있습니다.

  • Single-host mode: 단 하나의 소스 MAC 주소만 인증할 수 있습니다. 인증 후 다른 소스 MAC 주소를 감지하면 보안 위반을 트리거합니다. 기본 설정입니다.
  • Multi-domain authentication host mode: 두 소스 MAC 주소를 인증할 수 있습니다. 하나는 음성 VLAN에, 다른 하나는 데이터 VLAN에. IP 전화기와 PC가 단일 스위치 포트에 있는 시나리오용입니다. 더 많은 소스 MAC 주소는 보안 위반을 트리거합니다.
  • Multi-authentication host mode: 여러 소스 MAC 주소를 인증할 수 있습니다. 스위치 포트가 다른 스위치에 연결될 때 사용할 수 있습니다. 각 소스 MAC 주소는 별도로 인증됩니다.
  • Multi-host mode: 스위치는 여러 소스 MAC 주소를 허용합니다. 첫 번째 소스 MAC 주소만 인증되고, 다른 모든 소스 MAC 주소는 자동으로 허용됩니다.

1. 구성

MAB를 시연하기 위해 다음 토폴로지를 사용합니다.

19_MAC Authentication Bypass (MAB)_img_p04_01
  • H1은 인증하려는 종단점입니다.
  • SW1은 MAB를 구성하는 곳입니다.
  • S1은 RADIUS 서버입니다.

Standalone과 single-host 모드를 구성하겠습니다.

1.1. FreeRADIUS

간단하게 하기 위해, 기본 RADIUS 서버(FreeRADIUS)를 사용합니다. 이 예제를 따라 하려면 직접 설치할 필요가 없습니다. 제 docker 이미지를 사용할 수 있습니다.

클라이언트 구성은 다음과 같습니다.

# cat clients.conf client CISCO { ipaddr = 0.0.0.0/0 secret = CISCO }

시크릿으로 “CISCO”를 사용하고 모든 클라이언트를 받아들입니다. 랩에 적합합니다.

다음은 사용자 구성입니다.

# cat /etc/raddb/users 001da18b36d8 Cleartext-Password := "001da18b36d8"

여기서 보이는 사용자 이름과 비밀번호는 H1의 MAC 주소입니다.

1.2. Cisco IOS

1.2.1. 글로벌 구성

스위치를 구성합시다. 먼저 AAA를 글로벌로 활성화해야 합니다.

SW1(config)# aaa new-model
19_MAC Authentication Bypass (MAB)_img_p05_01

기본 인증 리스트를 구성합니다.

SW1(config)# aaa authentication dot1x default group radius

그리고 RADIUS 서버를 추가해야 합니다.

SW1(config)# radius server FREERADIUS SW1(config-radius-server)# address ipv4 192.168.1.200 auth-port 1812 acct-port 1813 SW1(config-radius-server)# key CISCO

위에서 우리가 FreeRADIUS에 설정한 공유 시크릿(CISCO)과 IP 주소를 그대로 입력합니다. 802.1X와 동일한 RADIUS 설정이며, MAB도 결국 이 인증 서버를 사용합니다.

스위치 전역에서 802.1X를 활성화해야 MAB도 의미가 있습니다.

SW1(config)# dot1x system-auth-control

참고: MAB는 802.1X 프레임워크 위에서 동작합니다. 그래서 “802.1X를 지원하지 않는 장치”를 위한 기능이지만, 스위치 측에서는 여전히 dot1x system-auth-controlaaa authentication dot1x ...가 필요합니다.

1.2.2. 인터페이스 구성

이제 종단 장치가 꽂히는 FastEthernet 0/1 인터페이스를 구성합니다.

SW1(config)# interface fastEthernet 0/1 SW1(config-if)# switchport mode access SW1(config-if)# authentication port-control auto SW1(config-if)# authentication host-mode single-host SW1(config-if)# mab SW1(config-if)# dot1x pae authenticator

각 명령의 의미는 다음과 같습니다.

  • authentication port-control auto: 인증 결과에 따라 동적으로 포트를 허가/차단합니다. 인증 전에는 일반 트래픽이 막히고, MAC 주소 학습만 가능합니다.
  • authentication host-mode single-host: 한 포트에서 단 하나의 MAC 주소만 인증합니다(기본값). IP 전화기 + PC 조합이 필요하면 multi-domain으로 바꿔 사용합니다.
  • mab: 이 포트에서 MAB를 활성화합니다. Standalone으로 구성하고 있으므로 순수하게 MAC 주소 인증만 수행합니다.
  • dot1x pae authenticator: 스위치가 EAP 인증자 역할을 한다는 선언입니다. MAB 단독이어도 802.1X 프레임워크를 공유하므로 필요합니다.

참고: 802.1X 요청자를 먼저 시도하고 실패 시 MAB로 떨어지는 Fallback 모드 로 구성하려면 authentication order dot1x mab / authentication priority dot1x mab를 함께 사용합니다. 이 예제는 MAC 주소만 확인하는 Standalone이므로 순서 지정은 생략합니다.


2. 검증

스위치에 H1을 연결하면 스위치가 첫 프레임에서 소스 MAC 주소(001d.a18b.36d8)를 학습해 RADIUS로 질의를 보내고, FreeRADIUS의 users 파일에 동일한 사용자명/비밀번호가 있으므로 인증이 성공합니다.

인증 세션은 다음 명령으로 확인합니다.

SW1# show authentication sessions interface fastEthernet 0/1 Interface: FastEthernet0/1 MAC Address: 001d.a18b.36d8 IP Address: 192.168.10.10 User-Name: 001da18b36d8 Status: Authz Success Domain: DATA Oper host mode: single-host Oper control dir: both Authorized By: Authentication Server Authentication Method: mab

Authentication Method: mabStatus: Authz Success가 보이면 정상입니다. 아래 명령으로 MAB 자체의 상태도 볼 수 있습니다.

SW1# show mab interface fastEthernet 0/1 detail MAB details for FastEthernet0/1 Mac-Auth-Bypass = Enabled Inactivity Timeout = None ... MAC-Address = 001d.a18b.36d8 Session timeout = None Authentication state = Authorized

만약 MAC 주소가 FreeRADIUS에 등록되지 않았다면 Status: Authz Failed가 표시되고, 포트는 미허가 상태로 남아 일반 데이터 트래픽이 통과하지 못합니다.

참고: 일부 FreeRADIUS 배포에서는 MAC 주소를 대/소문자 없이 또는 구분자 없이(001da18b36d8) 보내는 것이 기본이지만, Cisco는 기본적으로 하이픈(00-1D-A1-8B-36-D8)이나 콜론(00:1d:a1:8b:36:d8) 형식으로 전송하기도 합니다. 인증이 계속 실패한다면 radius-server attribute 6 on-for-login-auth 계열 옵션과 함께, RADIUS 로그에서 실제 전달된 사용자명 포맷을 확인해 FreeRADIUS의 users 파일과 맞춰야 합니다.


3. 결론

  • MAB는 802.1X 요청자(supplicant)를 지원하지 않는 장치(프린터, 카메라, 일부 IoT 등)를 위해 마련된 인증 수단입니다. 스위치가 장치의 MAC 주소를 RADIUS 서버에서 조회해 허가 여부를 판단합니다.
  • MAC 주소는 쉽게 스푸핑할 수 있으므로 MAB만으로는 강한 보안을 제공하지 못합니다. 가능한 한 802.1X + MAB fallback 조합으로 구성하고, 여전히 MAB가 필요한 장치는 VLAN 분리·ACL·IP 기반 제어로 추가 방어선을 만드는 것이 권장됩니다.
  • 스위치 구성은 RADIUS 서버 정의 + dot1x system-auth-control + 인터페이스에서 mab + authentication port-control auto 조합이 핵심입니다. 802.1X와 같은 AAA/RADIUS 인프라를 그대로 재사용할 수 있다는 점이 큰 장점입니다.
  • IP 전화기 + PC 같은 시나리오에서는 host-modemulti-domain으로, 다운링크 스위치가 있는 경우에는 multi-authentication으로 조정합니다.
  • 운영 환경에서는 VLAN이나 downloadable ACL을 RADIUS 응답으로 동적으로 할당해, 인증된 장치 유형별로 다른 접근 권한을 주는 형태로 확장해 사용하는 경우가 많습니다.

출처: networklessons.com - MAC Authentication Bypass (MAB)

태그: 802.1X, Security