외로운 Nova의 작업실

정보보안기사 필기 - 21(라우팅) 본문

Certification/정보보안기사

정보보안기사 필기 - 21(라우팅)

Nova_ 2022. 12. 1. 13:51

- 라우팅 개요

라우팅은 송신자 측에서 목적지까지의 경로를 정하고 정해진 경로를 따라 패킷을 전달하는 일련의 과정입니다. 라우터는 여러경로 중에서 최선의 경로를 결정합니다. 라우팅 알고리즘은 관리자가 직접 라우팅 테이블을 설정하는 정적 라우팅 알고리즘과 네트워크 환경 변화에 능동적으로 대처가능한 동적 라우팅 알고리즘으로 구분됩니다. 또한 AS(autonomous systme)은 하나의 관리 도메인에 속해있는 라우터의 집합을 말하며 AS내의 라우팅 프로토콜을 IGP, AS간의 라우팅 프로토콜을 EGP라고 합니다.

 

- 라우팅 알고리즘

<거리벡터 알고리즘>

거리벡터(DV, distance-vector) 알고리즘은 인접한 이웃들의 기초정보를 이용하여 각 목적지마다의 최소비용을 적어놓는 알고리즘입니다. 이 알고리즘으로 알 수 있는 최소비용을 이용하여 경로를 탐색하고 라우팅하게됩니다.

 

<링크 상태 알고리즘>

링크 상태 알고리즘은 플러딩을 통해 인접한 노드들의 최소비용을 알 수 있는 링크상태 데이터베이스를 작성합니다. 이 데이터베이스를 가지고 목적지까지의 최소비용을 산정하고 경로를 정해주며 라우팅하게됩니다.

 

< 경로 벡터 알고리즘>

경로 벡터 알고리즘은 스패닝 트리에서 여러가지 경로중 매트릭(우선순위)에서 한가지를 적용하여 가장 최소비용이되는 경로를 결정하는 알고리즘입니다.

 

- 라우팅 프로토콜

<RIP>

RIP(Routing information protocol)은 거리 벡터 알고리즘을 사용하며 AS내의 네트워크에 도착하는 방법과 거리를 홈수로 저장합니다. RIP는 여러 한계가 있지만 설정하기 쉽고 간단해서 널리 사용됩니다. 홉은 네트워크 수를 의미하며 보통 목적지까지가는데 거치는 라우터의 수라고 생각하면된다. RIP에서 경로의 최대비용은 15이다. 

 

<RIP 문제점>

  • 느린 수렴 : 모든 라우터가 같은 정보를 갖게 될때까지 오랜 수렴시간이 듭니다.
  • 라우팅 루프 : 네트워크에 변화가 생겼을떄 느린 수렴으로 인해 즉시 라우팅 경로에 반영하지못합니다.
  • 무한세기 : 라우팅 루프에 의해 도착할 수 없어진 네트워크를 도착할 수 있다고 생각한 라우터가 엉뚱한 RIP 메시지를 생성하여 라우터 사이에서 계쏙 주고받습니다
  • 작은 무한값 : RIP는 느린 수렴문제를 줄이기위해 최대 홉수를 15로 지정했습니다. 이는 네트워크 규모에 제한을 받습니다.

<RIPv2>

RIPv2는 RIPv1의 예약필드를 사용하여 기능을 대폭 확장시켰습니다. 아래는 추가적인 기능입니다.

  • CIDR과 VSLM지원
  • RIPv1은 브로드 캐스팅만을 이용하지만 RIPv2는 브로드캐스팅과 멀티캐스팅 지원
  • RIP2는 메시지마다 인증이 가능
  • 호환성을 위해 RIP1과 동일한 메시지 포맷사용

<IGRP>

IGRP(internet gateway routing protocol)은 RIP의 문제점을 해소하고자 시스코에서 제안했습니다. IGRP는 하나의 매트릭 값만을 사용하는 대신 다섯가지의 네트워크 파라미터를 이용하여 거리벡터를 계싼합니다. 이는 상황에 맞게 알고리즘을 적절히 변형할 수 있습니다. 아래는 IGRP의 매트릭 계산요소입니다.

  • 대역폭 : 회선속도를 의미합니다.
  • 지연 : 회선을 사용하여 전송하는데 걸리는 시간입니다.
  • 신뢰도 : 라우터가 동적으로 측정합니다.
  • 부하 : 라우터의 부하되는 정도를 의미합니다.
  • MTU : 회선이 처리할 수 없는 최대 프레임 크기를 나타냅니다.

<EIGRP>

IGRP는 CIDR과 VLSM 지원을 안하기떄문에 기능을 추가시킨 EIGRP를 개발했습니다.EIGRP역시 거리 벡터 프로토콜이지만 링크 상태 라우팅 프로토콜에 더 가까운 특성을 가지고있습니다.

 

<OSPF>

OSPF(open shortest path firs)는 개방 최단 경로 우선 프로토콜로 링크 상태 라우팅 알고리즘을 기반으로 만들어졌습니다. 보안 인증, 클래스 단위 지원, 서브넷 단위 지원, CIDR을 지원합니다. OSPF에서는 큰 네트워크를 잘 관리할 수 있도록 AS를 작은 Area로 묶고 논리적인 백본을 사용하여 연결합니다. 또한 AS와 AS사이의 라우팅은 오직 영역 경계 라우터를 통해서만 수행됩니다.

 

<BGP4>

BGP4(border gateway protocol version 4) 프로토콜은 현재 인터넷에서 사용하고 있는 유일한 도메인 라우팅 프로토콜입니다. 경로 벡터 알고리즘을 기반으로 하고 있지만 인터넷에서 네트워크의 접근성에대한 정보를 제공하기에 알맞습니다. RIP와 같이 거리벡터에 기초한 알고리즘이지만 AS번호를 매트릭으로 사용합니다.

 

- 라우터 보안

<라우터 모드 종류>

User 모드 : 테스트, 현재 상태를 볼 수 있습니다.

Privileged 모드 : 모든 명령어를 이용하고 config 파일을 조정할 수 있습니다.

Configulation 모드 : 라우터의 구성 파일을 변경할 수 있습니다.

RXBOOT 모드 : 패스퉈드를 모르는 경우나 이미지 파일 문제가 생긴경우 복구를 위해 사용하는 모드입니다.

setup 모드 : 라우터를 처음 구매해서 전원을 켯을때 자동으로 들어가는 모드입니다.

 

<모드 변경 방법>

router>enable /* 사용자모드에서 특권모드로 변경*/
router>disable /*특권모드에서 사용자모드로 변경*/
router#configure terminal /*config 모드로 변경*/
router(config)# exit /*config 모드에서 특권모드로 변경*/

아래는 config 모드의 종류입니다.

  • interface : 특정 인터페이스에 해당하는 명령어를 실행합니다.
  • subinterface : 서브 인터페이스에 해당하는 명령어를 실행합니다.
  • controller : 컨트롤 모드의 설정을 실행합니다.
  • line : 라인에대한 명령을 실행합니다.
  • router : 라우팅 프로토콜에 관련된 설정을 실행합니다.

<라우터 콘솔 암호 설정>

Router>enable
Router#configure terminal
Router(config)#line console 0 콘솔 0번의 라인모드로 진입합니다.
Rotuer(config-line)#password ****
Router(config-line)#CTRLz

<터미널(원격관리)패스워드 설정>

Router#config terminal
Router(config)#line vty  0 4 //터미널 0번 부터 4번까지 생성
Router(config-line)#password ****
Router(config-line)#cntl+z

<Enable 패스워드 Enable Secret 패스워드>

enable 명령어르 사용할때 패스워드를 지정할 수 있는데 이것을 Enable 패스워드라합니다. 만약 패스워드가 평문으로 저장된다면 enable password, 암호문으로 저장된다면 secret password라고 합니다. enable secret 패스워드가 enable 패스워드보다 우선 확인됩니다.

 

<사용자별 권한 수준 지정>

시스코 라우터에는 0부터 15까지 권한 레벨이 있으므로 사용자별로 권한수준을 지정하여 보안 강화를 할 수 있습니다.

Router(config)#username XXXX privilege 권한레벨 password XXXX

 

<불필요한 포로토콜 서비스 제거>

Router(config)#no service udp-small-servers //취약점이 많은 small service 차단
Router(config)#no service pad //패킷 조립 분해 서비스로 X.25 프로토콜을 사용하지않을 경우 차단
Router(config)#no service finger //password 파일을 읽는 서비스로 차단

 

<standard 액세스 리스트>

패킷의 소스 IP만으로 패킷을 허용하거나 차단하는 리스트입니다. 아래는 standard 액세스 리스트를 만드는 명령 형식입니다.

Router(config)#acess-list ACL-NO {permit|deny} {source[source-wildcard]|any}

ex) Router(config)#acess-list 5 permit 192.131.256.543 : source ip가 192.131.256.543일 경우 허용

 

<extended 액세스 리스트>

패킷의 소스 IP뿐만아니라 목적지 IP, 포트, 프로토콜 등을 이용하여 차단할 수 있어 좀더 확장된 기능을 이용할 수 있습니다. 아래는 extended 액세스 리스트를 만드는 명령형식입니다.

 

Router(config)#access-lost ACL-NO {permit|deny} [protocol] s_ip_addr s_net_mask 
	d_ip_net_mask [eqlgt] port [established]

ex) Router(config)#access-list 150 deny tcp ip 192.186.159.131 100.100.100.0 0.0.0.255 eq 80 : 출발지가 192.186.159.131이고 목적지가 100.100.100.0/24 대역이고 port가 80인 tcp 패킷에대해 차단합니다. eq는 단일 포트를 지정할때 사용됩니다.

 

<액세스 리스트를 인터페이스에 적용>

Router(config-if)#ip access-group access-list-number {in|out}

ex) Router(config-if)#ip access-group 101 in : 들어오는 패킷에대해 101번 access-list를 적용합니다.

 

<액세스 리스트 규칙>

어느 액세스 리스트에 매칭되지않은 패킷은 deny 됩니다.

액세스 리스트는 윗줄부터 하나씩 수행되며 추가할때는 맨 마지막에 추가됩니다.

 

<ingress 필터링 설정>

ingress 필터링은 라우터 내부의 사내 네트워로 유입되는 패킷의 소스 ip나 목적지 포트를 체크하여 허용하거나 거부하도록 필터링 하는 것입니다. 들어올 수 없는 내부 IP가 들어오는 경우 차단해야한다는 예시를 들 수 있습니다. 내부 주소가 130.18.0.0 인경우 필터링을 설정하는 방법이 아래 있습니다.

Router>enable
Router#conf t
Router(config)#acess-list 15 deny 130.18.0.0 0.0.255.255
Router(config)#interface FastEhernet 0/0
Router(config-if)# ip access-group 15 in
Router(config-if)#end

 

<egress 필터링 설정>

egress 필터링은 내부에서 라우터 외부로 나가는 패킷의 소스 ip를 체크하여 필터링하는 것입니다. 내부 주소범위가 220.1.2.0/24인 경우 그 와의 주소들은 위조된 패킷일 가능성이 있어 차단해줘야한다는 예시를 들 수 있습니다. 내부주소가 220.1.2.0인경우 필터링을 설정하는 방법이 아래에 있습니다.

Router>enable
Router#conf t
Router(config)#acess-list 16 permit 220.1.2.0 0.0.0.255
Router(config)#acess-list 16 deny any
Router(config)#interface FastEhernet 0/0
Router(config-if)# ip access-group 16 out
Router(config-if)#end

 

<null routing을 활용한 필터링>

access-list와 함께 사용하는 필터링 기법에는 black-hole 필터링이 있습니다. 특정한 ip또는 ip 대역에대해서 아무것도 하지않는 NULL이라는 가상의 쓰레기 인터페이스로 보내도록 함으로써 패킷의 통신이 되지않도록 하는 것입니다. 2111.1.1.1 ip를 차단해보는 예시를 들겠습니다.

Router>enable
Router#conf t
Router(config)#interface null 0
Router(config-if)# no ip unreachable //null 인터페이스로가면 에러메시지를 발송하지않도록 설정
Router(config-if)ip route 211.1.1.1 255.255.255.255 null 0
Router(config-if)#end

 

<unicast RPF를 이용한 필터링>

unicast RPF의 원리는 인터페이스를 통해 들어오는 패킷의 소스 ip에 대해 라우팅테이블을 확인했을때 들어온 인터페이스로 다시 나가는지 확인하여 만약 동일한 인터페이스로 다시 나가지않는다면 위조된 패킷으로 판단하고 차단합니다. 아래는 ethernet 0/0 인터페이스에 RPF를 사용하도록 하는 명령어 입니다.

Router>enable
Router#conf t
Router(config)#interface Ethernet 0/0
Router(config-if)# ip verify unicast reverse-path
Router(config-if)#end

 

<정적 라우팅을 이용한 필터링>

공격자가 임의로 라우팅 정보를 변경하거나 조작할 수 없는 정적 라우팅을 이용하면 가장 안전합니다. 아래는 정작라우팅 설정형식및 예시입니다.

Router(config)#ip route network [mask] {address|interface} [distance]

ex) Router(config)#ip route 1.1.1.1 255.0.0.0  192.111.111.111 : 1.1.1.1의 주소를 가진 패킷이오면 192.111.111.111로 라우팅합니다.

 

 

Comments