강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

인터넷 공유 (IP Masquerade)

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

icon01.giftitle01.gif


저 자 : 김 성 우

 

IP가 부족하다. 일반인들이 가정에서 PPP를 쓰거나 기업에서 웹 호스팅 서비스를 받는다든지 또는 요즘 각광받고 있는 SOHO(Small Office Home Office)환경에서 네트웍을 사용하고자 하는 리눅서들에게 하나의 IP는 여러 대의 컴퓨터를 사용하기에는 네트워킹의 제약사항으로 다가올 수밖에 없다.
리눅스에서 제공하는 IP Masquerade를 사용하면 IP Address를 할당받지 못한 컴퓨터에서도 여러 가지 네트웍 어플리케이션을 사용할 수 있는데 이것은 리눅스의 커널에서 지원하는 기능이며 계속해서 보완/수정되어가고 있다. 또한 많은 리눅서들이 IP Masquerade를 사용하고 있으며 여러 가지 어플리케이션 사용에 대한 리포트들이 속속들이 보고 되고 있다.
Windows 95나 Windows NT에서도 Wingate라는 상용프로그램을 이용하면 이와 비슷하게 사용할 수 있지만 리눅스에서 제공하는 기능은 더 강력하면서도 Wingate라는 상용에 비해서 아무런 추가 비용없이 사용이 기능하다는 장점이 있다.
자 그러면 하나의 IP로 인터넷에 물려있는 소규모 랜 환경을 만들어보자. 여러분들도 SOHO환경을 만들 수 있다.

[그림 1. 네트웍 구성도]

그림 1은 실제로 응용되는 한 예를 보이고 있는 것이다.
리눅스 박스에는 33600모뎀이 장착되어 있고 이 모뎀을 통하여 국내의 모 ISP(Internet Service Provider : 인터넷 서비스 제공업체)에 연결이 되어 있다. 리눅스, 윈도1, 윈도2에는 각각 NE2000호환 이더넷 카드(흔히 랜 카드라고 부른다)가 장착되어서 UTP로 연결되어 있다. 물론 BNC도 상관이 없다.
위에서 사용한 IP Address인 192.168.x.x는 내부에서만 사용이 가능하도록 할당된 C Class의 IP이므로 이것은 여러분의 취향에 따라서 적절히 선택하면 된다. 위의 그림에서 알 수 있듯이 윈도머쉰들에서 인터넷을 사용하기 위해서는 리눅스를 거쳐야먄 가능한데 일반적인 경우를 보자.

* 내부에서 사용 가능한 IP Address *

class

IP Address

Subnet Mask

A

10.0.0.0 ~ 10.255.255.255

255.0.0.0

B

172.16.0.0 ~ 172.31.255.255

255.255.0.0

C

192.168.0.0 ~ 192.168.255.255

255.255.255.0

 

윈도우에서 하이텔(hoem.hitel.net)로 telnet을 사용하여 연결하고자 한다면 윈도용 telnet 클라이언트로 리눅스(peace.left.com)에 있는 계정으로 접속한 후에 리눅스에 내장된 telnet을 사용하여 외부에 있는 호스트인 하이텔로 접속하여야 한다.
또 요즘 인터넷의 대명사로 불리는 Web의 경우 넷스케이프나 IE같은 웹 브라우저를 사용하는데 윈도우 머쉰에서 웹 브라우저를 직접 사용할 방법이 없다. 이때에는 위와 같이 리눅스박스로 접속한 후에 lynx등의 텍스트 브라우저를 사용해야만 하는데 이는 불편하기 짝이 없는 방법이다. 이해를 돕기 위하여 다음 그림을 보자.

[그림 2. 일반적인 경우]

하지만 리눅스에서 제공하는 IP Masquerade를 이용하면 윈도머쉰에서 바로 인터넷에 연결된 호스트들을 엑세스할 수 있다.
위에서 본 그림 2와 같은 경우에서도 윈도에서 다이렉트로 하이텔에 접속할 수 있는데 이때는 윈도머쉰에서 바로 telnet home.hitel.net이라고 타이핑만 하면 접속이 가능하다. 또한 Netscape이나 Arena 등의 웹 브라우저를 사용하여 인터넷 서핑을 할 수 있다. 아래의 그림을 보자.

[그림 3. IP-Masquerade를 사용한 경우]

위의 그림과 같이 윈도에서 인터넷으로 바로 연결이 되어 윈도머쉰에 설치된 랜플래이가 가능한 게임이나 인터넷 폰 또는 여러 가지 네트윅 어플리케이션들을 사용할 수 있는데 이것이 바로 우리가 사용하고자 하는 IP Masquerade인 것이다. 그러면 이제 IP Masquerade를 사용하여 한껏 자유로움의 바다로 뛰어들어 보도록 하자.

 

1. 요구사항

하나이상의 동적/고정 IP Address를 가진 리눅스박스와 여기에 랜으로 연결된 여러 가지 OS머쉰들이 필요하다. 여기에는 리눅스의 커널 버전은 2.0X 이상의 버전이어야하며 ipfwadm이라는 유틸리티의 2.3이상 버전이 필요하다.
다시 말하자면 최근의 리눅스 배포본과 ISP와의 연결 그리고 윈도 95정도면 충분한 환경이다. 이것은 리눅스를 사용하는 일반유저에게 특별한 사양을 요구하는 것이 아니다.

 

2. 리눅스쪽 세팅

먼저 커널에서 IP Masquerade를 지원하도록 하기 위해 커널을 컴파일하여야 한다. 커널컴파일에 관한 내용은 여기에서는 다루지 않으므로 커널컴파일 관련부분을 참조하기 바란다. 컴파일을 할 때 다른 부분은 일반적인 경우와 다름이 없으며 make config에서 아래와 같은 질문에 모두다 Yes로 답해주기만 하면 된다. 가능하다면 X-window에서 make xconfig으로 설정하고 설정사항을 저장해두면 다시 컴파일할 때 간편하다.

enable loadable module support [Y]
networking support [Y]
networking firewalls [Y]
tcp/ip networking [Y]
ip forwarding/gatewaying [Y]
ip firewalling [Y]
ip masquerading(EXPERIMENTAL) [Y]
ip always defragment [Y]
dummy net driver support [Y]
ipautofw masquerade support [Y]

커널 컴파일 부분을 참고해서 차례대로 컴파일을 한다. 커널 컴파일을 마치고 난 다음 모듈을 컴파일, 설치한다.

make modules; make modules_install

depmod -a
modprobe ip_masq_ftp
modprobe ip_masq_raudio
modprobe ip_masq_irc
.
.
.

위에서 추가로 사용하고자 하는 어플리케이션은 여러분들이 적절히 알아서 추가하면 된다. 예를 들어서 cuseeme를 사용하고자 한다면 modprobe ip_masq_cuseeme라고 추가해주면 된다. 잠깐 사용할 수 있는 어플리케이션에 대해서 알아보자면 ftp, real audio, vdolive, quake, irc, CU-Seeme등이 있는데 이는 /usr/src/linux/modules에서 확인해볼 수 있다.
이제 커널 컴파일 부분은 모두 끝났다.
다음으로는 리눅스에 연결되어 있는 다른 클라이언트들을 인식하기 위해서 /etc/hosts를 다음과 같이 수정하도록 하자.

copyleft:/etc]# cat hosts
 

127.0.0.1

localhost

localhost.localdomain

192.168.0.1

peace.left.com

peace /* linux */

192.168.0.10

nox.left.com

nox /* windows 1 */

192.168.0.20

copy.left.com

copy /* windows 2 */


copyleft:/etc]#

127.0.0.1은 로컬호스트로 자기 자신을 가리킨다는 사실은 모두 알고 있을 것이다. 그 아래에는 자신이 사용하고자 하는 호스트를 모두 적어주면 된다. 세 번째 칼럼에 오는 것은 alias로 풀호스트네임 대신에 자신이 원하는 별명을 줄 수 있다. 만약 여러분이 하이텔을 자주 사용하며 하이텔 IP를 네임서버에서 참조하는 것이 아니라 hosts파일에서 참조하고 싶다면 다음과 같이 추가해줄수도 있다.

203.245.15.250 home.hitel.net hitel

그 다음부터는 일일이 telnet home.hitel.net이라고 할 필요가 없고 telnet hitel만으로도 연결이 가능하다. 이것으로 리눅스쪽에서 설정해주어야 할 것들에 대해서 알아보았고 윈도쪽에 대해서 알아보도록 하자.

 

3. 윈도쪽의 세팅

윈도우에서는 특별히 세팅해줄 것이 없다.
먼저 네트웍을 사용하기 위해서 TCP/IP Protocol을 설치해주고 리눅스를 통해서 외부로 나간다는 것을 알려주기만 하면 된다. 그러면 아래의 설명과 그림을 보고 하나하나 설정해보록 하자.

3.1. 바탕화면의 네트워크 환경에서 마우스 오른쪽 버튼을 눌러서 등록정보를 선택하던지 또는 제어판에 있는 네트워크를 선택한다.

3.2. 설치된 네트웍 구성요소에서 TCP/IP프로토콜이 설치되어 있는지를 확인한 후에 없다면 "추가"-"프로토콜"-"추가"-"Microsoft"-"TCP/IP"를 눌러서 추가한다.

3.3. TCP/IP를 추가한 후에 더블클릭하여 등록정보창을 연다.

3.4. IP주소 탭에서 할당된 IP주소사용을 체크하고 IP주소와 서브네트 마스크를 적어둔다. IP주소는 리눅스에서 설정한 대로 적어주면 된다. 위의 /etc/hosts에 적어준 192.168.0.10을 그리고 서브네트 마스크는 C class인 255.255.255.0을 적는다.

3.5. 게이트웨이 탭을 선택하여 리눅스박스의 IP를 적어준다. 리눅스 박스는 192.168.0.1이므로 이를 적어주고 "추가"를 누른다.

3.6. 확인을 두 번 눌러서 다시 부팅한다.

3.7. 도스창을 열고 다음과 같이 입력해보자. ping 192.168.0.1
위에서 192.168.0.1은 리눅스의 IP Address이며 리눅스와 정상적으로 통신을 하는지 점검한다. ms단위로 응답이 있으면 정상적으로 랜이 작동하는 것이나 아무런 응답이 없다면 하드웨어적으로나 소프트웨어적으로 잘못된 부분이 있으니 다시 한번 확인하기 바란다.

 

4. Now! IP-Masquerading...

이제 리눅스와 윈도머쉰의 세팅은 모두 끝이 났다. 그러면 다시 리눅스 박스로 돌아오자. ipfwadm 2.3이상 버전을 사용하여 아래와 같이 명령을 내려보자.

copyleft:~]# ipfwadm -F -p deny
copyleft:~]# ipfwadm -F -a m -S 192.168.0.10/24 -D 0.0.0.0/0
copyleft:~]# ipfwadm -F -a m -S 192.168.0.20/24 -D 0.0.0.0/0
copyleft:~]#

위에서 ipfwadm은 IP Firewall Adminastration이라는 파이어월 관장 프로그램이며 -S 다음에는 윈도우 클라이언트의 IP Address를 적어주면 된다. IP뒤에 따라오는 24는 서브네트마스크이며 여기에서 192.168.0.10은 C Class에 속하므로 24대신에 255.255.255.0을 적어주어도 상관없다.
그러면 정상적으로 세팅이 되었는지 확인하기 위하여 리눅스에서 ISP로 PPP연결을 한 다음 윈도에서 도스창을 열어 다음과 같이 입력해보자.

telnet home.hitel.net

텔넷창이 열리고 하이텔로 접속이 성공하였다면 모든 것이 정상적으로 된 것이다. 만약에 하이텔로 연결이 안된다면 다른 곳으로 연결을 시도해보고 그래도 에러가 발생하면 위의 과정을 다시한번 반복해서 점검해보자.
 

일반적으로 잘 작동하는 클라이언트

HTTP

POP

SMTP

Telnet

FTP

Archie

NNTP

VRML

traceroute

IRC

Gopher

Real Audio

CU-SeeMe


이제 우리가 원하던 인터넷을 마음껏 사용할 수 있게 되었다. 텔넷의 경우에는 이야기나 새롬데이타맨 등을 이용하여 바로 원하는 호스트로 연결이 가능하며 Netscape, Internet exploror등의 웹 브라우저도 사용할 수 있다.
물론 ftp도 문제없이 잘 사용할 수가 있다. 필자의 경우에는 ws_ftp를 사용하는데 혹시 연결이 되고난 후에 에러가 발생하면서 연결이 거부되는 경우에는 아래 그림에서 나타난 바와 같이 apssive transpers를 선택하면 아무런 문제없이 사용할 수가 있다.

[그림 4. ws_ftp에서의 예제]

하지만 모든 윈도용 어플리케이션을 100% 다 사용할 수 있는 것은 아니다. 네트웍 플레이가 가능한 게임이나 인터넷폰, 넷미팅 등 여러 가지 어플리케이션은 정상적으로 작동하지 않는다. 그렇다고해서 전혀 방법이 없는 것은 아니다. 전세계 리눅서들은 불가능을 그냥 보아 넘기지 않기 때문이다. 많은 리눅서들이 이를 가능하게 하기 위하여 여러 가지 어플리케이션 사용방법에 대한 보고를 하고 있다. 그러면 어떻게 사용이 가능한지 그 방법과 또 사용가능한 여러 가지 어플리케이션들에 대해서 알아보기로 하자.

 

5. IP-Masq의 활용.

이제 우리가 원하는 IP공유기법에 대해서 대부분을 알아보았고 그 마지막 단계인 다양한 윈도용 어플리케이션 사용법에 대해서 이야기하기로 하겠다. 여기에서 디아블로를 예로 그 사용법을 알아보자.

디아블로 - Diablo (battle.net)
요즘 네티즌들 사이에 유행하는 게임이라서 굳이 설명하지 않아도 잘 알 것이다. 디아블로를 사용하기 위해서는 ipautofw이라는 유틸리티가 필요한데 이것은
http://www.hwy401.com에서 얻을 수 있다. 다운로드 받은 후에 /usr/local/src에서 풀어준다.

tar xfvz ipautofw.tgz

다음은 커널 컴파일시에 아래와 같은 순서로 해주면 된다.

cd/usr/src/linux
patch -p1 < /usr/local/src/ipautofw/2.0.0/ipautofw-2.0.0.diff
make mrproper
make config
make dep
make clean
make zlilo
cd/usr/local/src/ipautofw/2.0.0
make
make install

이제 디아블로로 랜플레이를 하기 위해서 다음과 같이 ipautofw를 사용하면 된다.

ipautofw -A -r udp 61126112 -c tcp 116
ipautofw -A -r udp 61126112 -c tcp 118

이제 윈도쪽에서 디아블로를 실행하여 네트웍 플레이를 즐겨보자. 이상 디아블로의 경우를 알아보았는데 인터넷폰이나 넷미팅 등의 사용법은 조금씩 다르다. 사용할 수 있는 어플리케이션의 숫자가 아주 많으니 각각의 경우들을 여기에서 일일이 설명할 수는 없으니 그 활용법에 대해서 잘 정리해둔 사이트 http://dijon.nais.com/~nevo/masq에서 직접 그 사용법을 습득하기 바란다. 하지만 절대 어려운 것이 아니니 필요한 어플리케이션이 있다면 직접 시도해보자.

다음은 현재 사용이 가능하다고 보고된 총 93개의 어플리케이션 리스트이다.

IP-Masquerade 관련 웹사이트

Games (15)

1. Diablo (battel.net)
2. QuakeWorld
3. Red Alert
4. SubSpace
5. InterCasino
6. Quake
7. Kali
8. Monopoly
9. Legal Crime
10. Ultima Online
11. Total Annihilation
12. Mplayer Games Network
13. Tanarus
14. Figher Ace Beta
15. Netrek

Chat Programs (18)

1. IRC
2. ICQ
3. CU-SeeMe
4. Internet Phone
5. Speak Freely v6.1b
6. AOL Instant Messenger
7. Westwood Chat
8. VoxChat
9. VDO Phone
10. Microsoft NetMeeting
11. OnLive Traveler!
12. OnLive Talker!
13. Iris Phone 2.5
14. IDT Net2Phone
15. iChat
16. IPhone
17. PowWow
18. VoxPhone 3.0

Utilities (10)

1. SSH
2. DNS behind Masq
3. X-Windows
4. Citrix WinFrame Client
5. Citrix WinFrame Server
6. Remotely Possible v3.2
7. pcAnywhere v7.5
8. Timbuktu Pro
9. Atom Time 95
10. Symantec Live Update

Web Stuff (7)

1. VDO Live
2. Real Audio
3. MS Netshow 2.0
4. Real Player
5. PointCast 2.0
6. VDO Video
7. HTTP behind Masq

Miscellaneous (3)

1. HTTP
2. FTP
3. Telnet
4. NFS
5. SMB
6. CleanSweep 3.0 AutoUpdate
7. Windows Networking
8. FTP behind Masq
9. TheDJ Player
10. PPTP
11. America Online
12. Bottle Mail 1.2
13. IPX

Requests (29)

1. MotoRacer
2. Cool Talk
3. Internet Phone
4. Active Worlds
5. Interstate 76
6. Kali w/o Proxy
7. Hexen 2
8. Kahn 95
9. SuperFTP
10. Streamworks
11. Dark Reign
12. Intel Video Phone
13. NT Logon
14. iChat Pager
15. Ding!
16. Microsoft DirectPlay
17. SQL*NET tools
18. Age of Empires
19. IIS 3.0 FTP
20. mp3-Wolf
21. PGPhone
22. Ultim@te Race
23. wwwoffled 1.x
24. Netscape Conference
25. Microsoft Exchange
26. Myth : The Fallen Lords
27. Connectix Video Phone 2.x
28. Outpost 2
29. Carbon Copy 32

Craveyard (1)

1. IGames

 

http://www.hwy401.com
http://www.wiznet.ca/~ambrose
http://ipmasq.home.ml.org
http://www.indyramp.com/masq
http://dijion.nais.com/~nevo/masq

IP-Masquerade는 아직까지 리눅스에서 공식적으로 완성되어 제공하는 기능이 아니다. 지금도 여기에 대한 많은 노력을 하고 있으며 아마도 멀지 않은 시점에 아주 간단하게 사용할 수 있는 대안이 제시될 것이다. 나날이 일취월장하는 리눅스가 언젠가는 OS계의 대부로 군림할 날이 올 것이라고 믿어 의심치 않는다.

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,041 명
  • 현재 강좌수 :  35,843 개
  • 현재 접속자 :  170 명