10장에서는 네트워크 운영에 필요한 기본 서비스를 다뤘다. DHCP, DNS, NTP, Syslog, SNMP 같은 서비스가 있어야 네트워크가 실제로 운영된다.
이제 보안으로 넘어간다.
네트워크 보안이라고 하면 방화벽만 떠올리기 쉽지만, CCNA에서는 라우터와 스위치에서 바로 적용하는 기본 보안 기능을 많이 다룬다.
대표적으로 ACL, 포트 보안, DHCP Snooping, Dynamic ARP Inspection이 있다.
이번 장의 목표는 각 기능이 “무엇을 막는지”와 “어디에 적용하는지”를 구분하는 것이다.
- ACL
ACL은 Access Control List의 약자다.
라우터나 Layer 3 스위치에서 트래픽을 permit 또는 deny하는 규칙 목록이다.
ACL은 패킷의 특정 조건을 보고 통과시킬지 막을지 결정한다.
예를 들어 다음과 같은 정책을 만들 수 있다.
특정 PC는 서버에 접속할 수 있다.
게스트 VLAN은 내부 서버망에 접근할 수 없다.
외부에서 들어오는 SSH는 차단한다.
관리자 PC에서만 네트워크 장비 SSH 접속을 허용한다.
ACL은 방화벽만큼 정교한 보안 장비는 아니지만, 기본적인 트래픽 제어에서는 매우 중요하다.
- ACL 처리 순서
ACL은 위에서 아래로 순서대로 검사한다.
패킷이 어떤 줄과 매치되면 그 줄의 동작을 적용하고 검사를 멈춘다.
즉, 위쪽에 있는 규칙이 아래쪽 규칙보다 먼저 적용된다.
그리고 ACL 끝에는 보이지 않는 implicit deny가 있다.
명시적으로 permit되지 않은 트래픽은 마지막에서 deny된다고 이해하면 된다.
이것 때문에 ACL을 만들 때는 허용할 트래픽을 정확히 넣어야 한다.
permit 규칙을 빠뜨리면 정상 트래픽도 막힐 수 있다.
- Standard ACL
Standard ACL은 출발지 IP 주소만 보고 필터링한다.
목적지 IP나 포트 번호는 보지 않는다.
그래서 Standard ACL은 비교적 단순하다.
예를 들어 특정 출발지 네트워크를 허용하거나 차단할 때 사용한다.
Standard ACL은 목적지를 구분하지 못하기 때문에 보통 목적지에 가까운 곳에 적용하는 것이 좋다.
너무 출발지 가까이에 적용하면 해당 출발지의 다른 정상 통신까지 같이 막을 수 있다.
- Extended ACL
Extended ACL은 더 많은 조건을 본다.
출발지 IP
목적지 IP
프로토콜
출발지 또는 목적지 포트
예를 들어 “192.168.10.0/24 네트워크는 10.10.10.10 서버의 HTTP만 접근 가능” 같은 정책을 만들 수 있다.
Extended ACL은 구체적으로 필터링할 수 있으므로 보통 출발지에 가까운 곳에 적용하는 것이 좋다.
불필요한 트래픽이 네트워크를 지나가기 전에 초기에 막는 것이 효율적이기 때문이다.
- ACL 방향
ACL은 인터페이스에 inbound 또는 outbound 방향으로 적용한다.
inbound는 패킷이 인터페이스로 들어올 때 검사한다.
outbound는 패킷이 인터페이스에서 나갈 때 검사한다.
같은 ACL이라도 방향을 잘못 적용하면 전혀 다른 결과가 나온다.
문제를 풀 때는 항상 세 가지를 같이 본다.
어느 인터페이스에 적용되었는가.
inbound인가 outbound인가.
트래픽의 출발지와 목적지는 어디인가.
- Wildcard Mask
Cisco ACL에서는 서브넷 마스크가 아니라 wildcard mask를 사용한다.
Wildcard mask는 “어느 비트를 검사하지 않을 것인가”를 나타낸다.
서브넷 마스크와 반대로 생각하면 된다.
예를 들어 /24 네트워크의 서브넷 마스크는 255.255.255.0이다.
이에 대응하는 wildcard mask는 0.0.0.255다.
192.168.10.0 0.0.0.255는 192.168.10.0/24 범위를 의미한다.
단일 호스트는 host 192.168.10.10처럼 쓸 수 있다.
전체는 any로 표현할 수 있다.
- ACL 예시
예를 들어 192.168.10.0/24에서 10.10.10.10 서버로 HTTP 접근만 허용하고 싶다고 하자.
확장 ACL 예시는 다음과 같다.
text ip access-list extended WEB\_ONLY permit tcp 192.168.10.0 0.0.0.255 host 10.10.10.10 eq 80 deny ip any any
그리고 인터페이스에 적용한다.
text interface g0/1 ip access-group WEB\_ONLY in
실제 운영에서는 필요한 DNS, DHCP, 인증 트래픽까지 고려해야 한다.
시험에서는 ACL이 순서대로 적용되고, 마지막에 implicit deny가 있다는 점을 놓치지 않는 것이 중요하다.
- Port Security
Port Security는 스위치 access port에 연결될 수 있는 MAC 주소를 제한하는 기능이다.
예를 들어 한 포트에 하나의 PC만 연결되도록 제한할 수 있다.
사용자가 허브나 작은 스위치를 꽂아서 여러 장비를 붙이는 것을 막거나, 허가되지 않은 장비 연결을 줄이는 데 도움이 된다.
대표 설정은 다음과 같다.
text interface f0/10 switchport mode access switchport port-security switchport port-security maximum 1 switchport port-security mac-address sticky
maximum 1은 허용 MAC 주소 수를 1개로 제한한다는 뜻이다.
sticky는 학습한 MAC 주소를 포트 보안 MAC으로 저장하는 방식이다.
- Port Security 위반 모드
Port Security에는 위반 모드가 있다.
대표적으로 protect, restrict, shutdown이 있다.
protect는 허용되지 않은 프레임을 버리지만 로그나 카운터 정보가 제한적이다.
restrict는 프레임을 버리고 로그 또는 카운터를 남긴다.
shutdown은 포트를 err-disabled 상태로 만든다.
기본 위반 모드는 shutdown이다.
시험에서는 shutdown이 기본값이라는 점을 자주 묻는다.
- DHCP Snooping
DHCP Snooping은 스위치에서 가짜 DHCP 서버를 막기 위한 기능이다.
공격자가 사용자 포트에 임의의 DHCP 서버를 연결하면, 클라이언트에게 잘못된 기본 게이트웨이나 DNS 서버를 줄 수 있다.
그러면 트래픽을 가로채거나 통신을 방해할 수 있다.
DHCP Snooping은 포트를 trusted와 untrusted로 구분한다.
DHCP 서버 또는 상위 스위치 방향 포트는 trusted로 설정한다.
일반 사용자 access port는 untrusted로 둔다.
Get David Lee’s stories in your inbox
Join Medium for free to get updates from this writer.
Subscribe
Subscribe
Remember me for faster sign in
untrusted 포트에서 들어오는 DHCP Offer 같은 서버 응답은 차단된다.
즉, 사용자 포트에 가짜 DHCP 서버가 꽂혀도 클라이언트에게 응답을 줄 수 없게 만든다.
- DHCP Snooping Binding Table
DHCP Snooping은 단순히 가짜 DHCP 서버만 막는 것이 아니다.
정상 DHCP 과정을 관찰하면서 바인딩 테이블을 만든다.
바인딩 테이블에는 보통 다음 정보가 들어간다.
MAC 주소
IP 주소
VLAN
인터페이스
임대 시간
이 정보는 이후 Dynamic ARP Inspection 같은 기능에서 검증 자료로 사용된다.
대표 확인 명령은 다음과 같다.
text show ip dhcp snooping binding
- Dynamic ARP Inspection
Dynamic ARP Inspection, 줄여서 DAI는 ARP spoofing을 막기 위한 기능이다.
ARP는 IP 주소에 대응하는 MAC 주소를 찾는 프로토콜이다.
문제는 ARP가 기본적으로 신뢰 기반이라는 점이다.
공격자가 “게이트웨이 IP의 MAC 주소는 내 MAC 주소다”라고 거짓 ARP 응답을 보내면, 클라이언트가 잘못된 MAC 주소를 학습할 수 있다.
이런 공격을 ARP spoofing 또는 ARP poisoning이라고 부른다.
DAI는 들어오는 ARP 패킷의 IP/MAC 조합이 DHCP Snooping Binding Table과 맞는지 확인한다.
맞지 않으면 ARP 패킷을 차단한다.
- Trusted와 Untrusted
DHCP Snooping과 DAI에서 trusted/untrusted 개념은 매우 중요하다.
일반 사용자 포트는 untrusted다.
DHCP 서버, 라우터, 상위 스위치 방향 포트는 설계에 따라 trusted로 설정한다.
trusted 설정을 잘못하면 두 가지 문제가 생긴다.
첫째, 서버 방향 포트를 trusted로 설정하지 않아 정상 DHCP 응답이나 ARP가 막힐 수 있다.
둘째, 사용자 포트를 trusted로 열어 공격 트래픽이 통과할 수 있다.
시험에서는 “어느 포트를 trusted로 해야 하는가”를 자주 묻는다.
- 스위치 보안 기능 관계
Port Security, DHCP Snooping, DAI는 각각 막는 대상이 다르다.
Port Security는 포트에 붙을 수 있는 MAC 주소를 제한한다.
DHCP Snooping은 가짜 DHCP 서버와 비정상 DHCP 응답을 막는다.
DAI는 ARP spoofing을 막는다.
이 기능들은 서로 대체 관계가 아니다.
같이 사용하면 access layer 보안이 강해진다.
- 기본 관리 보안
네트워크 장비 자체를 보호하는 것도 중요하다.
첫째, Telnet 대신 SSH를 사용한다.
Telnet은 평문이고 SSH는 암호화된다.
둘째, 불필요한 서비스를 끈다.
사용하지 않는 HTTP 서버, CDP/LLDP 노출, 오래된 관리 프로토콜은 환경에 맞게 제한한다.
셋째, 강한 비밀번호와 사용자 계정을 사용한다.
넷째, 관리 접속은 관리자 네트워크에서만 허용한다.
다섯째, 로그와 시간 동기화를 설정한다.
10장에서 배운 Syslog와 NTP가 여기서 다시 중요해진다.
- 보안 트러블슈팅 루틴
보안 기능을 켠 뒤 통신이 안 되면 다음 순서로 본다.
첫째, 어느 기능이 트래픽을 막는지 확인한다.
ACL인지, Port Security인지, DHCP Snooping인지, DAI인지 구분해야 한다.
둘째, 로그를 본다.
Port Security 위반, DHCP Snooping drop, DAI validation fail 같은 로그가 단서가 된다.
셋째, trusted 포트 설정을 확인한다.
서버나 업링크 방향 포트가 잘못 untrusted로 남아 있으면 정상 트래픽이 막힐 수 있다.
넷째, 바인딩 테이블을 확인한다.
DAI는 DHCP Snooping Binding Table을 기준으로 검사한다. 정적 IP 장비는 별도 ARP ACL 같은 추가 설정이 필요할 수 있다.
다섯째, ACL 방향과 순서를 확인한다.
ACL은 순서와 방향이 매우 중요하다. permit 규칙이 deny보다 아래에 있으면 의도와 다르게 막힐 수 있다.
- 시험에서 자주 틀리는 부분
첫째, ACL 끝의 implicit deny를 잊는 것.
명시적으로 허용하지 않은 트래픽은 기본적으로 막힌다.
둘째, Standard ACL과 Extended ACL을 섞는 것.
Standard ACL은 출발지 IP 기준이고, Extended ACL은 출발지/목적지/프로토콜/포트까지 볼 수 있다.
셋째, DHCP Snooping을 DHCP 서버 기능으로 이해하는 것.
DHCP Snooping은 스위치 보안 기능이다. DHCP 주소를 직접 할당하는 서버 기능이 아니다.
넷째, DAI가 DHCP Snooping Binding Table을 활용한다는 점을 놓치는 것.
DAI는 ARP 검증에 바인딩 정보를 사용할 수 있다.
다섯째, 모든 포트를 trusted로 설정하는 것.
trusted는 신뢰할 수 있는 서버 또는 업링크 방향에만 제한적으로 적용해야 한다.
- 11장 정리
ACL은 트래픽을 permit 또는 deny하는 규칙 목록이다.
ACL은 위에서 아래로 검사하고 처음 매치된 규칙을 적용한다.
ACL 끝에는 implicit deny가 있다.
Standard ACL은 출발지 IP 주소만 기준으로 필터링한다.
Extended ACL은 출발지/목적지 IP, 프로토콜, 포트 번호까지 기준으로 삼을 수 있다.
Wildcard mask는 ACL에서 주소 범위를 표현할 때 사용한다.
Port Security는 access port에 연결될 수 있는 MAC 주소를 제한한다.
Port Security의 기본 위반 모드는 shutdown이다.
DHCP Snooping은 가짜 DHCP 서버를 막고 바인딩 테이블을 만든다.
DAI는 ARP spoofing을 막기 위해 ARP 패킷을 검증한다.
DHCP Snooping과 DAI에서는 trusted/untrusted 포트 구분이 중요하다.
장비 관리는 Telnet보다 SSH를 사용한다.
보안 문제는 로그, trusted 포트, 바인딩 테이블, ACL 순서와 방향을 함께 확인한다.
- 다음 장 예고
12장에서는 NAT와 PAT를 다룬다. 사설 IP 주소가 인터넷으로 나갈 때 주소가 어떻게 변환되는지, static NAT, dynamic NAT, PAT overload의 차이를 정리하고, show ip nat translations 같은 확인 명령까지 살펴본다.



댓글 0
댓글은 운영자만 작성할 수 있어요.