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 주소를 허용하는지 확인합니다.
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를 시연하기 위해 다음 토폴로지를 사용합니다.
- 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
기본 인증 리스트를 구성합니다.
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-control과aaa 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: mabAuthentication Method: mab와 Status: 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-mode를multi-domain으로, 다운링크 스위치가 있는 경우에는multi-authentication으로 조정합니다. - 운영 환경에서는 VLAN이나 downloadable ACL을 RADIUS 응답으로 동적으로 할당해, 인증된 장치 유형별로 다른 접근 권한을 주는 형태로 확장해 사용하는 경우가 많습니다.
출처: networklessons.com - MAC Authentication Bypass (MAB)
태그: 802.1X, Security