MAC 주소 변경의 필요성

MAC 주소(Media Access Control address)는 네트워크 장치를 식별하는 고유한 물리적 주소로, 네트워크 인터페이스 카드(NIC) 제조 시 하드웨어에 영구적으로 할당되며 일반적으로 변경되지 않는 것으로 설계되었다. 그러나 보안, 프라이버시 보호, 네트워크 접근 제어 우회, 테스트 환경 구축 등의 이유로 MAC 주소를 일시적으로 또는 영구적으로 변경해야 하는 상황이 발생할 수 있으며, 특히 공용 와이파이를 사용하거나 네트워크 추적을 방지하고자 할 때 유용하다. Ubuntu를 포함한 대부분의 리눅스 배포판에서는 소프트웨어적으로 MAC 주소를 변경할 수 있는 기능을 제공하며, 이 글에서는 Ubuntu에서 MAC 주소를 안전하고 효과적으로 변경하는 방법을 알아본다.

MAC 주소의 구조와 역할

MAC 주소는 네트워크 인터페이스 카드(NIC)에 할당된 고유 식별자로, OSI 모델의 데이터 링크 계층(Layer 2)에서 작동하며 같은 네트워크 세그먼트 내에서 장치를 식별하는 데 사용된다. 48비트(6바이트) 길이의 이 주소는 일반적으로 XX:XX:XX:XX:XX:XX 형식의 16진수로 표시되며, IEEE(Institute of Electrical and Electronics Engineers)가 관리하는 표준 체계에 따라 전 세계적으로 고유성을 보장받는다.

MAC 주소는 두 부분으로 구성되며, 처음 3바이트(24비트)는 제조업체를 나타내는 OUI(Organizationally Unique Identifier)로 IEEE가 각 제조업체에 고유하게 할당하고, 나머지 3바이트(24비트)는 제조업체가 각 장치에 할당하는 고유 번호로 이론상 하나의 OUI당 약 1,677만 개의 고유한 MAC 주소를 생성할 수 있다. 예를 들어 00:1A:2B:3C:4D:5E에서 00:1A:2B가 제조업체를 나타내고 3C:4D:5E가 해당 제조업체 내에서의 고유 번호를 나타낸다.

MAC 주소 확인하기

MAC 주소를 변경하기 전에 현재 주소를 확인하는 것이 중요하며, Ubuntu에서는 ip 명령어를 사용하여 네트워크 인터페이스의 MAC 주소를 조회할 수 있다. 이 명령어는 과거에 사용되던 ifconfig 명령어를 대체하는 현대적인 네트워크 관리 도구로, 더 많은 기능과 정확한 정보를 제공한다.

시스템의 모든 네트워크 인터페이스 정보를 확인하려면 다음 명령어를 사용한다.

ip link show

특정 인터페이스의 정보만 확인하려면 dev 옵션과 함께 인터페이스명을 지정한다.

ip link show dev <인터페이스명>

명령어 실행 결과는 다음과 같이 표시되며, 네트워크 인터페이스의 상태, MTU, 큐 길이 등의 정보와 함께 MAC 주소가 나타난다.

2: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether 00:11:22:33:44:55 brd ff:ff:ff:ff:ff:ff

여기서 link/ether 다음에 나오는 00:11:22:33:44:55가 현재 MAC 주소이며, brd ff:ff:ff:ff:ff:ff는 브로드캐스트 주소를 나타낸다. 인터페이스명 wlp0s20f3는 Ubuntu의 예측 가능한 네트워크 인터페이스 명명 규칙에 따라 생성된 것으로, wl은 무선(wireless), p0s20f3는 PCI 버스 위치를 나타낸다.

MAC 주소 변경 방법: macchanger 사용하기

macchanger는 MAC 주소 변경을 위한 전용 명령줄 도구로, GNU General Public License 하에 배포되는 오픈 소스 소프트웨어이며 다양한 옵션과 안전한 MAC 주소 변경 기능을 제공한다. 이 도구는 단순히 MAC 주소를 변경하는 것뿐만 아니라 제조업체 정보를 조회하고, 특정 제조업체의 MAC 주소를 생성하며, 완전히 무작위 주소를 생성하는 등의 고급 기능을 지원하여 다양한 사용 사례에 대응할 수 있다.

1. macchanger 설치하기

Ubuntu의 공식 저장소에서 macchanger를 설치할 수 있으며, 설치 과정은 매우 간단하다.

sudo apt update
sudo apt install macchanger

설치 중 ‘부팅 시 MAC 주소를 자동으로 변경할까요?(Automatically change MAC address at boot?)‘라는 debconf 설정 화면이 나타나며, 이 옵션을 활성화하면 시스템이 부팅될 때마다 자동으로 MAC 주소가 무작위 값으로 변경되므로 보안과 프라이버시가 중요한 환경에서는 ‘Yes’를 선택하고 일반적인 사용 환경에서는 ‘No’를 선택하는 것이 좋다. 설치 후에도 /etc/network/if-pre-up.d/ 디렉토리의 스크립트를 수정하여 이 설정을 변경할 수 있다.

2. MAC 주소 변경하기

MAC 주소 변경은 세 단계로 이루어지며, 각 단계는 네트워크 인터페이스의 상태를 안전하게 관리하면서 주소를 변경하기 위해 필요하다. 네트워크 인터페이스가 활성화된 상태에서 MAC 주소를 변경하면 네트워크 연결이 불안정해지거나 시스템 오류가 발생할 수 있으므로, 반드시 인터페이스를 비활성화한 후 변경하고 다시 활성화하는 과정을 거쳐야 한다.

2.1 네트워크 인터페이스 비활성화

MAC 주소를 변경하기 전에 해당 네트워크 인터페이스를 비활성화하며, 이는 하드웨어 수준에서 인터페이스를 내려 네트워크 통신을 중단시키는 과정이다.

sudo ip link set <인터페이스명> down

예를 들어 무선 인터페이스 wlp0s20f3를 비활성화하려면 다음과 같이 실행한다.

sudo ip link set wlp0s20f3 down

이 명령어를 실행하면 해당 인터페이스를 통한 모든 네트워크 연결이 즉시 끊어지므로, 원격 SSH 세션을 통해 작업하는 경우 변경하려는 인터페이스가 SSH 연결에 사용 중인지 반드시 확인해야 한다.

2.2 MAC 주소 변경

인터페이스가 비활성화된 상태에서 macchanger를 사용하여 MAC 주소를 변경하며, 완전히 무작위 MAC 주소로 변경하거나 특정 주소로 설정할 수 있다.

완전히 무작위 MAC 주소로 변경:

sudo macchanger -r <인터페이스명>

이 옵션은 OUI를 포함한 전체 48비트를 무작위로 생성하므로 실제로 존재하지 않는 제조업체의 주소가 생성될 수 있으며, 일부 네트워크에서는 이를 의심스러운 활동으로 간주할 수 있다.

특정 MAC 주소로 변경:

sudo macchanger -m XX:XX:XX:XX:XX:XX <인터페이스명>

예를 들어 00:11:22:33:44:55로 변경하려면 다음과 같이 실행한다.

sudo macchanger -m 00:11:22:33:44:55 wlp0s20f3

명령어 실행 후 macchanger는 원래 MAC 주소, 새로운 MAC 주소, 변경 결과를 화면에 표시하여 변경이 성공적으로 이루어졌는지 확인할 수 있다.

2.3 네트워크 인터페이스 활성화

MAC 주소 변경이 완료되면 네트워크 인터페이스를 다시 활성화하여 새로운 MAC 주소로 네트워크에 연결한다.

sudo ip link set <인터페이스명> up

인터페이스가 활성화되면 DHCP 클라이언트가 자동으로 실행되어 IP 주소를 요청하고, 새로운 MAC 주소로 네트워크에 접속하게 된다. 무선 네트워크의 경우 NetworkManager나 wpa_supplicant가 자동으로 재연결을 시도하므로 별도의 설정 없이도 네트워크 연결이 복구된다.

3. macchanger 추가 옵션

macchanger는 다양한 사용 사례를 지원하기 위해 여러 옵션을 제공하며, 각 옵션은 특정 목적과 보안 수준에 맞게 MAC 주소를 변경하거나 조회할 수 있다.

옵션설명예시
-r완전히 무작위 MAC 주소sudo macchanger -r wlp0s20f3
-a같은 제조사의 무작위 MACsudo macchanger -a wlp0s20f3
-A같은 유형의 무작위 MACsudo macchanger -A wlp0s20f3
-p원래 MAC 주소로 복원sudo macchanger -p wlp0s20f3
-m특정 MAC 주소로 설정sudo macchanger -m 00:11:22:33:44:55 wlp0s20f3
-sMAC 주소 정보 조회sudo macchanger -s wlp0s20f3

옵션 상세 설명:

  • -r (완전히 무작위): OUI를 포함한 전체 48비트를 무작위로 생성하여 실제 제조업체와 관계없는 주소를 만들며, 가장 높은 익명성을 제공하지만 일부 네트워크에서 비정상 장치로 인식될 수 있다.
  • -a (같은 제조사의 무작위): 현재 MAC 주소의 OUI를 유지하면서 나머지 24비트만 무작위로 변경하므로, 같은 제조업체의 다른 장치처럼 보이게 하여 네트워크 관리자의 의심을 덜 받을 수 있다.
  • -A (같은 유형의 무작위): 네트워크 인터페이스 유형(유선, 무선 등)에 적합한 OUI를 선택하여 무작위 MAC 주소를 생성하므로, 유선 인터페이스는 유선 장치의 OUI를, 무선 인터페이스는 무선 장치의 OUI를 사용한다.
  • -p (원래 주소로 복원): 하드웨어에 설정된 원래 MAC 주소(Permanent MAC address)로 되돌리며, macchanger가 변경 전 주소를 자동으로 기록하므로 쉽게 복원할 수 있다.
  • -m (특정 주소로 설정): 사용자가 지정한 특정 MAC 주소로 변경하며, 테스트 환경이나 특정 장치를 모방해야 하는 경우에 유용하다.
  • -s (정보 조회): 현재 MAC 주소, 원래 MAC 주소, 제조업체 정보를 표시하며 실제로 주소를 변경하지 않고 정보만 확인할 수 있다.

주의사항

MAC 주소 변경은 합법적인 보안 및 프라이버시 목적으로 사용되어야 하며, 몇 가지 중요한 주의사항을 숙지해야 한다.

법적 고려사항: MAC 주소 변경 자체는 대부분의 국가에서 합법이지만, 네트워크 접근 제어를 우회하거나 다른 사람의 장치로 위장하여 무단으로 네트워크에 접속하는 행위는 불법이며 컴퓨터 범죄로 간주될 수 있다. 공용 와이파이의 시간 제한을 우회하거나 MAC 필터링을 무단으로 우회하는 행위는 서비스 약관 위반이거나 불법일 수 있으므로 주의해야 한다.

네트워크 충돌: 같은 네트워크에 이미 존재하는 MAC 주소로 변경하면 IP 주소 충돌이 발생하고 두 장치 모두 네트워크에 정상적으로 연결되지 않을 수 있으며, 네트워크 관리자가 이를 감지하여 보안 경고가 발생할 수 있다. 완전히 무작위 MAC 주소를 생성하거나 실제로 사용되지 않는 주소를 선택하는 것이 안전하다.

재부팅 시 초기화: macchanger로 변경한 MAC 주소는 소프트웨어적인 변경이므로 시스템을 재부팅하면 하드웨어의 원래 MAC 주소로 되돌아가며, 영구적인 변경을 원한다면 NetworkManager 설정이나 systemd 서비스를 통해 부팅 시 자동으로 변경되도록 구성해야 한다.

원격 연결 주의: SSH나 원격 데스크톱을 통해 원격으로 시스템에 접속한 상태에서 MAC 주소를 변경하면 네트워크 연결이 끊어질 수 있으므로, 물리적으로 접근 가능한 상태에서 작업하거나 다른 네트워크 인터페이스를 통해 백업 연결을 유지하는 것이 안전하다.

결론

MAC 주소 변경은 보안 및 개인 정보 보호를 위한 유용한 기술이며, 공용 와이파이 사용 시 추적 방지, 네트워크 테스트 환경 구축, 프라이버시 강화 등의 목적으로 활용할 수 있다. Ubuntu에서 macchanger 도구를 사용하면 간단한 명령어로 MAC 주소를 안전하게 변경할 수 있으며, 완전히 무작위 주소 생성부터 특정 제조업체의 주소 생성까지 다양한 옵션을 통해 필요에 맞게 조정할 수 있다. 다만 법적 문제와 네트워크 충돌을 방지하기 위해 주의사항을 숙지하고, 합법적이고 윤리적인 목적으로만 사용해야 하며, 네트워크 관리자의 정책과 서비스 약관을 준수하는 것이 중요하다.