1. 홈서버 시스템의 선택
2. 네트워크 구성과 공유기 설정
3. MacOSX 인스톨
4. 웹서버를 시동해 보자 - MAMP ( MacOSX Apach + MySQL + PHP )
5. FTP를 이용한 파일서버 - LukemFTPd / PureFTPd
6. SSH를 이용한 원격 관리와 터널링
7. GUI 원격관리 VNC
8. Transmission을 이용한 Torrent 공유 ( + FTP 응용 )
9. Windows에서 네트워크 드라이브로 연결해 보자
10. VMware + WindowsXP ( for ActiveX Webhards )


2. 네트워크 구성과 공유기 설정

1부에 이어서 이제는 홈 서버 시스템이 아닌 홈 네트워크의 구성에 대해서 살펴보겠습니다. 우선 몇가지 용어를 설명을 드리고 시작하는 것이 좋을 듯 합니다. 복잡한 이야기는 최대한 빼고 필요한 내용만 간략하게 설명하겠습니다.

WAN (Wide Area Network) :
본래의 개념은 좀 추상적인 것이니 제쳐두고 이 글에서는 외부와 연결이 되는 인터넷 라인이라고 생각하시면 되겠습니다. ADSL/케이블의 경우 해당 모뎀에서 나오는 네트워크 선을 이야기 하는 것이고 광랜과 같은 서비스의 경우에는 직접 외부와 연결되는 인터넷 선을 이야기 합니다.

IP Address :
숫자로 된 주소라고 생각하시면 되겠습니다. 집을 찾아가려면 주소를 알아야 하듯이 서버를 찾아가려면 주소를 알아야 합니다. 그런데 이 주소가 공인 주소가 있고 사설 주소라는 것이 있습니다. 사설 주소라는 것은 192.168.xxx.xxx의 주소를 이야기 하는 것인데 이러한 주소는 보통 하나의 공인 주소를 이용해서 여러사람이 인터넷을 사용하기 위한 공유기에서 주로 사용됩니다. 비유를 하자면 사설 주소는 "안방, 건너방, 화장실" 뭐 이런 정도의 명칭이라고 생각하시면 됩니다. 이런 주소는 그 집이 어딘지 알 때만 소용이 있는 것이지요. 컴퓨터 네트워크에서도 마찬가지 입니다. 사설 주소는 이러한 사설 주소를 사용하는 로컬 네트워크에서만 사용할 수 있습니다. 그리고 아주 특별한 주소가 하나 더 있는데 127.0.0.1이라는 주소가 있습니다. alias로 localhost라고 하는데 이 주소는 다른 컴퓨터가 아닌 자기 자신을 호출하게 됩니다. 심지어 이 주소는 네트워크에 연결이 되어 있지 않더라도 동작을 합니다.

PORT :
위의 WAN, IP는 이 가이드를 읽어보시는 분이라면 그 뜻을 정확히 모르더라도 많이 들어는 보셨을 것이라 생각됩니다. 그런데 PORT는 좀 생소하신 분이 많을 것입니다. 홈 서버를 살펴보면서 자주 등장하게 될 단어인데요, IP의 하위 개념이라고 생각하시면 되겠습니다. 한 컴퓨터는 하나의 IP를 사용하고 (대부분의 경우) 이런 IP를 통한 통신을 하는 소프트웨어들은 PORT를 통해 정보를 주고 받게 됩니다. 즉 실제 데이터의 송/수신은 IP+PORT 정보를 알아야 가능합니다.
예를 들어 http://www.x86osx.com이라는 주소를 웹브라우져에 넣고 실행을 시켰다면 웹브라우져는 http://www.x86osx.com 에 해당하는 IP address를 찾아서 그 주소의 80 PORT로 정보를 보내 줄 것을 요구합니다. 동시에 자신이 정보를 받아야 되기 때문에 받을 주소와 포트도 같이 알려줍니다. 그럼 x86osx.com 서버는 정보를 해당하는 주소와 포트에 보내주게 됩니다.
위의 예시에서 정보를 받게되는 웹브라우져는 자신이 정보를 받을 포트를 알려주게 되어 있음으로 어느 포트를 사용하던 상관이 없습니다. 하지만 서버에 접속하기 위해서는 포트를 알아야 하겠지요? 왜냐하면 앞에서 이야기한대로 주소만으로는 통신이 불가능하기 때문입니다. 그럼 이런 포트는 어떻게 알까요? 사실은 서버에 대한 포트 정보를 모른다면 접속을 할 수 없습니다. 하지만 일일이 서버에 대한 포트를 적기에는 불필요한 낭비가 많기에 일명 "잘 알려진 (Well-known)" 포트라는 것을 정해두었습니다.
대표적인 잘 알려진 포트는 http (80), ftp (21), ssh (22), vnc (5900) 등이 되겠습니다. 이런 종류의 데이터 전송을 하는 프로그램인 경우 사용자가 포트를 별도로 지정하지 않는다면 잘 알려진 포트를 이용해서 서버와 통신을 시도합니다. 물론 잘 알려진 포트가 아니더라도 서버의 운영이 가능하며 접근시에 포트를 지정해 준다면 문제없이 사용이 가능합니다. 간혹 보안의 문제로 잘 알려진 포트를 사용하지 않는 서버도 있으며 인터넷 서비스 업체에서는 이러한 잘 알려진 포트가 웜/바이러스의 공격의 주요 공격 타겟이 되기에 사용이 불가능하게 처리해 놓은 곳도 있습니다.

UTP Cat5, Cat5e, Cat6 :
그냥 랜선이라고 생각하셔도 좋습니다. 다만 기가비트로 구성하는 경우 최소한 Cat5e 이상의 케이블을 사용하셔야 제대로 된 성능을 이용할 수 있습니다.

공유기 :
앞서 이야기 한 대로 하나의 인터넷 회선을 여러대의 컴퓨터에서 사용하고자 할 때 쓰는 장치입니다. 일반적으로 WAN 1포트와 다수의 LAN 포트를 가지고 있으며 WAN은 외부 회선에 연결하고 LAN은 인터넷을 사용하고자 하는 컴퓨터들에 연결해 주면 됩니다.

스위칭허브 :
과거에는 더미 허브와 구분하기 위해서 별도로 스위칭 허브라는 용어를 사용했으나 요즘에는 더미허브를 찾아볼 수 없기에 그냥 허브라는 것은 대부분 스위칭 허브를 의미합니다. 네트워크를 확장하기 위해서 사용되며 각 포트별로 선을 이어주는 역활을 합니다. 기가비트 네트워크를 사용하기 위해서는 랜카드 뿐만이 아니라 스위칭 허브도 기가비트를 지원하는 제품을 사용해야 합니다.


자 그럼 홈 서버를 포함한 홈 네트워크를 어떻게 구성할지 살펴봅시다. 그림으로 보는게 편하겠지요.
home_network.jpg

왼쪽은 공유기만을 이용해 홈 네트워크를 구성한 것입니다. 아직까지는 공유기가 기가비트를 지원하는 경우가 매우 적기 때문에 이 경우 네트워크의 속도는 100Mbps가 한계가 되겠습니다.
반면에 오른쪽은 기가비트 스위칭 허브를 이용하여 네트워크를 기가비트로 운영이 가능하게 구성이 된 것입니다. 인터넷의 속도가 빨라지지는 않지만 로컬 네트워크에서는 기가비트로 데이터가 오가기 때문에 쾌적한 환경을 구성할 수 있습니다. 물론 이 경우 케이블도 Cat5e 이상을 사용해야 제대로 된 기가비트를 사용할 수 있습니다.
그리고 요즘 지어지는 아파트의 경우에는 통신 단자함이 따로 존재하는 경우가 많은데 이 경우 기본적으로 100Mbps 스위칭 허브가 단자함에 설치되어 있으며 이 허브를 이용해서 외부 WAN이 각 방으로 연결되도록 되어 있습니다. 이 경우 본래 설치되어 있는 스위칭 허브로 들어가는 WAN 선을 뽑아서 공유기에 연결하고 공유기에서 나오는 LAN 선 하나를 WAN선을 뽑은 자리에 그냥 꼽아주면 집안 내 LAN 포트에서 인터넷을 사용할 수 있습니다. 주의할 점은 시공되어 있는 LAN Cable이 Cat5인 경우 단자함에 기가비트 스위칭 허브를 설치한다고 해도 케이블에서 손실이 많이 나기 때문에 100Mbps에 비해 큰 속도 증가가 없습니다.


여기까지는 물리적인 네트워크의 구성을 살펴봤고 이제는 서버 사용을 위한 공유기의 설정에 대해 살펴보겠습니다.

서버를 위한 공유기 설정은 사실상 "포트 포워딩 (Port Forwarding)"만 알면 대부분 해결이 됩니다. 외부에서 들어오는 요청에 공유기를 사용하기에 사설 IP를 가지고 있는 서버가 어떻게 응답을 할 것이냐가 홈 서버에서는 문제의 거의 전부라고 생각하시면 됩니다.
포트 포워딩은 공유기가 외부로 부터 받은 요청을 어떻게 처리할지를 결정하는 것입니다. 공인 IP는 공유기가 소유하고 있으며 외부에서는 사설 IP가 안보이기 때문에 외부에서 홈 서버에 접근하기 위해서는 일단 공유기를 거쳐야 합니다. 공유기는 들어온 요청을 어느 사설 IP로 보낼지에 대한 정보가 있다면 요청을 단순히 사설 IP로 연결을 해 줍니다. (포워딩)
설명하자면 복잡하지만 간단하게 공유기에게 내 홈 서버가 뭔지 알려준다고 생각하시면 쉽습니다.

그리고 외부에서 들어오는 모든 요청을 하나의 사설 IP로 모두 전달하게 하는 것도 있는데 이를 DMZ라고 합니다. 일반적으로 DMZ를 서버로 설정하면 서비스 포트를 확인해 가면서 포트 포워딩을 설정해 주는 것 보다 편리하기는 합니다만, 자신도 모르게 보안성이 떨어지는 포트가 서버에 열려있다면 보안에 문제가 될 가능성도 있습니다. 따라서 DMZ 보다는 귀찮더라도 정확하게 알고 설정한 서비스만이 외부에서 접근 가능하도록 포트 포워딩을 이용하는 것이 보안에 더 유리합니다.

공유기의 이런 설정을 하나하나 살펴보며 설명하는 것이 좋겠지만 공유기는 종류도 많고 같은 제조사라도 제품에 따라서 메뉴가 틀린 경우도 많기에 공유기 제조사의 홈페이지를 참고하시면 정확할 듯 합니다.

저는 국내 네트워크 기기 제조사인 EFM의 ipTIME 브랜드의 공유기를 사용하고 있는데 제조사의 홈페이지 FAQ를 살펴보면 서버 운영을 위한 설정법이 안내되어 있습니다.

ipTIME/ipTIME+ 내부서버에 대한 설정하기 - http://iptime.co.kr/zeroboard/iptime_bbs/view.php?id=faq_setup&no=151
ipTIME 공유기 내부서버에 대한 설정하기 - http://iptime.co.kr/zeroboard/iptime_bbs/view.php?id=faq_setup&no=152
*ipTIME 공유기 DMZ 설정하기 - http://iptime.co.kr/zeroboard/iptime_bbs/view.php?id=faq_setup&no=140
 

그런데 홈 서버에 사용되는 회선이 일반 가정용 인터넷이다 보니 잘 알려진 포트가 제한되어있는 경우가 많습니다. 이 경우 공유기를 사용한다면 두 가지 우회방법이 있는데 하나는 공유기의 포트포워딩을 이용하는 방법이고 하나는 서버의 서비스 포트를 바꾸는 방법입니다. 서버의 서비스 포트를 바꾸는 방법은 서버에서 데몬 서비스 포트도 손을 보아야 하는데다가 내부 네트워크에서 사용하는 경우에도 포트를 지정해 줘야하기 때문에 불편한 점이 많습니다. 반면에 공유기의 포트포워딩을 이용한다면 서버 설정을 바꾸지 않아도 되고 내부 네트워크에서는 포트에 대한 고민을 하지 않고 기본포트로 접속이 가능하니 편리합니다.
예를 들어 웹(http) 기본 포트인 80 포트가 인터넷 회선을 제공하는 업체에서 막고 있다면 막혀있지 않는 다른 포트를 이용해서 웹을 호스팅할 수 있습니다. 예로 8888 포트를 사용하고자 한다면 공유기에서 8888번 포트로 들어오는 요청을 홈 서버의 사설 IP의 80포트로 전달하도록 설정한다면 공유기 설정만으로 8888번 포트로 웹 호스팅이 가능해 지고 내부 네트워크에서는 포트에 대한 고려 없이 홈 서버의 사설 IP만을 입력하는 것으로 웹에 접근이 가능합니다.
( 참고로 포트를 지정하는 것은 어플리케이션에서 별도로 입력하는 곳이 마련되어 있지 않다면 [IP주소]:[PORT]로 입력하면 됩니다. 예) http://sukhyun.net:8888 - 포트 8888에서 구동되고 있는 제 홈 서버입니다 )

 

번호 제목 글쓴이 날짜 조회 수
57 rar [823] Shadow 2009.04.29 145304
56 wget [364] Shadow 2009.04.29 81285
55 rox-filer [555] file Shadow 2009.04.14 51463
54 enblend-enfuse-3.2 on MacOSX [216] file Shadow 2009.03.19 52077
53 [펌] PureFtpd - Mysql-auth per user connection limit feature [6633] Shadow 2009.02.25 136873
52 맥이 아닌 machine에서 맥에 SSH 접속시 한글 표시법 [9665] Shadow 2009.02.10 231110
51 제로보드XE 소스코드 수정 부분 [8688] secret Shadow 2009.01.15 0
50 MacOSX System Configurations - MyConf! Shadow 2009.01.04 35925
49 remote X11forwarding from OSX to Windows [6277] Shadow 2009.01.03 151122
48 MacOSX에 ufraw를 설치하자~ [1] [886] file Shadow 2009.01.03 635902
47 XQuartz [5570] Shadow 2009.01.03 127841
46 [펌] CFGetHostUUIDString: unable to determine UUID for host. Error: 35 [5772] Shadow 2009.01.03 121219
45 com.apple.boot.plist & bootloader [6505] Shadow 2009.01.03 121375
44 samba over ssh [9704] secret Shadow 2008.12.30 0
43 lukemftpd 질문에 대한 내 답변 [1] Shadow 2008.12.24 30235
42 Mplayer & Mencoder - Compilation in MacOSX file sukhyun 2008.11.27 25722
41 Media Transcoding (Encoding) : mencoder & codecs [1] sukhyun 2008.11.26 26328
40 [작성중] 홈서버 구성 가이드 - 5. FTP를 이용한 파일서버 - LukemFTPd / PureFTPd [1] file sukhyun 2008.11.19 24799
» [작성중] 홈서버 구성 가이드 - 2. 네트워크 구성과 공유기 설정 file sukhyun 2008.11.15 31260
38 [작성중] 홈 서버 구성 가이드 - 1. 홈서버 시스템의 선택 [4] sukhyun 2008.11.14 29198

사용자 로그인