1. 포트 시큐리티란?
포트 시큐리티는 특정 포트에 연결 가능한 MAC 주소의 개수를 제한하거나, 특정 MAC 주소만 통신을 허용하도록 설정하는 기능이다.
만약 허용되지 않은 MAC 주소를 가진 장비(노트북, 공유기 등)가 포트에 연결되면 설정된 보안 정책(Violation Mode)에 따라 즉각 대응한다.
🔵 포트 시큐리티 동작 순서

🔵주요 설정 요소
1️⃣ 학습 방식(MAC Address Learning)
| 구분 | 정적(Static) | 동적(Dynamic) | Sticky (추천) |
| 설정 방법 | 관리자가 직접 MAC 입력 | 스위치가 자동으로 학습 | 자동으로 학습 후 설정에 저장 |
| 특징 | 가장 보안이 강력함 | 휘발성 (재부팅 시 삭제) | 실무에서 가장 많이 사용함 |
| 저장 여부 | Running-config에 즉시 반영 | 저장되지 않음 | Running-config에 자동 기록 |
2️⃣ 위반 시 동작 모드(Violation Mode)
| 모드 | 프레임 폐기 | SNMP Trap/로그 생성 | Counter 증가 | 포트 상태 |
| Protect | O | X | X | Up (활성) |
| Restrict | O | O | O | Up (활성) |
| Shutdown | O | O | O | Down (err-disabled) |
🔵 CISCO IOS 설정 및 복구 방법
기본 설정 방법
------------------
! 인터페이스 접속 및 Access 모드로 변경 (필수)
interface fa0/1
switchport mode access
! 포트 시큐리티 활성화
switchport port-security
! 최대 허용 MAC 개수 지정 (기본값 1)
switchport port-security maximum 1
! 위반 시 동작 설정 (기본값 shutdown)
switchport port-security violation shutdown
! Sticky 학습 활성화 (현재 연결된 장비의 MAC을 자동으로 영구 등록)
switchport port-security mac-address sticky
------------------
위반 발생 시 복구 방법
포트 시큐리티 위반으로 인해 err-disabled 상태가 된 포트는 단순히 케이블을 다시 꽂는다고 살아나지 않는다.
반드시 관리자가 직접 명령어를 입력해야 한다.
------------------
conf t
interface fa0/1
shutdown ! 포트를 먼저 수동으로 끈다
no shutdown ! 다시 살린다
------------------
💡 실무 팁
- L2 Access 포트 전용: 포트 시큐리티는 기본적으로 PC가 연결되는 Access 포트에서 사용한다. L3 인터페이스(no switchport)나 Trunk 포트에는 일반적으로 적용하지 않는다.
- Sticky의 단점: Sticky 설정을 하면 PC를 교체할 때마다 기존 MAC 정보를 지워줘야 하는 번거로움이 있다. PC를 바꿨는데 인터넷이 안 된다면 포트 시큐리티 설정을 가장 먼저 의심해야 한다.
- 저장의 중요성: Sticky로 학습된 MAC 주소는 running-config에 저장된다. copy run start 또는 wr 명령어로 저장하지 않으면 스위치 재부팅 시 모두 날아간다.
2. 시스코 패킷 트레이서 실습 - Sticy MAC
특정 장비(Laptop1)만 통신을 허용하고, 장비가 교체되었을 때 포트를 자동으로 차단하는 포트 시큐리티(Port Security)를 구현해본다.
1️⃣ 실습 토폴로지 구성
실습은 이전 포스팅에서 사용했던 토폴로지를 거의 그대로 사용했기 때문에 두 개의 네트워크가 이미 라우팅을 통해 통신이 가능한 상태를 전제로 한다.
기존 서버 자리에는 DHCP 서버를 구성했다.
포트 시큐리티는 사용자가 직접 접속하는 Network 1의 액세스 스위치(SW2)를 대상으로 설정한다.
| 구분 | 상세 정보 |
| 네트워크 대역 | Network#1: 10.10.10.0/24 (VLAN 10) / Network#2: 10.10.20.0/24 (VLAN 20) |
| 게이트웨이 | 10.10.10.254 (VLAN 10) / 10.10.20.254 (VLAN 20) |
| 주요 장비 | DHCP 서버(10.10.10.3), Laptop1(인가), Laptop2(비인가) |
| 보안 설정 포트 | SW2 - FastEthernet 0/2 |

2️⃣ 포트 시큐리티 설정 및 동작 원리
먼저 SW2의 fa0/2 포트에 포트 시큐리티를 활성화한다.
처음 접속한 장비의 MAC 주소를 기억하도록 sticky 옵션을 부여한다.
---------------
SW2(config)# int fa0/2
SW2(config-if)# sw mode access ! 포트를 Access 모드로 설정
SW2(config-if)# sw port-security ! 포트 시큐리티 기능 활성화
SW2(config-if)# sw port-security maximum 1 ! 허용 MAC 주소 개수를 1개로 제한
SW2(config-if)# sw port-security mac-address sticky ! 처음 들어온 MAC을 자동 학습/저장
SW2(config-if)# sw port-security violation shutdown !위반 시 포트를 즉시 차단
---------------
포트 시큐리티 동작
3️⃣ 상황별 시뮬레이션
상황 A: 인가된 Laptop1 연결 (정상)
Laptop1(MAC: 0002.4A61.8DEA)이 연결되어 DHCP 서버로 핑을 보내면, 스위치는 이 주소를 SecureSticky 타입으로 학습한다.
- 상태: 인터페이스 링크가 초록색으로 활성화됨.
- 확인: show port-security address 명령어 입력 시 Laptop1의 MAC이 리스트에 나타난다.

상황 B: 비인가 Laptop2로 교체 (보안 위반)
사용자가 노트북을 바꿔서 Laptop2(MAC: 0001.C702.AC8D)로 랜선을 옮겨 꽂으면 보안 위반이 발생한다.

- 인터페이스 링크가 즉시 빨간색으로 변하며 차단됨.
- 상태 확인: show port-security int fa0/2 실행 시 Port Status: Secure-shutdown, Security Violation Count: 1 확인 가능.

4️⃣ 문제 해결 및 복구 (장비 교체 승인)
만약 정식으로 장비를 Laptop2로 교체해야 한다면, 기존에 박혀있는 Laptop1의 정보를 삭제하고 포트를 리셋해야 한다.
기존 MAC 삭제 및 포트 리셋
-------------
! 1. 기존 고정된 MAC 주소 삭제
SW2(config-if)# no switchport port-security mac-address sticky 0002.4A61.8DEA
! 2. err-disabled 상태 해제를 위해 포트 재시작
SW2(config-if)# shutdown
SW2(config-if)# no shutdown
-------------
복구 결과 확인
포트가 다시 살아나면 Laptop2가 통신을 시도할 때 새로운 sticky 주소로 등록된다.
show run을 통해 확인해 보면 다음과 같이 Laptop2의 주소가 설정에 들어가 있는 것을 볼 수 있다.

- sticky로 학습된 주소는 running-config에만 존재하므로, 재부팅 후에도 유지하려면 반드시 copy run start를 실행해야 한다.
- 복구 순서: 반드시 원인 제거(MAC 삭제) 후 포트 재시작(shut/no shut) 순서를 지켜야 포트가 다시 죽지 않는다.
'Journey to Security > 네트워크' 카테고리의 다른 글
| [Cisco Packet Tracer] ACL을 활용한 라우터/스위치 SSH 접근 제어 (0) | 2026.03.16 |
|---|---|
| [Cisco IOS] 스위치/라우터에 SSH 서비스 설정하기 (0) | 2026.03.16 |
| [Cisco Packet Tracer] 스위치 VLAN 관리의 자동화, VTP(VLAN Trunking Protocol) (0) | 2026.03.16 |
| [Cisco Packet Tracer] DHCP 동작 원리와 서버 설정 방법 (DNS, DHCP) (2) | 2026.03.15 |
| [Cisco Packet Tracer] 정적 라우팅(Static Routing) & 디폴트 라우트(Default Route) (0) | 2026.03.15 |