ESXi °¡»óÈ­ ¼­¹ö ±¸ÃàÇϱâ - 02. ¹ø¿Ü ÂüÁ¶¼³¸í. ³×Æ®¿öÅ© ±¸Á¶/±¸¼º ¼³°èÇϱâ

   Á¶È¸ 27381   Ãßõ 2    

http://blog.kinesis.kr (1488)

아무래도 올리고 있는 내용들이 사용법 수준의 내용이라...
어느정도의 이론은 필요할 거 같아서 아직 블로그에 개재하지는 못했는데 미리 올려봅니다.


네트워크 설계를 왜 해야 할까요? 효율적인 사용이나 구성도 목적이 있겠지만 최근에는 보안적 이슈로 많이 고민을 하게 되죠. 이건 어쩌면 지금 제가 보안쪽에 종사를 하고 있어서 그런걸지도 모르겠습니다만, 서버를 구성하는 순간부터 보안과는 땔래야 땔 수 없는 관계가 되기 때문에 어떠한 네트워크 구성을 할 것인지 고민은 필요합니다.

강좌에서 진행하고 있는 내용은 pfSense 와 Reverse Proxy 및 논리적 망분리까지를 다뤄볼 예정입니다만. (언제까지 끝낸단 기간은 안정했지만요)

각 과정을 진행하면서 내가 구성하고자 하는 네트워크의 구성은 어떻게 되는지 어떻게 하면 안전한 구조가 될 수 있을지 생각해 보는것이 중요합니다.


※ 앞으로 나올 네트워크 구조도는 허접해도 다소 양해를 부탁드리겠습니다.


요즘 대부분의 가정집에서도 네트워크 장비구간은 크게 다르지 않을겁니다. 

제일번저 통신사로부터 넘어오는 선을 모뎀이 받습니다. 여기서 선택지가 생기죠. 공유기를 사용하는 환경이냐 안하는 환경이냐에 따라서 나눠지는데 요즘은 IPTV를 이용하다보니 공유기가 없더라도 모뎀이 공유기 역할을 겸하는 형태가 많습니다. 이 경우 1개의 선은 TV를 위한 셋탑박스로, 1개는 PC로 연결이 되게 되지요.

But 스마트폰이나 테블릿등 모바일 기기를 많이 사용하거나, PC 및 노트북등을 많이 사용하는 경우 모뎀만으로 연결은 부족함이 생겨 대게 공유기를 설치하게되고, 이때 네트워크 구성은 "외부 - 모뎀 - 공유기" 라는 연결구조가 성립 됩니다. 그리고 최종적으로 목적지인 PC, 노트북, 스마트폰 등이 되겠죠.


그런데 저희는 가상화 서버를 구축하게 될 것입니다. 공유기 설정을 통해 주요 포트나 서비스는 포트포워딩 설정으로 인해 가상화 서버로 네트워크가 연결될 것입니다. 이를 다른 말로 네트워크 패킷을 전달 한다 또는 전달 받는다 라고도 표현하게 되죠.

우리는 가상화 서버를 구축한 이후 가상의 OS를 설치하고 사용하게 될 겁니다. 위의 푸른색으로 칠해진 가상화 서버 이하의 구성은 사실 논리적인 구성에 해당한다고 말할 수 있겠죠. 여기서 보안을 고려하지 않고 그냥 설치하게 되면 Control, Firewall, Proxy, 가상 NAT 같은 구성은 사라지게 될겁니다. 그냥 Linux 서버, Windows 서버가 존재하는 구성이 되겠죠. 이 경우 공격에 노출될 가능성이 보다 높아지게 됩니다.

무엇보다 하나가 뚫리면 내부 서버나 단말기들도 공격을 당할 가능성이 매우 높아지는 구성을 갖게 되죠.


그래서 우리는 관리를 pfSense 라는 방화벽이자, 가상의 라우팅 서버를 구성하여 논리적 망분리를 구성할 것입니다.

이렇게 되면 "외부 - 모뎀 - 공유기 - 가상화서버(ESXi) - pfSense" 까지의 연결 구조가 만들어지게 됩니다. 그런데 보통 서버를 만들면 항상 빠지지 않고 만들게 되는 서버가 존재하죠. 웹서버 입니다. 물론 웹 서버를 좀 쓰다보면 데이터베이스 서버를 사용하게 되기도하고... 여기서 별도의 DB서버를 구축하는 것까지 다룰지는 모르겠습니다만, 보통은 일반 개인이 쓰기에는 웹서버와 DB서버를 일체로 만들기도 하니 그건 나중에 다루기로 하죠.


아무튼 우리는 가상의 NAT 구성을 만들겁니다. 실제 운영을위한 Live 망과, 내부적으로 개발이나 테스트 목적으로 구축할 수 있는 Developments(가정) 망이 되겠습니다. 이렇게 구성을 하는 이유는 이렇습니다. 만약 논리적 망분리가 이루어지지 않은 네트워크 환경에서 해킹공격을 당해서 Prod 웹 서버가 공격자에 의해 핸들링이 된다고 합시다. 이 경우 망분리가 되어 있지 않기 때문에 공격자는 Prod 서버의 입장으로 위장하여 Dev 서버에 접근하여 공격을 할 수 있습니다.

그러나 만약 논리적 망분리가 이루어져 있다고 가정하면, 논리적 망분리를 하고 있는 상위개체가 해킹당하지 않는 이상 Production NAT에 있는 Prod 웹 서버는 Developments NAT에 있는 Dev 웹 서버에는 접근을 하지 못해 직접적으로는 해킹시도를 할 수 없는 것입니다.

중요한 것은 이렇게 논리적으로 망분리를 수행한경우 각 망의 특징이나 목적에 대해 명확히 인지하고 이해한 상태에서 사용해야 망분리의 의미를 잃지 않고 사용할 수 있다는 점이죠. 

그리고 우리는 모든 망을 경유하는 하나의 서버를 만들어 볼 예정입니다. 바로 Reverse Proxy 서버를 구축해 볼 예정인데요. 이 Reverse Proxy 는 논리적 망분리가 이루어진 모든 NAT에 다리를 거치고 있어 외부에서 요청된 Domain 등에 따라 접근처리를 해 줄 것이고, 웹 서버가 받는 요청 부하를 줄여줄 수 있도록 고려할 것입니다. (뭐 사실 물리적 서버는 1대인지라 어느정도까지 효율이 있을지 객관적이고 실제 수치에 근거한 테스팅은 못해보았습니다만, 공부한다는 개념으로 보는것도 괜찮을 것 같습니다. 필요하다면 로드밸런싱 구조 및 구축 과정을 연습 해볼 수도 있겟죠.)


그래서 최종적으로 요청에 따라 "외부 - 모뎀 - 공유기 - 가상화서버(ESXi) - pfSense - 웹 서버(Product NAT)" 의 처리가 이루어지는 과정을 만들어 볼 것입니다. 그리고 전달된 요청은 응답을 받아 역순으로 다시 외부로 전달이 되겠죠. 이건 어디까지나 제가 설계한 구조이구요. 진행하는 내용에서 일부 참조를 하셔서 NAT의 수를 늘린다던가, pfSense의 Role 정의는 필요에 따라 커스터마이징 하셔서 자신이 원하는 환경을 구축하시면 되겠습니다.

중요한건 이러한 고려가 이루어지고 이유와 근거를 알고 사용을 해야 효율적이고 효과적인 가상화 서버 구축 및 운용이 되지 않을까 싶습니다.

저보다 전문가이신 분들도 있고 하니 제가 진행하는 부분에서 틀린 부분이 있으면 지적을 해주셔도 좋을 것 같구요.
이 내용은 여기까지~
감사합니다.

※ 졸린와중에 어여 마무리하고 자려고 급히 써서 그런가 내용이 정리가 잘 안되고 개판이네요. 죄송합니다 T.T (수정은 귀찮아서...)




¿Í~ ½ºÅܹÙÀ̽ºÅÜÀ¸·Î ¾î·ÆÁö¾Ê°í ÁÁ³×¿ä µüÁ¦¼öÁØ¿¡¼­µµ ÀÌÇصɼöÀִ±ÛÀÌ³×¿ä ½½½½ ÀÌÁ¦ ¾ÈÀ¸·Îµé¾î°¡¸é »ì¦¾î·Á¿ï¼öÀÖÁö¸¸ ¾Æ¹«Æ° ÁÁÀº °­Á°è¼Ó ±â´Ù¸®°Ú½À´Ï´Ù ~~
     
ÈÞ°¡¿¡ ¾÷¹«¿¡ ¹Ùºü¼­ ¸ø¿Ã¸®°í ÀÖ¾ú³×¿ä ¤Ð¤Ð ´Ù½Ã ¿Ã·Á¾ßÁÒ ¤¾¤¾ ÁÁ°ÔºÁÁּż­ °¨»çÇÕ´Ï´Ù
¿Í ±¸¼ºµµ´Â ¹»·Î ¸¸µç°Ç°¡¿ä; ³Ê¹« º¸±â°¡ ÁÁ³×¿ä ^^;
     
ÆÄ¿öÆ÷ÀÎÆ®·Î ¸¸µé¾ú½À´Ï´Ù~ ¤¾¤¾ ÇãÁ¢Çѵ¥ ÁÁ°Ô ºÁÁּż­ °¨»çÇÕ´Ï´Ù ¤¾¤¾


Á¦¸ñPage 18/28
2016-10   19248   À¯µ¿ÈÆ
2016-10   17534   Å×Å©ÀξÆÆ®21
2016-10   17250   stone92±è°æ¹Î
2016-10   15764   stone92±è°æ¹Î
2016-10   15490   stone92±è°æ¹Î
2016-10   15258   ¿¥ºê¸®¿À
2016-10   13170   stone92±è°æ¹Î
2016-10   18426   À¯µ¿ÈÆ
2016-10   17758   À¯µ¿ÈÆ
2016-10   14472   À¯µ¿ÈÆ
2016-10   14242   Á¦¿ÂÇÁ·Î
2016-08   18851   Å°³×½Ã½º
2016-08   27382   Å°³×½Ã½º
2016-08   16632   Å°³×½Ã½º
2016-08   23055   Å°³×½Ã½º
2016-08   15626   QS¿ÕÅëÅ°¼Õ¡¦
2016-08   23946   ¹é¸¸½º¹°Çϳª
2016-08   28620   ¹Ì³ª¸®³ª¹°
2016-08   25507   ¹Ì³ª¸®³ª¹°
2016-08   19214   ±èȲÁß