Computer >> 컴퓨터 >  >> 문제 해결 >> 컴퓨터 유지 보수

리눅스에서 MAC 주소를 변경하는 방법: macchanger부터 ip·ifconfig 명령어까지

시스템의 MAC 주소를 수정하면 같은 네트워크에 있는 다른 기기를 사칭할 수 있습니다. 이를 통해 원래 다른 기기로 전송되던 데이터 패킷을 받아볼 수 있는데, 이러한 과정을 흔히 'MAC 스푸핑(MAC Spoofing)'이라고 부릅니다.

리눅스에는 MAC 주소를 변경할 수 있는 수많은 도구가 존재합니다. 하지만 선택지가 워낙 많다 보니 그중에서도 안정적이고 신뢰할 만한 유틸리티를 찾는 일은 생각보다 쉽지 않습니다.

이 글을 끝까지 읽고 나면 MAC 주소에 대한 기본 개념과 함께 리눅스에서 MAC 주소를 스푸핑하는 구체적인 방법까지 익힐 수 있습니다.

MAC 주소란 무엇인가?

MAC 주소(Media Access Control Address)는 네트워크상의 기기를 식별하기 위해 사용되는 고유한 16진수 식별자입니다. 기기의 NIC(Network Interface Card, 네트워크 인터페이스 카드)에 내장되어 있기 때문에 '물리 주소(Physical Address)'라고도 불립니다.

MAC 주소는 다음과 같은 형태로 표시됩니다.

55:de:bc:7d:45:df

모든 기기는 제조 단계에서 고유한 MAC 주소를 할당받습니다. 바로 이 MAC 주소 덕분에 우리는 인터넷에 연결된 수백만 대의 기기를 각각 고유하게 식별할 수 있는 것입니다.

OSI 7계층 모델에서 MAC 주소는 데이터 링크 계층(Data Link Layer)에서 데이터를 올바른 기기로 전달하는 역할을 담당합니다.

리눅스에서 MAC 주소 변경하기

MAC 주소를 변경하고 싶은 이유는 다양합니다. 네트워크의 보안 제한을 우회하고 싶거나, 패킷을 캡처하기 위해 네트워크상의 다른 기기를 흉내 내고 싶을 수도 있습니다.

이유가 무엇이든 리눅스 도구만 있다면 충분합니다. 지금부터 리눅스에서 MAC 주소를 스푸핑하는 방법을 하나씩 살펴보겠습니다.

macchanger 사용하기

macchanger는 사용자가 기기의 기본 MAC 주소를 손쉽게 변경할 수 있도록 도와주는 터미널 기반 리눅스 유틸리티입니다.

데비안/우분투에서 설치하려면 다음 명령어를 입력하세요.

sudo apt install macchanger

페도라(Fedora), CentOS 등 RHEL 계열 배포판에서는 다음과 같습니다.

sudo dnf install macchanger
sudo yum install macchanger

아치 리눅스(Arch Linux)에서 설치하려면 다음을 사용합니다.

sudo pacman -S macchanger

설치 과정에서 네트워크 장치(이더넷 및 Wi-Fi 포함)가 재시작될 때마다 시스템의 MAC 주소를 자동으로 변경할지 묻는 프롬프트가 나타납니다. No를 선택한 후 Enter를 눌러 계속 진행하세요.

본격적으로 시작하기 전에 먼저 기기의 네트워크 인터페이스 이름을 확인해야 합니다. 터미널에 다음을 입력하세요.

ip addr

출력 결과에서 이더넷의 네트워크 인터페이스 이름은 eth0로 표시됩니다. 마찬가지로 Wi-Fi의 경우 인터페이스 이름이 wlan0 또는 wlp3s0로 나타납니다.

시스템마다 라벨이 조금씩 다르더라도 네트워크 인터페이스 이름은 쉽게 구분할 수 있습니다. "w"로 시작하는 인터페이스 이름은 Wi-Fi와 관련되며, 이더넷 인터페이스 이름은 항상 "e"로 시작합니다.

현재 기기의 물리 주소를 확인하려면 다음 명령어를 입력합니다.

macchanger -s interface

여기서 interface는 정보를 확인하려는 네트워크 인터페이스의 이름입니다.

macchanger를 사용해 무작위(random) MAC 주소를 할당하려면 -r 플래그를 사용합니다.

macchanger -r interface

예를 들어 eth0 인터페이스의 물리 주소를 변경하려면 다음과 같이 입력합니다.

sudo macchanger -r eth0

macchanger는 출력 결과에 원래 주소와 현재(변경된) 주소를 함께 표시해 줍니다.

무작위 주소를 할당하는 것 외에도 기기에 직접 지정한 커스텀 MAC 주소를 설정할 수 있습니다. 기본 명령어에 -m 플래그를 붙여 다음과 같이 사용하면 됩니다.

sudo macchanger -m custom-address interface

여기서 custom-address는 새로 할당하려는 MAC 주소이고, interface는 해당 네트워크 인터페이스의 이름입니다.

eth0 인터페이스에 커스텀 MAC 주소를 할당하는 예시는 다음과 같습니다.

sudo macchanger -m 44:ee:bc:6c:76:ba eth0

macchanger를 사용하면 나중을 위해 기기의 원래 MAC 주소를 따로 기억해 둘 필요가 없습니다. -p 플래그를 사용하면 언제든 손쉽게 기본값으로 되돌릴 수 있습니다.

sudo macchanger -p eth0

ip 및 ifconfig 명령어 사용하기

macchanger는 사용법이 간단해 초보자에게 적합하지만, 작업을 더 세밀하게 제어하고 싶은 고급 리눅스 사용자라면 ip 명령어를 선호할 수 있습니다.

단, 시작하기 전에 반드시 인터페이스의 원래 MAC 주소를 기록해 두세요. 아래 명령어로 MAC 주소를 변경한 후에는 자동으로 원래 주소로 복구하는 옵션이 없기 때문에, 수정된 주소를 직접 원래 MAC 주소로 되돌려야 합니다.

ip 명령어로 MAC 주소를 변경하기 전에 먼저 네트워크 인터페이스를 종료(down)해야 합니다.

sudo ip link set dev eth0 down

그런 다음 원래 MAC 주소를 커스텀 주소로 변경합니다.

sudo ip link set dev eth0 address 44:ee:bc:6c:76:ba

ip 명령어로 네트워크 인터페이스를 다시 시작합니다.

sudo ip link set dev eth0 up

터미널에 ip addr를 입력해 위 명령이 정상적으로 적용되었는지 확인하세요.

MAC 스푸핑의 또 다른 방법은 ifconfig 명령어를 사용하는 것입니다. ifconfig는 Interface Config의 약자로, 네트워크 인터페이스를 관리하는 표준 리눅스 유틸리티입니다.

ip 명령어와 마찬가지로 ifconfig로 물리 주소를 변경하기 전에 인터페이스를 먼저 종료해야 합니다.

sudo ifconfig eth0 down

그런 다음 인터페이스에 커스텀 MAC 주소를 할당합니다.

sudo ifconfig eth0 hw ether 44:ee:bc:6c:76:ba

ifconfig로 네트워크 인터페이스를 다시 시작합니다.

sudo ifconfig eth0 up

무선 인터페이스(예: wlan0)의 MAC 주소를 변경하려면 명령어에서 eth0 부분을 무선 인터페이스 이름으로 바꿔주기만 하면 됩니다.

sudo ifconfig wlan0 hw ether 44:ee:bc:6c:76:ba

사이버 보안 분야의 다른 기술들과 마찬가지로, MAC 스푸핑 역시 합법과 불법의 경계가 매우 모호합니다. 결국 MAC 주소를 어떤 목적으로 변경하느냐에 따라 크게 달라집니다.

교육 목적이나 학습을 위한 것이라면? 당연히 합법입니다. 단, 반드시 자신의 네트워크에서만 시도해야 합니다. 반면 다른 네트워크에서 데이터 패킷을 가로채거나 보안 프로토콜을 우회하는 행위는 절대 권장하지 않습니다.

참고로 리눅스뿐 아니라 Windows와 Mac 사용자도 기기의 MAC 주소를 조회하고 수정할 수 있습니다. 가장 큰 차이점은 작업을 수행하는 데 사용하는 인터페이스입니다. 리눅스 사용자는 일반적으로 명령줄 방식을 선호하는 반면, 대부분의 Windows와 Mac 사용자는 직관적인 그래픽 인터페이스에 더 익숙합니다.