Null Routing (Blackhole Routing)이란
- 특정 IP 또는 특정 대역에서 과도한 스캐닝이나 공격시도가 감지된다면 해당 IP 또는 대역을 차단할 수 있는데, 이때마다 일일이 access list를 지우고 다시 설정하는 작업은 번거로운 일임
- access list보다 CPU 부하가 적으면서도 손쉽게 필터링이 가능한 Null Routing을 사용
- 특정 목적지IP 또는 IP대역에 대해 특정한 인터페이스로 라우팅 테이블을 강제로 지정 → 특정패킷이 라우터 내부로 들어올 수는 있지만 나갈 수는 없도록 하는 것으로 내부적으로 패킷을 필터링하는 것이 아니라 패킷을 Null 0 인터페이스로 포워딩하는 개념
- blackhole filtering이라고도 함 → Null이라는 가상의 interface로 보내는것을 blackhole로 보내는 것과 비슷
- 특정한 IP또는 IP대역에 대해서 null이라는 가상의 interface로 보냄
- Null Interface는 특정주소를 목적지로 하는 트래픽을 차단(혹은 폐기)하기 위해서 사용
- Null Interface는 ACL 과는 달리 라우터의 CPU 소모율(CPU 부하)이 낮기 때문에 효과적으로 라우터의 부하를 줄이는 방법
- Null Interface는 Routing Loop를 방지하는데 도움을 줌
Null Routing 사용 이유
- ACL보다 Router에 부하가 덜하고, 설정이 편리하단 점에선 ACL보단 편리함
- Null Routing은 Dest IP나 IP대역에 대해서 막는건 쉽지만, 기능적으로 제한적임
- Null Routing과 달리 ACL은 패킷에대해 포트나 Source IP, Dest IP에 대해 유연하게 제어가 가능
- 네트워크대역에 대해 심각하게 IP스캔을 하거나 스팸을 뿌리는 IP가 보일 경우 Null Routing으로 차단 필요
- 공격자는 대부분 차단된 것을 확인 후에는 더 이상의 시도를 하지 않게 되고 때때로 자동화된 스캔 프로그램을 실행해 두었는지 차단되고 있음에도 불구하고 계속시도를 하는 경우도 있음 → 공격한 패킷은 Null0으로 이동하기에 CPU 부하 X
- Null Routing이란 소스 IP에 대한 라우팅이 아니라 목적지 IP에 대한 라우팅이므로 공격자의 IP를 Null0으로 설정하였을 경우 공격자의 요청(소스:공격자, 목적지:내부서버)은 라우터를 통과하여 서버까지 전달되지만 서버에서의 응답(소스:내부서버, 목적지:공격자)이 blackhole처럼 Null0로 보내어져 사라지게 함 → 패킷 부하 X
- Null Routing 참고 사항
- 공격자의 소스 IP를 차단하려면 access list를 사용해야함
- Null Routing은 포트까지 제어할 수 있는 L4가 아니라 IP나 IP대역을 차단하는 L3
- Null Routing은 특정한 포트를 차단할 수는 없음으로, 특정 포트를 차단하기 위해서는 extended access list 사용 필요
Null Routing 사용 형식
- static routing을 이용하여 특정한 목적지 IP 또는 대역을 Null0라는(유닉스의 /dev/null과 유사) 가상의 쓰레기(garbage) 인터페이스에 강제적으로 보냄으로써 트래픽을 차단하는 방식
- 라우터에서는 패킷이 필터링 될 때마다 해당 패킷의 소스 IP로 icmp unreachable messages를 발송 → 서비스 거부 공격이 이루어지고 있을 경우 필터링 되는 패킷으로 인하여 라우터에서 많은 icmp 패킷이 유발 (라우터에 과부하를 유발)
- Null0 인터페이스에서 반응하지 않도록 no ip unreachables 설정 → 포트스캔이나 IP스캔의 결과를 지연시키거나 보이지 않도록 하는 효과
- Null Routing 사용 형식
interface Null0 no ip unreachables ! ip route <dest to drop> <mask> Null0
- sender.com에서 receiver.com으로 telnet 접속을 시도
- 라우터 내부에는 receiver.com이라는 서버가 없거나 다운되어 연결할 수 없기 때문에 라우터에서 대신 icmp로 응답
- "no ip unreachables” 설정 후에는 라우터에서 반응 X
- ip unreachables를 반드시 사용하여야 할 특별한 이유가 있다면 “ip icmp rate-limit unreachable”을 이용하여 응답하는 비율을 제한
sender.com.31504 > receiver.com.23: S router > sender.com:icmp: host receiver.com unreachables
Null Routing을 이용하여 231.1.1.1 IP를 차단
static routing이므로 mask 적용 시 access list에서 사용하는 wildcard mask를 쓰지 않도록 주의 필요
interface Null0 no ip unreachables ! ip route 231.1.1.1 255.255.255.255 Null0
wildcard mask를 사용하여 231.1.1.0/24 대역을 차단
Router(config)#ip route 231.1.1.0 255.255.255.0 Null0
설정한 내용을 해제하려면 설정내용 앞에 no가 필요
패킷트레이스 Null Routing 사용 예시
- Null Routing 명령어 구조
router(config)# ip route [dest ip | network] [subnet mask] null0
- Null Routing 설정하지 않고 203.235.222.3 -------> 192.168.10.1으로 ping 테스트 (정상)
- Null Routing 설정 (203.235.222.0/24 대역 차단) → -------> 192.168.10.1으로 ping 테스트 (일정 시간 초과하면 차단)
# 양식 R1(config)# ip route 203.235.222.0 255.255.255.0 null0
참고 URL : https://www.linux.co.kr/bbs/board.php?bo_table=lecture&wr_id=2601
참고 URL : https://secdata.tistory.com/18
'Network(네트워크)' 카테고리의 다른 글
LACP(Link Aggregation Control Protocol; IEEE 802.3ad) (0) | 2022.07.17 |
---|---|
unknown unicast 발생이유와 해결방안 (0) | 2022.07.15 |
Request 타임아웃(Timeout) 정리 (0) | 2022.06.27 |
Fast Retransmit, Flow Control 과 Congestion Control (0) | 2022.06.26 |
Network Ring Buffer Size 설정하기 (0) | 2022.06.26 |