본문 바로가기
1.A. High Level Computing/Network

개인 서버 망분리 고민 log (Feat. NAT & Sniffing) - 작업중

by Never Settle Down 2023. 6. 15.
반응형

 

 

 

 

(글 수정 중, 아래 실제 글과 목차 괴리 있음)

목차

0. 개요

1. 망분리 정의

2. 망분리의 근거

   2.A. 기업의 망분리

   2.B. 가정의 망분리

3. 망분리 중/후 보안 강화 요소

  1.A. NAT

  1.B. Broadcast Domain & Sniffing

  1.C. 사회학적 요소

4. 아키텍쳐

  2.A. 네트워크 아키텍쳐

  2.B. 물리적 아키텍쳐

...

아니면 시나리오 베이스로 써볼까?

- 일반적인 구성

- 문제점

- 개선점

- 개선점의 문제점

- 2차 개선점

...

 

 

 

0. 개요

더보기

 

*이 개요를 쓸 때만 하더라도

오프라인 대학교서 정보통신공학과로 졸업한 뒤

사이버 대학교에서 보안학과를 갓 복수전공 신청한 시절이다.

보안에 대해 관심은 많았지만 경험치는 낮았다.

 

낮은 경험치로서 고민하던 내용을 그대로 살렸으니 참고하기 바란다.

 

 

...

 

 

 

나는 사생활 보호에 극도로 민감한 편이다.

게다가 I 성향이 매우 강해서 그런지..

아님 펌웨어는 북유럽버전 패치를 받아서 그런지...

다른 사람들이랑 어울리면서 시간을 헛되이 버려버리는걸 별로 안 좋아한다.

 

 

한국의 그지같은 Collectivism, 집단주의적인 문화때문에

여행지 가서 '한국인이다' 하며 반기는 사람도 정말 불쾌하고

(워 스r 쭝궈러 ㅇㅈㄹ함)

회식은 물론이요 점심 같이 먹어야되는 것조차 달갑지가 않다.

 

안그래도 할거 산더미고

하고싶은 내 일은 훨씬 많은데

귀중한 1시간 반의 휴식시간마져 타인에게 종속되어야 한다니.

 

끔찍하다.

 

젊었을 적엔 동아리도 7개나 하고

공연도 몇 번 나가서 노래부르고 악기 연주하고 했는데

어떻게 했는지 모르겠다.

 

...

 

이러한 성향 덕분인지

아니면 병리학적으로 문제가 있다고 판정받기 직전 수준의 예민함 때문인지

개인정보는 한 번도 털린적이 없다.

 

적어도 나의 과실로 털린적은 없다.

 

지금 정보보안을 공부하는 동기이기도 한데,

이런 저런 정보를 접할수록 지금 망 시스템이

불안하게만 느껴진다.

 

 

정보통신학과를 졸업할 쯤이면

이따위 다이어그램과 라우팅 기법에 대해서

지겹도록 보고 읽고 듣고 씹고 맛보고

시험기간에 담배를 연달아 빨다가 구역질이 올라와 토했을 것이다:

토폴로지가 어쩌고저쩌고,

패뜨코스트는 어쩌고 저쩌고,

IP 헤더가 어떻게 변화하고 저쩌고...

 

전자과를 다니다 정보통신학과로 전과해서

1.5년만에 4년치 전공을 쑤셔들은 뒤 전과한 나로서는

정말이지 첫 강의때부터 졸업장을 받을 때까지

이론과 현실의 괴리감을 심하게 느꼈다.

저런걸 알아도 안 것 같지 않은, 실감이 나질 않았다.

 

트렁크가 뭔지 설명해주는 사람 따윈 없었다.

회사 가서 트렁크 리셋을 해보면서 뭔지 배웠다.

 

 

전혀 현실적인 얘기는 해주지 않는다.

학교에서 아무리 배워도

막상 집에 와서 공유기 세팅하는건 다시 배워야한다.

 

포트포워딩, VLAN, DDNS, 포트스캐닝, 포트 미러링 (물리적 포트 미러링)...

다 독학으로 배웠다.

 

책에는 '이런거다' 덜렁 한 줄만 설명되어있었고

개인용/기업용 장비의 실 예시는 그 어디에서도 볼 수 없었다.

 

 

물론 전과하고

(4.5년을 전자공학과 전공하다가 전과했다. 통신과 전공 순서 뒤죽박죽으로 들어서 죽는줄로만 알았다.)

새로 배정받은 지도교수님이 은퇴를 앞둔 네트워크 쟁이였는데,

강의시간에 퇴역한 KT 출신 장비를 강의실에 모시고 왔다.

 

나는 당시에 자바 프로그래밍에 푹 빠져있어서

신경을 안 썼다.

 

돌이켜보면 좀 아깝...

ㅋㅋㅋ

 

 

 

 

 

트래픽을 자꾸 전류에 비교해서 생각하다 보니까

본딩 (저항 병렬)이나 최적경로 (병직렬 복합 회로) 등등이

이상하게 머리에 저장되었다.

 

대역폭은 최대허용전류처럼 생각하고..

더미허브는 전압을 모두 동일하게 뿌려주고

브릿지 허브는 기계식 스위치처럼 작동하고 (아니면 먹스)

스위칭 허브는 그게 좀 더 진보된거고...

 

심플렉스는 다이오드가 박힌 회로.ㅇㅋ. ㅇㅈㄹ.ㅋㅋㅋㅋㅋ

 

 

 

 

 

독학의 한계를

다른학과 (전기전자, 정보통신, 소프트웨어공학, 정보보안학) 전공으로 때우고 밀어넣으면서

긁어모은 잡지식 일부와

서울사육장 (겸 IDC)의 내부망 재구성에 대해 기록한다.

 

나는 박사학위를 가진 강의자격 소유자도 아니고

단순히 전자/정보통신 학사 소유자로, 또

정보보안학 학부 재학생으로서

 

내 서버망의 안전성을 높이기 위해 고민하고

이를 글로 남긴 것이다.

 

틀린 내용이 많이 있을 것 같으니 주의(concentrate)과 주의(caution)를 당부한다.

 

 

- 토폴로지, OSI layers, SOHO 이하 수준의 장비

 

 

 

기본적으로 '가정용' 공유기는 이렇게

트리(tree) 형태로 연결된다.

 

'공유기'와 '라우터'는 엄밀히 말하자면 좀 다른게

라우터는 패킷을 전달하는 장치로 정의한다면

공유기는 NAT, DHCP, 라우터, AP (무선기능), Switch (유선기능) 등등이 복합적으로 담겨있는 장치라고 정의할 수 있겠다.

 

공유기 포트가 모자라서

스위칭 허브 (요즘시절에 더미허브 새제품은 구하는게 더 어렵다. 전부 스위칭 허브)를 달게 된다면

아래와 같은 트리 구조를 가지게 될 것이다:

부모님 집과 나의 디 아더 집은

단독주택이라서 Wifi 커버리지와 유선 커버리지가

상당히 넓은 편이다.

 

이에 값이 저렴한 ipTime의 기가빗 + 802.11ac 무선 지원 공유기

A1004를 잔뜩 사서 배치했다.

(재포장 제품 팔때 왕창 샀다)

 

 

트리 형태에서 최상단 (root 노드) 공유기는;

- ISP (통신사) 장비와 연결 (NAT가 여기서 일어남)

- DHCP 서버 on (라우팅이 여기서 일어남)

- 포트 설정 (포트포워딩), DDNS 설정 (xxxx.iptime.org와 공인IP 매핑)

이 세팅되어있고

 

나머지는;

- DHCP off (스위치 모드로 작동)

- Wireless AP on (SSID (와이파이 이름), 패스워드 동일 구성)

 

반드시 루트노드 장비에서

DHCP (IP 배정 관리) 서버를 켤 필요는 없다.

 

나의 경우엔 NAT 장비 (인터넷과 인트라넷을 연결해주는 장비)로

트래픽이 몰리기 때문에 가상 성능 좋은 녀석을 넣었고

성능이 좋기때문에 DHCP의 로드도 그 녀석에게 던져준 것일 뿐이다.

 

 

ipTime의 메쉬 기능을 켜면 (1004는 메쉬 클라이언트만 가능)

애플 제품들 와이파이가 우수수 떨어진다.

망할 메쉬 쓰려고 3004인가, 좀 비싼 ipTime 공유기를 샀는데

(메쉬 호스트? 가능 장비)

우수수수수 떨어지면서

먼지먹은 포스트잇모냥 안 달라붙는 무선랜을 바라보며

원복시켰다.

 

 

 

최근 내 윈도우 PC OS가 흔들리면서

짱깨의 딤섬웨어에 감염된건지 순간 걱정되서

전원을 급히게 차단한 적이 있다.

 

서버망이랑 일반 PC망이랑 분리해야겠구나 싶었다.

요딴 식으로 구성해보려 한다. 했다

 

이렇게 되면

- 일반 PC의 감염 (macOS, Linux 포함)

- Wireless AP의 보안 무력화 (내부망 잠입)

의 공격이 들어오더라도

서버쪽 망으로 다시 네트워크를 뚫어야 하기 때문에

방어책이 한 겹 더 생긴다.

 

물론;

- 포트 포워딩이 필요하므로 설정이 더 번거롭고,

- 네트워크 장비의 갯수가 늘어나 귀찮으며 Fail point의 증가로 가용성이 떨어지고,

- 공유기의 취약점 (특히 펌웨어 취약점 공표 후 제로데이 어택은..)은 해소하기 어렵고,

- 회선대역폭이 낮기때문에 병목현상이 생길 것이다.

 

카운터 어택으로는

- 설정은 한 번만 하면 되므로 괜찮고

- 가용성은 나에게 중요하지 않으며

- 공유기 모델과 제조사를 섞어버리면 어느정도 해소가 되고

- 스위치 허브도 동일한 병목현상을 안고 있다.

 

아래는 구성 예시이다:

 

듀얼 WAN 공유기를 2대 구할 수 있다면

아래와 같이 구성할 수도 있다.

이렇게 WAN 2개가 있을 때

비로소 교과서에서 보던 라우팅 장비들의 모습을 그릴 수 있겠다.

(대역폭 문제만 아니면 처음 그림이랑 별 차이가 없다)

 

네트워크를 만져보고

뻘짓과 폭풍검색을 하고 나면

별 것 아니라는걸 알게되지만..

 

학부때, 그것도 전자공학에서 FPGA랑 디지털 회로만 만지던 나는

이 토폴로지를 도저히 상상할 수가 없었다.

 

'아니 시밤 알겠는데 그래서 ipTime 공유기로 어떻게 구성하는건데'

 

 

ㅋㅋㅋ

 

 

 

아.

WAN 포트끼리 다이렉트로 연결하면

DHCP 잡아줄 애가 없어서 안되나..?

 

PC - PC 다이렉트 연결처럼 작동이 안 되나

WAN 고정IP로 임의로 잡으면 되지 않을까 싶다.

모르겠다.

 

 

 

 

값싼 ipTime제품 중엔

현재 판매중인 Dual Wan 장비가 없는 것 같다.

 

예전에 X 시리즈로 팔았나본데,

NAT 성능이 매우 떨어질 뿐더러 (구형이니)

CPU 성능부족으로 하단에 물린 장비가 많으면 장애가 잦았나보다.

https://sparetime.kr/entry/2Wan-공유기-ipTIME-x6003-분산-설정-및-장애경험

 

2Wan 공유기 ipTIME x6003 분산 설정 및 장애경험

ipTIME x6003 사용기 중소기업 100인 이하 네트워크사용하는 회사에서 사용하기 좋은 제품입니다. 가성비 좋기로 유명한 iptime에서 나온 2WAN 보통은 2개의 다른 ISP사를 통해서 백업용이나 분산용으로

sparetime.kr

 

 

이렇게 듀얼웬 장비를 쓰지 않으면 발생하는 병목:

- A 장비 - SMB 서버에서 대용량 파일 pulling (113MB/s)

- B 장비 - 인터넷 에서 대용량 파일 pulling (113MB/s)

(가정사항: 모든 물리 커넥션은 1Gbps (유효속도 113MB/s) 연결, ISP 제공 속도도 1Gbps)

 

이렇게 될 경우

A장비 + B 장비의 download 속도 합이 113MB/s로 떨어질 수밖에 없다.

 

하나의 기가빗 랜선으로 두 대역폭이 통과해야하니...

 

 

나는 이게 별로 문제가 되지 않는다.

 

대용량 푸쉬/풀이 거의 없을 뿐더러

유선인터넷을 하프기가 (500Mbps)짜리를 쓰고 있어서

(유효속도 5-60MB/s)

인터넷을 통과하는 트래픽을 맥스로 소진하더라도

인트라넷에서 50MB/s의 여유가 남는다.

(그럼 왜 떠든거임)

 

 

 

 

생각해보니 L3 스위치 중에

시중에 저렴하게 파는 녀석이 있지 않을까? 싶어졌다.

거 봐 조혼내 비싸다니깐.

 

전에 회사에서

왜 기업들은 시스코만 쓰고

삼성이나 짱깨 스위치는 안쓰냐고 물어봤다.

 

과장님 왈

신뢰도 (보안 측면 + 가용성 측면)가 떨어져서 그렇다고 한다.

 

흠.

 

링크시스 좀 싼건 없냐?

그러고보니 전에 회사서 서버 간단하게 추가할 때

시스코 제품 중에 작고 저렴한 녀석으로 몇개 박은 적이 있다.

 

패킷 미러링도 되고

매니지먼트 등등 뭔 기능이 좀 많았던 것 같음.

 

 

공유기는 3 ~ 6만원짜리 쓰면서

스위치 하나에 세종대왕 30마리를 던지고 싶진 않은데...

 

 

이번에 링크시스 공유기를 처음 사보면서

 

크 역시 벨킨 여윽시 시스코 하며

감탄사를 던졌다.

2023.07.01 - [Electronics log/Electronics Log (as Consumer)] - [토막글] 링크시스 E7350 공유기 (WPA3) Log (Feat. 통신단자함)

 

[토막글] 링크시스 E7350 공유기 (WPA3) Log (Feat. 통신단자함)

노르웨이어를 배우려고 책을 드디어 샀다. 2023.04.05 - [In Progress/Brainstormed but that's it.] - 노르웨이지언을 배워볼까. (탐색중) 노르웨이지언을 배워볼까. (탐색중) 한 10년? 12년? 전에 유툽에서 (당시

thewanderer.tistory.com

 

 닝크시스 제품 중 그나마 가격이 준수한 녀석을 찾았다:

 

 

L3 스위치를 쓰면

제한적 라우팅이 가능해지기 때문에

WAN 2개짜리 라우터를 안 두더라도

위와 같은 토폴로지를 구성할 수 있다.

(-> ...? 무슨 말도 안되는 헛소리를 써놓은거지??)

 

단, A - B 통신과 A - C 통신시

대역폭을 나눠먹어야 하는 것은 동일하다.

 

스위치끼리 루핑이 발생하더라도 네트워크가 먹통이 나지 않는다.

그게 L3다.

-> 브로드캐스트 스토밍은 L3라고 다 해결되는게 아니다.

    트리 뭐시기를 구성할 수 있으면 L2 스위치 루핑도 해결할 수 있고...

   뭐냐 나놈

-> L3 스위치정도 되면 루핑 감지 기능이 있다.

     본인이 찾아봐놓고서 본인이 까먹으면 어떡하냐.

     뭐냐 나놈 진짜.

 

 

L2는 루프를 만들게 되면

멀티캐스트나 브로드캐스트 (또는 내부 MAC 테이블에 대상이 없는 Unicast)

패킷을 플러딩 시키면서

점점 증식되는 것이 무한반복돼 네트워크가 먹통된다.

 

이거슨 브로드캐스트 스토밍이라고 칭한다.

2024.03.16 - [1.A. High Level Computing/Network] - DDoS 및 대피소(Shelter)의 종류 및 작동기제 log (feat. 논문주제 뭐로하지)

 

DDoS 및 대피소(Shelter)의 종류 및 작동기제 log (feat. 논문주제 뭐로하지)

Pre-script 1. 타인의 시간낭비 방지를 위해서...이 글은 DDoS와 DDoS 대피소에 대해 설명하는 글이 아니다. 두 개에 대해 논문을 쓰려는 자의 브레인스토밍 글,마구잡이로 대충 아는거 다 때려박는그

thewanderer.tistory.com

 

여기서도 살짝 다루었다.

 

전 회사 상사가 근무지 첫 출근날

그짓거리를 하고 나에게 덮어씌웠다.

 

능력도 안되고 인성도 안되는 개새기 ㅅㅂ 진짜 가끔 꿈에 나온다.

퇴사할때 보니까 사고쳐서 시말서 쓰고 있더라고.

중간관리자란 샛기가 진짜... 어휴 저딴 놈이 어떻게 회사에 붙어있는지 정말 대단하다.

내부망에 무단으로 ipTime 공유기 쳐 달아놔서

본사에 찌를까 하다가 그냥 나왔다.

 

어차피 레퍼런스 체크에서 줙같이 주둥아리를 놀릴 놈인데

굳이 더 나쁘게 놀리라고 부채질할 필요는 없었다.

포기한 회산데 굳이..

 

 

 

라우팅 기능은 필요가 없으므로

그냥 제일 저렴한 놈으로 샀다.

8포트 (PoE 없음), VLAN지원 (32개), IGMP 스누핑, 멀티캐스트 그룹 (128개), QoS...

 

LAG (링크 에그리게이숀, 랜 본딩) 미지원.

와 싸다.

ㅋㅋㅋㅋ

 

28달러...

 

배송비에 환율 적용하면 5만원이 좀 넘는다.

 

국내 정식 딜러로 사면 8만6천원.

반까이 4만3천원 주고 샀다.

 

미국 국내서 세금없는 주 (델라웨어 같은 곳)에서 사면

한화로 3.6만원이다.

 

겁나 싸네.

 

 

여튼 학교에서 가르쳐주는 메쉬형태 토폴로지는

가정에는 해당되지 않는 경우가 99%일 것이다.

저렇게 루프를 만들기 위해

L3 스위치만 최소 3개가 있어야한다.

(아... 메쉬형 구성 그리려면 L3 장비가 있어야된다 그말이었구나.)

 

아.

공유기 허브모드로 작동하면 L3 스위치로 작동하...니?

Managed L2이려나... L2.5...? ㅋㅋ

 

당근에서 공유기 몇개 주워와서

테스트를 해보고 싶다만

 

돈이 너무 아깝다.

 

 

1. 망분리 정의

망 = 브로드 캐스트 도메인

망 분리 = 브로드 캐스트 도메인을 세부적으로 (Subnet) 나누고

               Subnet 상호간 통신을 "제한"하도록 조치하는 것.

 

맞냐?

 

기술적인 측면에서 저렇게, 정말 단순하게 정의한 사람은 없다.

(아니면 못 찾았다)

 

그러나 틀린 소리는 아니다. 고 생각한다.

 

 

일단 브로드캐스트 도메인, CIDR와 호스트 기준으로

서브넷을 나누는 것이다.

 

어떻게?

망분리를 하지 않은 것보다 잘게.

 

-> VLAN은 망분리가 아닌데 브로드캐스트 도메인을 나눌 수 있다.

NAT를 기준으로 할 수도 없고.

망분리를 명확하게 정의내리기가 쉽지 않다.

 

 

앞서 "제한"한다고 했지 "차단"한다고 하지 않았다.

완전히 차단할거면 연계를 할 필요가 없어진다.

 

그럼 망 분리가 아니라 폐쇄망 운영이 되는 것이고

군대의 인트라넷과 같은게 아니면 굳이 그렇게 운영할 필요가 없다.

(심지어 군대도 백신 PMS나 SIP(인터넷전화) 프로토콜 같은 놈들 때문에 완전 단절은 아니... 아닐 것이다.)

 

그래서 인트라넷, 폐쇄망은 여기서 다루지 않는다.

 

 

 

 

2. 망분리의 근거

   2.A. 기업의 망분리

일단은 법적 요건이 있다.

"안전"을 위해서 망분리를 하라고 떠든다.

 

망분리를 하지 않는게 왜 "위험"한지는 안 떠든다.

진짜.. 에어갭...

제로트러스트라고 망분리를 안 해도 되는건 아니다만

경계기반 보안모델 (Perimeter Security)에 근간한 요건이다.

 

왜 망분리가 안전하다고 하는지는 단순한 이유밖에 없다.

서버랑 업무용 컴퓨터랑 같은 네트워크에 다 때려박아놓으면

악성코드를 전파하거나 악의적인 행동을 하기가 편하다.

 

망 분리를 해놓으면

방어체계를 한 번 더 뚫고 들어가야되서 어렵다.

정도?

 

 

 

아.

하나 더 있네.

 

개인정보나 기업기밀, 서비스에 중대한 영향을 미치는 데이터 등이

서버 간에 흘러다닐때

망을 구분해두면 외부에서 이 데이터를 낚아챌 수가 없다.

 

또한 외부에서는 서버가 어떻게 구성되어있는지,

몇대나 있는지 등은 전혀 알 수가 없다.

 

 

특히 외부에서 접속하는 경우 DMZ에 있는 서버에게

요청을 보내면 요 놈들이 내부망의 서버에게

다시 요청을 보내는 식으로 요청과 데이터가 흘러다닌다.

 

 

외부에서는 이런 요청이나 데이터를 절대 볼  수 없기에

안전하다. 고 볼 수 있다.

 

 

역시 경계기반모델에 근간한 논리이다.

 

 

 

   2.B. 가정의 망분리

가정집에서 망분리를 할 필요는 전혀 없다.

없었다.

일반적으로는.

 

 

나의 경우 민감정보, 고유식별정보, 신상 모음집 등이 모여있는

파일들을 다루기 때문에 서버네트워크와 일반 컴퓨터 네트워크를 나누기로 한 것이다.

 

또한 저렴하다고 산 뜡국산 장비들이

내 정보를 염탐해서 진핑이형한테 갖다 바치지 못하도록

이런 장비 대상으로는 외부 네트워크 통신을 차단하려 한다.

 

* NAT와 VLAN의 보안향상도 (NAT: 외-내부, VLAN: 내-내부)

더보기

각 망을 격리하면 (VLAN, NAT)

하단 노드의 감염으로 해당 망이 compromised되더라도

옆의 망에 영향은 미치지 않는다.

 

사실인가?

 

 

일단 서버와 일반 PC를 NAT로 망구분 한 녀석과

같은 망에 때려놓은 녀석을보자.

 

 

서버에 방화벽도 안 켜져있고,

쓸데없는 서비스 (또는 취약한 서비스)가 켜져있다고 보자.

 

 

서버망 앞에 라우터가 붙고 NAT + Port Forwarding으로

망이 구분된 녀석은 서버에게 공격을 할 수가 없다.

 

취약한 서비스가 열렸는지 보고 해당 서비스에 대해서 공격만 할 수 있다.

서버망 내부 라우터를 탐색할 수가 없으니

서버가 몇대인지, 내부에서 흘러다니는 데이터는 어떻게 되는지

 

 

...

 

18th June 2023

어제 기사시험을 치고나서

친구랑 밥을 먹었다.

 

돈가스 먹다가 맥주가 땡겨서

오늘 집에 왔다.

 

하...

팔이 너무 아프다.

 

 

NAT를 통한 망분리 (IP 도메인을 바꿔버림)가 가져다주는

보안 향상도를 정량적으로 표현할 수는 없다고 생각한다.

 

망분리 이전 대비 31%의 보안이 향상되었음

이런 식으로 수치화할 수 없다는 뜻이다.

 

 

공격 대상 장비와 공격자의 위치를 기반해

아래와 같이 4가지로 시나리오를 나누어 보았다:

 

밍기적 거리면서 보안 향상 방법론을 도모하다보니

자꾸 방화벽이 튀어나온다..

 

OpenWRT로 공유기를 만들(?)어서 쓰는 사람이 있듯

오픈소스 방화벽 OS를 올려 쓰는 사람이 있다.

 

https://netxhack.com/buy/firewall-router-mini-pc/

 

아니 나두 방화벽 쓰구 싶지..

마음같아선 침입차단시스템이랑 허니팟을 구성해서 쓰고 싶은데

돈... 아깝잖어.

 

ㅋㅋ ㅜ

 

 

지인의 방화벽을 몇 달간 잠깐 써봤다.

(와이프 등짝에 내 서울사육장으로 대피시키면서 사용해봄)

좋더라. 로그도 싹 다 남고.

 

SBC에 랜카드 하나 더 달든지 해서라도

방화벽을 달아야할 것 같은데..

 

 

 

일반적인 공유기들의 가장 큰 문제점은

- 인바운드만 통제 (아웃바운드는 얼라우 올)

- 로그를 남기지 않음

이다.

 

 

포트스캐닝이나 ARP 스캔,

Promiscuous Mode로 설정된 NIC 통하여 패킷 스니핑 (더미 스위치에 물렸거나 브로드/멀티캐스팅일 경우)

등등은 전혀 신경쓰질 않는다.

 

 

 

17th Jul 2023

 

샛길로 샜다.

근 한 달만에 이 주제로 돌아왔다.

 

 

NAT를 시키게 되면

외부에선 NAT장비의 외부 IP만 보이고,

내부에 접근하기 위해선 (NAT 맞은편 LAN의 장비에게 메세지를 던져주려면)
패킷 내부 최종목적지 IP에 해당 내부 IP를 넣어야 한다.

 

 

내부에서는 외부쪽으로 나가면서

IP 도메인이 어떻게 되는지 쉽게 알 수 있다.

(IP 도메인이 어떻게 되는지 알아야

일차적으로 IP주소 할당, 게이트웨이 확인 등을 할 수 있으니까)

traceroute를 이용하면

TTL을 1씩 늘려가면서 ICMP Error (Time to live가 너무 짧아 도달을 못했다는 메세지)를 받는다.

ICMP Error를 보낸 라우터의 IP를 저장하여 경로를 확인하면서

상단 네트워크가 어떻게 구성되어있는지 유추할 수 있다.

 그러나, 반대방향으로 IP는 찾을 수가 없다.

Port Forwarding으로 이를 해소할 수 있는데,

IP는 OSI 계층 3, Network 계층인 반면

Port는 계층 4,Transport 계층이므로

일단은 논외로 한다.

 

 

공격자가 내 공유기의 외부 IP를 알더라도

(적어도 DDNS를 통해 알든가, 내 노트북에서 오가는 데이터그램을 스니핑하거나, 인터넷의 다른 서버측에서 악의적으로 저장하거나..)

내 공유기, NAT 장비 너머의 IP는 모르고 있어서

직접적으로 통신할 수가 없다.

 

물론 서버가 감염되어서 스스로 통신을 한다면 모르겠디만.

 

 

위 그림에서 A, F, T, N, Z, P는 IP주소이고

20, 10, 99, 33 등은 MAC주소 (물리 주소)이다.

 

구글의 웹서버 (google.com)에 접속한다고 하면

내 컴퓨터의 LAN IP (192.168.0.123)과 구글 서버의 외부 IP (142.250.207.110)가 헤더에 담기고,

라우터끼린 MAC주소로 전달 (라우팅 테이블에 기반하여)된 뒤

구글쪽 네트워크 장비 (142.250.207.110)에서 포트번호 443 (HTTPS)에 해당하는

웹서버쪽으로 던져버린다.

 

그 응답 (웹페이지)가 내 LAN IP로 오는 건... 아닌거같은데.

왜 T의 정보는 없는거지????

(전 세계에 192.168.0.x 도메인의 갯수가 몇개인진 상상이 안 간다)

 

 

아마 웹 브라우저에서 https://142.250.207.110를 치면

(SSL 인증서 경고창이 나온 뒤 넘기면 구글로 접속된다)

T (공유기의 공인IP)와 N (구글 내외부망 접속점의 공인IP)이 패킷에 담기고,

(L2레벨)

그 페이로드에는 해당 포트번호와 대상 (각자 내부망의 내부IP주소) 주소가 담겨있을 것이다.

(L3 레벨)

 

이렇게 주장하는 나의 근거로,

나의 집 라우터의 log를 까보겠다.

 지금 이렇게 VPN을 붙여

외부에서 블로그를 쓰고 있는데,

LAN IP Address에는 VPN 서버의 IP가 잡힌다.

 

저기에 있는 요청들을 직접 웹 브라우저에서 찍어보면

 

이렇게 창들이 뜨는 것을 볼 수 있다.

(나머지는 포트만 443이고 웹 서버는 아닌 것 같다. 이상한 파일이 다운로드 되거나 접속 실패가 뜬다.)

 

아마 티스토리와 연관된 어떤 서비스 관련 접속 로그지 않을까 싶다.

 

Intranet 내에서 다른 Subnet끼리 통신은

저 위의 도표처럼 목적지의 IP가 담길 수 있겠으나

Internet을 통과하는 서비스의 트래픽들은

내가 주장하는 것과 같이 작동하지 않을까 싶다.

 

 

 

 

 

 

자.

그럼 내부망에서 다시 서버망을 나눈 경우와

그러하지 않은 경우의 차이를 알아보자.

 

이렇게 내부에 감염된 PC가 있다면

별다른 어려움 없이 Network Scan (IP주소 스캔, ARP로 MAC 획득)을 할 수 있고

획득한 MAC/IP 주소로 Port스캔 (오픈된 서비스 탐색)을 한 뒤

열린 Port로 브루트포스 공격 등을 수행할 수 있다.

(붉은 점선)

 

SMB나 SSH 서비스를 뚫고 들어가서

내 개인 파일을 훔쳐가거나, VPN 플로우를 공격자 서버로 리다이렉트 시키거나...

 

 

그리고, NIC (네트워크 장치, 랜선 구녕으로 생각하면 된다)를

promiscuous 모드로 변경하여

자신에게 온 것이 아닌 패킷도 버리지 않고 도청할 수 있다.

(초록 선)

 

스니핑, 도청은 아래 다른 곳에서 다루겠다.

 

 

구럼 도청을 할 수 없게 VLAN으로 격리시켜버리면 안되나?

(VLAN 태그는 장비들이 대개 수십-수천개를 지원하므로 충분하다)

 

 각 PC를 격리시켜 버리면

Unicast (일반적인 1:1 통신, SMB, SSH, Ping, HTTP...) 외에도

멀티캐스트 (IPTV)나 브로드캐스트 (ARP) 등도 스니핑을 할 수없다.

 

브루트 포스는 막을 수 있지만 정상적인 접속도 불가능하다.

 

공유기측에서 포트포워딩으로 전달해줘야하는데,

내부 접속자만 공유기에게 특정 포트로 접근할 수 있는 기능은

없는 것으로 알고 있다.

 

그럼 외부에 해당 포트를 오픈해야한다.

 

마치 은행 금고를 악의적인 직원이 몰래 만지작거리지 못하게 하려고

금고 입구를 모두 길거리에 오픈하는 짓거리나 마찬가지.

 

우리 모두 다함께 금고 컴비네이션을 브루투스 공격해보아요 ㅇㅈㄹ.

 

 

생각해보니 VLAN은 단순히 tag가 붙지

VPN처럼 암호화로 감싸는건 아니니깐

CAM 테이블 오버플로 공격을 당한 스위치를 통해서

다른 VLAN의 트래픽도 스니핑 할 수 있으리라 본다.

 

잠깐 구글링 해보았는데 별로 유의미한 자료는 찾질 못하였다.

 

 

 

 

 

 

그럼 망 분리를 하게되면?

 

베일리는 성 외곽 벽 안쪽의 넓은 부지이고

Keep은 Inn이나 Bar의 Keep이 아니고

그 뭐냐 성 안의 건물이다. 한글로 이름은 모르겠다.

Ward로 할걸 그랬나.

와드 박기 ㅇㅈㄹ 여튼.

 

 

흠...

L2 레이어 기준으로

외부 공격자가 IP헤더를 조작해서 패킷을 보내려면

Bailey LAN 라우터의 내부 IP도메인과,

Keep LAN 라우터의 Bailey측 IP과,

Keep LAN 내부의 서버 IP를 알아야 하므로

어렵겠다.

 

 

L3 수준에서는 큰 차이가 없는 것 같다.

- 서버군에 접속하는 포인트가 단일화 되었다는 점

- 라우터 내의 방화벽 기능 (ignore ICMP, Statefull Packet Inspection - SPI 방화벽 - 등)

 

포트 스캐닝의 경우...

Accept - SYN/ACK 이나 RST로 해당 포트가 열려있는지 확인 (포트 스캐닝)

Deny - 끄지셈 하고 RST 리턴

Discard - 패킷 파기 (송신자는 이게 유실된건지 씹힌건지 전송중인건지 알 수가 없음)

세 개가 있는데,

막상 리눅스의 방화벽을 가지고 직접 테스트해보니

Allow한 포트 외에는 모두 discard 해버린다.

 

잘못된 프로토콜로 접근할 경우에만

Deny가 나온다.

 

SSH 포트에다가 HTTP 요청을 보내봤더니

0.0000001초만에 끄지라고 RST 답변을 받았다.

 

 

망 분리를 하더라도

Bailey LAN 내에 있는 감염PC가

다른 컴퓨터 패킷을 스니핑하는건 막을 수가 없다.

 

 

 

 

나는 그래도 망 분리를 할 예정이다.

 

회사 다닐때는 외부망과 내부망을 분리하고

망 연계 솔루션과 PCoE를 통해서 외부망과 통신했지만,

 

가정집에선 성과 같은 구조를 가지게 된다.

Keep 밑에 그냥 Ward가 아니고 Inner Ward로 바꿔야한다. 오타 수정.

ipTime의 공유기를 쓰게 되면 방화벽 기능같은게 제대로 구현되지 않은 것 같다.

 

OpenWRT를 쓰기엔 일단은 별로...

미완성 프로젝트만 자꾸 만들어서 내버려두면

마음만 불편해진다.

 

간단하더라도 스테이트풀 방화벽 (SPI), ICMP discard (ping, traceroute)

등의 기능이 들어있는 공유기를 쓸 예정이다.

 

Log도 남고, 기초적인 공격도 걸러줄 수 있기 때문에 좋다.

 

Ping response , TTL ICMP Error 를 전송하지 않고

인바운드 패킷을 씹어묵어버린다.

 

외부에 유일하게 열어둔 443 포트 (HTTPS)

VPN용이다.

 

2022.03.01 - [Electronics log/Electronics Log (as Consumer)] - KT 5G 에그 USB 테더링 안됨 (macOS, Linksys BKE-500)

 

KT 5G 에그 USB 테더링 안됨 (macOS, Linksys BKE-500)

결론: 본인의 3개 맥 모두 안된다. macOS 상에서는. 2015 Early 맥북프로 13인치 2017 맥북 에어 13인치 2014 맥 미니 인포시스 LTE 장치, 친구의 삼성 안드로이드폰 + 테터링 둘 다 멀쩡히 잘 되는데. 아예

thewanderer.tistory.com

 

링크시스의 5G 라우터인데,

이상하게 아웃바운드 포트를 많이 막아뒀다.

 

Log도 볼 수가 없고, 설정도 따로 없다.

 

그래서 https인척하면서 VPN이 통과할 수 있게 443 포트를 이용하고 있다.

 

2023.01.19 - [1.A. High Level Computing/On Premise Computing] - VPN서버 (재)구축기 - OpenVPN (feat. Dedicated HW)

 

VPN서버 (재)구축기 - OpenVPN (feat. Dedicated HW)

At first I was afraid, I was petrifiedKept thinking I could never live without you by my sideBut then I spent so many nights thinking how you did me wrongAnd I grew strongAnd I learned how to get alongAnd I am a big fan of Evan Fong (lol the rhyme)  웹

thewanderer.tistory.com

 

 

 

내 DDNS서버가 털리거나

공인IP를 실수로 노출하더라도

외부에서 뭐 할 수 있는게 없다.

 

게다가 외부 라우터의 경우

SPI 방화벽 기능이 있어

포트스캔이나 비정상적인 연결 요청

(e.g. UDP 443포트로 SSH 접속요청 등)

시도시 패킷을 그냥 드랍해버린다.

 

 

서버 -> 서버로

잘못된 서비스 (ssh 포트에 https 요청)를 보냈을 때는 Deny가 오는 것과 대비된다.

 

 

ICMP ignore 옵션도 켜두었기 때문에

traceroute나 ping을 때려볼 수 없다.

덕분에 내 공인IP가 살아있는지 아닌지 알 수가 없다.

 

 

이정도만 되도 훨씬 양호하다.

 

 

 

* 내부망 Sniffing

더보기

 

 

스니핑에 대해 잠깐 떠들어보자.

 

집에 L2 스위치를 달아놨으니 스니핑으로부터 안전하지 않느냐.

(L2 스위치는 목적지 MAC 주소가 물린 물리적 포트(랜선구녕)으로만 패킷을 전달한다)

 

테이블 오버플로잉(?) 공격을 하여 L2 스위치를 더미허브 모드로 동작하게 할 수 있다.

 

아래는 ipTime의 H6008 L2스위치에 박힌 SoC 데이터시트이다.

https://datasheet.lcsc.com/lcsc/2208101101_Realtek-Semicon-RTL8370N-VB-CG_C2803243.pdf

 

4100개의 MAC 주소를 저장할 수 있는 공간이 있는데,

4100개 이상의 랜덤한 mac주소를 테이블에 쑤셔박으면

SoC는 멘탈이 나가서 더미모드로 전환하게 된다.

처음 들어와있던 (정상적인) MAC 주소들이 덮어 씌워지게 된다. (FIFO)

(스위칭 허브 전원 껏다 켜거나, 새로운 컴퓨터를 연결하게 되도 더미허브 모드로 동작하는걸 볼 수 있다)

 

흠. 내 로컬 랜 ip는 1000개정도밖에 할당이 안 되는데.

 

아 한 번에 4000개의 mac주소를 왕창 만들어서 뿌리는게 아니라

하나씩 하나씩 던지면 (ip주소 할당 받기 전) CAM 테이블 (컨텐츠 엑세서블 메모리, MAC주소 테이블)에는

저장되지만 라우터쪽엔 저장 안 되...겠지?

=> IP 할당 등을 받기 전에 그냥 스위치에게만 MAC주소를 쏟아붓는 형태의 공격이다.

 

 

여튼. mac addr table overflow 공격을 통해

L2 스위치를 (준)더미 허브로 바꿔주는 마법을 쓸 수있다.

스튜피파이!

 

 

더미모드의 스위치는,

정확히 말하자면 MAC주소 테이블에 없는 곳을 향하는 패킷을

다른 물리적 포트에 그냥 싹 다 뿌려버린다. (Broadcasting)

 

일반적인 PC는 '어 내 mac주소가 아니네'하고 안읽씹 하더라도

Promiscuous 모드로 동작하는 NIC는 (공격자가 모드를 바꿨을 경우)

' 어 패킷 들어왔네 ' 하고 내용을 까본다.

 

I2C랑 동작 방법이 똑같아진다.

2023.02.15 - [Engineering Log/Micro Controller Unit] - [MCU] P1. I2C 디스플레이 연결하기 (1602A LCD + Adafruit OLED)

 

[MCU] P1. I2C 디스플레이 연결하기 (1602A LCD + Adafruit OLED)

MCU 카테고리의 글을 읽는 독자 친구 한 명과 전화를 했다. - 마리우스가 누구에요? - 어 있어 묻지 마셈. - 정수까지만 하고 왜 안올려요 - 바빠 임뫄 - 이론 쓰기 귀찮아서 그렇죠 - ㅇㅇ - 어차피

thewanderer.tistory.com

아 놔... 아이 스퀘어 씨 동작방법 포스팅은 안 썼네.

인터넷에 찾아보면 나온다.

I2C는 신호선이 2개이다.

SDA, SCL

 

SCL은 동기화 클럭 신호이고 (클럭에 맞춰서 1 비트씩 보냄)

SDA는 데이터선이다.

 

Master와 Slave가 있는데,

Master가

- Slave 1 보낼거 있느냐 (대기중인 송신데이터 문의)

- Slave 1 이거이거 해라 (데이터 전달)

를 보내면, 해당 Slave가 (여기선 Slave 1)

- 아녀 저 없어요

- 아 이거이거 데이터 보낼라고 기다리고 있었음

- ㅇㅋ (ack)

라고 응답을 보낸다.

 

모든  I2C 장비는 SDA와 SCL를 공유한다.

그래서 Slave 2, 3도 SDA를 들으면서

' 어 이건 Slave 1꺼네 ' 하고 버리게 된다.

 

더미허브의 작동 형식과 동일한 것이다.

 

 

 

 

프록스목스만 하더라도 가상머신별로 mac주소를 생성/할당한다.

아무 MAC주소나 막 맹글어서 있는 장비모냥 던지는건 어렵지가 않은가보다.

 

ICMP 리다이렉팅 공격 (감염PC가 라우터인 것처럼 하여 위조 메세지 발송, 피해자 PC의 모든 패킷이 공격자를 통하게 하는 것이다)도 있긴 하다만

요즘 OS는 기본적으로 ICMP 리디렉션 기능이 비활성화 되어있다고 한다.

 

 

스니핑으로 데이터가 뺏기는 대표적인 예 중 하나는

SMB 평문전송이다.

 

이에 SMB 암호화를 적용하였고

(초기 접속시 계정명 외에는 모두 암호화되서 날아간다)

자세한 내용은 아래 글에 담겨있으므로 갈음한다:

2023.07.26 - [1.A. High Level Computing/On Premise Computing] - 파일서버 재구축기 - TrueNAS (Feat. 뻘짓) - Procrastinated

 

파일서버 재구축기 - TrueNAS (Feat. 뻘짓) - Procrastinated

티스토리가 점점 미쳐가고 있다. 이번 아티클을 쓰는데 계속 접은글이 미친듯이 늘어나질 않는가 하면 이제는 짤이 맨 위에 갖다 박혀 버린다. 이번 구축 후 세팅 작업 중에 마주한 그지같은 뻘

thewanderer.tistory.com

 

 

 

1.C. 사회공학적 공격

가. IP 노출

ARP의 경우 장비 접속이 절체될 경우,

오랜만에? 통신을 시도할 경우 (추측)

ARP 브로드캐스팅으로 ' 1.1.1.1번 MAC 주소 아는사람? 1.1.1.99에게 알려주셈 ' 을 뿌려버린다.

 

이렇게 고정IP인 서버망 라우터에게 갈 수 있다는게 문제.

 

ICMP Discard 정책을 펴서

Ping sweep (모든 내부 IP에게 ping을 뿌려서 확인)이나

Traceroute (경로확인)을 수행할 수 없게 하더라도

 

수동적 공격인 Sniffing을 통해 IP를 유추해낼 수 있다.

(트래픽 양을 보고 딱 찝을 수 있겠다)

 

IP 208의 MAC주소 아는사람?? IP 124에게 알려주셈 (브로드 캐스트, 발신자 MAC 35)

IP 208의 MAC주소는 MAC 0d임 (브로드캐스트, 목적지 MAC 35)

 

 

 

 

나. 외출 감지

 

 

 

 

 

2. 무선 AP의 보안도 향상 방안

이 부분은 아래 포스팅으로 갈음한다:

2023.06.27 - [Engineering Log/On Premise Computing] - RADIUS 서버 구축 & WPA 보안 Log

 

RADIUS 서버 구축 & WPA 보안 Log

BGM은 딱히 할게 없어서 보컬이 9초 (2마디) 딜레이된 버전으로 Dua Lipa - Levitating을 골랐다. 목차 1. WPA2 취약점, KRACK공격 2. WPA3 기기 구매 고민 3. RADIUS 서버 설치, 무선 AP 연동 Pre-Shared Key (PSK) 방식

thewanderer.tistory.com

 

3. 기존 서비스의 가용성 저해 여부 확인

더보기

 

VPN서버, 파일서버, 가상화서버

나의 삼대 서비스가 문제 없이 서비스 가능해야하고,

각 서비스별 기본적인 포트번호를 이번 항목에 기재한다.

(웰 노운)

 

- SSH: 22

- VPN: ? , 443 (감쌈)

- RADIUS: 1812, 1813

- SAMBA (SMB)

- AFP

- AirTunes

- Bonjur

또 뭐있지.

 

- Web: 80 (공유기 관리 페이지)

 

 

일단 UPnP는 끌 것이기 때문에

외부 인터넷과 통신하는 UPnP 서비스는 망을 따로 또 떼어내든지 해야한다.

 

나는 다행히 UPnP를 사용하는 장비가 없다.

 

 

 

 

4. 공유기의 취약점과 알려진 공격방법, 안정성

더보기

망 내 PC 컴프로마이즈 외에

공격이 가능한 부분.

바로 네트워크 장비 그 자체.

 

공유기의 취약점 부분을 보자.

 

 

 

스위칭 허브의 SoC 데이터시트 (컨피덴셜)

https://datasheet.lcsc.com/lcsc/2208101101_Realtek-Semicon-RTL8370N-VB-CG_C2803243.pdf

일반적인 공유기처럼 임베디드 리눅스가 탑재되는건 아닌 것 같고

SoC 안에 펌웨어를 주입해서 일반적인 mcu 처럼 작동하는 것 같다.

 

 

 

 

 

 

5. 망분리 후작업

A. Port Forwarding

 이 부분은 간단하니까 제낀...다.ㅋㅋ

 

B. 내부망 VLAN 격리

앞서 개요에서 떠든 L3 스위치 (managed)로 테스트한 기록을 남긴다.

 

구매하고나서 별다른 기록 없이 서버망에 때려박고 쓰고 있었다.

 

 

서버 다 내리고 먼지청소하는겸

전선 정리 하는 겸

뜯어낸 스위치를 가지고 간단히 VLAN 격리 전/후를 비교하려 한다.

 

 

 

 

802.1Q 프로토콜 (헤더에 VLAN 태그를 붙임)은 공유기단에서 지원을 해줘야한다.

일단 802.1Q라 해도 단순하게 포트 기반 태깅이며

세팅을 먹여봐도 (공유기와 연결된 포트를 트렁크로 잡고 all로 설정)

VLAN과 공유기 간 통신이 안된다.

 

 

 

나는 저번에도 단순 포트기반 VLAN을 사용하였다.

 

하이퍼바이저의 가상머신들은 같은 VLAN으로 묶일 녀석끼리

같은 물리적 포트를 배당해주었다.

 

 

VLAN간 통신이 안되는 것을 확인하기 위해서

- arp-scan

- ping

을 사용하였다.

 

 

VLAN을 먹이기 전에는 이렇게 모두 통신이 되지만

 

VLAN을 먹이고 나면 보이지가 않는다.

1번은 ipTime 공유기이고

6번은 넷기어 스위치이다.

 

 

지금 쓰고있는 IP카메라의 경우

외부인터넷을 막아야하기 때문에

공유기와 VLAN을 다르게 해주면

(공유기로 가는 라인도 all이 아니라 일부 VLAN만 통신 가능하게끔)

굳이 공유기측에서 인터넷차단 기능을 안 써도 된다.

 

 

 

C. 외부망 통신 차단

 

가정용공유기는 기능이 매우 제한적이다.

 

 

 

 

 

ps. 가정용 장비의 토폴로지 파서빌리티즈

궁금한 부분

- 트리형태가 아닌 토폴로지 연결이 가능한가?

- 스위칭 허브와, 공유기의 허브모드는 차이가 있는가?

 

당근에서 싸구려 중고 공유기를 몇개 주워와서

실험을 해봐야겠다.

 

 

 

 

 

 

 

 

 

 

 

 

일이 너무 밀려서

잠깐 잠깐 들러 작업하고 있다.

 

 

 

끝. End of Doc.

반응형

Comment(s)