Vpnc/ko

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Vpnc and the translation is 55% complete.
Outdated translations are marked like this.
Other languages:
English • ‎español • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어


이 문서는 연결 관리 프로그램 vpnc를 활용하여 시스코 VPN 집중화 장비에 워크스테이션을 연결하는 방법을 자세히 다룹니다.

도입부

이 글을 읽는다면 가정에서나 여행중이든 사무실 네트워크망에 연결해야 할 경우일겁니다. 대부분의 회사에서는 Cisco 3000 VPN 집중화 장비를 VPN 기능이 필요한 곳에 활용하고 있고, 대부분의 리눅스 생초보가 윈도우를 사용하도록 강요 받으리라 생각합니다. 글쎄요. 이 문서는 시스코 VPN 장비에 연결하는 방법을 정말 가능하게, 젠투 워크스테이션 내지는 랩톱에서 터널링을 충분히 동작하게끔 하는 방법을 안내합니다.

이 문서에서 취급하는 내용

  • vpnc 기본 동작 안내
  • VPN에 관련된 DNS 및 라우팅 문제 논의
  • VPN 세션 관리 예제
  • 쓸모 있는 (기대되는) 요령

이 문서에서 취급하지 않는 내용

  • VPN/암호화 기술 심층 안내
  • vpnc에 대한 기능별 설명

가정

여기서 가정할 사항은:

  • 젠투를 설치했음
  • 인터넷에 연결했음
  • Cisco 3000 VPN 집중화 장비에 연결했음
  • 새 커널을 설정, 빌드, 설치하는 방법을 이미 알고 있음

설치

커널

리눅스에서 VPN 연결을 개방할 수 있으려면 커널에서 Universal TUN/TAP device driver support 항목을 활성화해야합니다. 이게 뭐고 왜 필요할까요? 아래에 커널 설정 상자에서 비교적 간단한 설명을 보여드리겠습니다:

코드 TUN/TAP 장치 드라이버(CONFIG_TUN) 활성화
TUN/TAP provides packet reception and transmission for user space
programs. It can be viewed as a simple Point-to-Point or Ethernet
device, which instead of receiving packets from a physical media,
receives them from user space program and instead of sending packets
via physical media writes them to the user space program.
  
When a program opens /dev/net/tun, driver creates and registers
corresponding net device tunX or tapX. After a program closed above
devices, driver will automatically delete tunXX or tapXX device and
all routes corresponding to it.

When a program opens /dev/net/tun, driver creates and registers corresponding net device tunX or tapX. After a program closed above devices, driver will automatically delete tunXX or tapXX device and all routes corresponding to it. }}

다음 명령을 활용하면 커널에서 TUN/TAP을 지원하는지 확인할 수 있습니다:

root #grep "TUN" /usr/src/linux/.config
CONFIG_INET_TUNNEL=m
# CONFIG_INET6_TUNNEL is not set
# CONFIG_IPV6_TUNNEL is not set
(TUN/TAP enabled as a module)
CONFIG_TUN=m
# CONFIG_8139TOO_TUNE_TWISTER is not set

위에서 보신 바와 같이 CONFIG_TUN=m 설정을 통해 모듈로 컴파일합니다. 설정에서 비활성화했다면 커널 항목 선택에서 활성화하고, 다시 빌드하고, 설치하고, 다시 부팅한 후 다음 단계로 넘어가기 전에 여기로 다시 돌아오십시오.

커널 커널 설정 대화상자의 설정 위치
Device Drivers  --->
  Network device support  --->
    [*] Universal TUN/TAP device driver support

TUN/TAP 기능을 커널에서 바로 지원하도록 빌드했다면, 다음과 같이 dmesg 출력에서 내용을 살펴볼 수 있습니다.

root #dmesg | grep TUN
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky

TUN/TAP 지원 기능을 모듈로 빌드했다면, tun 모듈을 먼저 불러와야합니다:

root #modprobe tun
root #lsmod
Module                  Size  Used by
tun                     7296  0

이제 tun모듈을 불러왔으니 dmesg 출력을 확인해보겠습니다. 다음과 같은 내용을 볼 수 있어야합니다:


root #dmesg | grep TUN
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky

필요 프로그램 설치

Now that a working kernel setup is completed, install the net-misc/vpnc package:

root #emerge --ask net-misc/vpnc

지원하는 여러 USE 플래그를 확인하시고 환경에 제대로 적용했는지 살펴보십시오. 다음 오류로 나중에 몇가지 문제가 생긴다면 hybrid-auth USE 플래그를 활성화해야합니다:

코드 hybrid/cert 모드에서 vpnc 오류 출력
vpnc was built without openssl: Can't do hybrid or cert mode.

설정

다음 부분 진행을 좀더 매끄럽게 하려면, 동작하는 환겨에 대한 설정 예제가 필요합니다. 여기 예시를 보여드리기 위해 여러 대의 컴퓨터를 보유했다고 가정합니다. 모든 컴퓨터는 192.168.0.0 / 255.255.255.0 네트워크에 있습니다. 궁금해할 법한 LAN 환경은 iptables 방화벽, DHCP, 캐싱 DNS, 등을 활용하는 젠투 박스로 동작하며, ISP에서 제공하는 공용 IP 주소 너머로 LAN에 매스커레이딩합니다. 사무실에서 VPN을 가동하게 하고 싶은 LAN에 워크스테이션도 있습니다.

예제에서 워크스테이션 설정은 다음과 같습니다:

파일 /etc/resolv.conf
nameserver      192.168.0.1
파일 /etc/hosts
127.0.0.1       desktop localhost
192.168.0.1     router
192.168.2.2     mediacenter
root #ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:11:2F:8D:08:08
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:2fff:fe8d:808/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3657889 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2305893 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2193722103 (2092.0 Mb)  TX bytes:1415104432 (1349.5 Mb)
          Interrupt:185 Memory:fac00000-0
  
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:35510 errors:0 dropped:0 overruns:0 frame:0
          TX packets:35510 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:16023838 (15.2 Mb)  TX bytes:16023838 (15.2 Mb)
root #netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.0.0     *               255.255.255.0   U         0 0          0 eth0
loopback        desktop         255.0.0.0       UG        0 0          0 lo
default         router          0.0.0.0         UG        0 0          0 eth0

vpnc

이제 vpnc를 설치했고 동작하는 예제를 적용했으니 vpnc 설정 방법의 기초를 다루어보겠습니다. vpnc 설정 파일은 설정할 프로파일을 얼마나 두느냐에 따라 몇 군데에 놓을 수 있습니다. 기본적으로 vpnc/etc/vpnc/default.conf에서 연결 설정을 찾습니다. 파일이 없으면 /etc/vpnc.conf 에서 찾습니다. 이 설정은 단일 프로파일 예제를 다루며 /etc/vpnc.conf 설정 파일 위치를 활용합니다. /etc/vpnc/default.conf 파일이 없는 지 확인하십시오.

파일 /etc/vpnc.conf
IPSec gateway vpngateway.domain.org
IPSec ID group_id
IPSec secret group_password
Xauth username network_signon
Xauth password network_password

위에서 보여드린 설정 파일 예제를 여러분이 진행하는 설정 과정에서 적당한 값으로 바꾸어야합니다. vpngateway.domain.org 게이트웨이 옵션은 완전한 도메인 이름 또는 IP 주소가 될 수 있습니다. ID와 비밀 옵션은 네트워크 관리자가 제공해야합니다. 만약 이 정보를 제공받을 수 없지만 공식 시스코 VPN 클라이언트를 활용하는 윈도우 머신에서 설정을 보유하고 있다면 해당 프로파일을 내보내기만 하면 됩니다. 사용자 이름 및 암호 옵션은 윈도우 NT 도메인 계정처럼 일반 네트워크 접속에 활용합니다.

윈도우 머신에서 프로파일을 끌어냈다면, .pcf란 파일이 나왔을 겁니다. 이 파일은 필요한 모든 정보가 들어있습니다. 아래는 내용의 예제입니다:

파일 profile.pcf
[main]
Description=
Host=VPNGATEWAY.DOMAIN.ORG
AuthType=1
GroupName=group_id
GroupPwd=
enc_GroupPwd=F3256220AA200A1D532556024F4F314B0388D48B0FBF2DB12
EnableISPConnect=0
ISPConnectType=0
ISPConnect=FOOBAR
ISPCommand=
Username=
SaveUserPassword=0
UserPassword=
enc_UserPassword=
NTDomain=
EnableBackup=0
BackupServer=
EnableMSLogon=1
MSLogonType=0
EnableNat=1
TunnelingMode=0
TcpTunnelingPort=10000
CertStore=0
CertName=
CertPath=
CertSubjectName=
CertSerialHash=00000000000000000000000000000000
SendCertChain=0
VerifyCertDN=
DHGroup=2
ForceKeepAlives=0
PeerTimeout=90
EnableLocalLAN=0
EnableSplitDNS=1
ForceNetLogin=0

위 예제에서 Host , GroupName, enc_GroupPwd 항목을 볼 수 있습니다. UsernameUserPassword 는 설정에 따라 가져오거나 아니면 가져오지 않을 수도 있습니다. 동작하는 vpnc 설정을 만들려면 vpnc를 넣은 pcf2vpnc를 활용할 수 있습니다.

참고
최신 vpnc에 들어있는 cisco-decrypt 프로그램으로 암호 해독 도움을 받을 수 있습니다.

설정 시험

이제 제 위치에 설정을 저장했으니 설정을 시험해 볼 차례입니다. vpnc를 시작하려면 다음을 따르십시오:

root #vpnc
Enter password for username@vpngateway.domain.org:
VPNC started in background (pid: 14788)...

명령 출력에서 보시는 바와 같이 (루트 계정으로) vpnc를 실행하면 암호를 물어봅니다. 암호를 입력하고 나면, 입력한 암호가 나타나지 않는데 vpnc 프로세스는 자동으로 백그라운드 프로세스로 전환합니다.

참고
vpnc 설정 파일에서 Xauth password 옵션을 지정했다면 vpnc를 시작할 때 암호를 물어보지 않습니다. 또한, vpnc 에서 설정 파일에 지정하지 않은 일부 추가 옵션이 필요하거나 뭔가를 까먹었다면 물어볼테니 걱정하지 마십시오.
root #ifconfig -a
eth1      Link encap:Ethernet  HWaddr 00:11:2F:8D:08:08
          inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::211:2fff:fe8d:808/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2101119 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1577559 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1757862627 (1676.4 Mb)  TX bytes:732200131 (698.2 Mb)
          Interrupt:177 Memory:faa00000-0
  
sit0      Link encap:IPv6-in-IPv4
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
  
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet addr:192.168.160.42  P-t-P:192.168.160.42  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1412  Metric:1
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:60 (60.0 b)  TX bytes:616 (616.0 b)
root #netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
vpn01.domain.or router          255.255.255.255 UGH    1500 0          0 eth1
192.168.0.0     *               255.255.255.0   U         0 0          0 eth1
loopback        desktop         255.0.0.0       UG        0 0          0 lo
default         *               0.0.0.0         U         0 0          0 tun0

위의 명령 출력에서 보신 바와 같이 vpnc에서 다음의 역할을 처리했습니다:

  • VPN 터널을 통하는 트래픽을 처리하는 가상 tun0 네트워크 인터페이스를 만듬
  • VPN 제공자로부터 tun0 장치의 IP 주소를 가져옴
  • VPN 게이트웨이에 기본 라우팅 정보를 설정

여기서, 워크스테이션은 VPN으로 호스트간 통신을 수행할 수 있습니다. vpnc가 VPN 게이트웨이의 기본 경로를 설정하기 때문에, 추가 경로로 인터넷이나 다른 곳을 따로 지정하지 않아도, 모든 네트워크 트래픽은 VPN을 거쳐 돕니다. 어떤 경우에는 연결 기본 형식으로 충분하겠지만 대부분의 경우 추가 과정이 필요합니다.

붙여볼만한 추가 기능은:

  • VPN용 DNS
  • VPN 가상 터널 아래로만 트래픽을 거쳐가게 하는 경로 설정. 이 방법을 쓰면 VPN에 연결한 상태에서도 개인용 웹/p2p 등을 활용하지 않고 인터넷을 탐색할 수 있습니다. 트래픽은 터널을 거칩니다.
  • vpnc가 기본적으로 원하는 작업을 충분히 수행하지 않으므로, 이 모두를 관리하는 스크립트

VPN 세션을 끝낼 준비가 되었다면 vpnc-disconnect를 실행하십시오. 예제는 아래에 있습니다.

참고
추가로 시험해봐야 할 건이 있으니 아직은 끊지 마십시오. 아래 예제는 그냥 알려주는 목적일 뿐입니다.
root #vpnc-disconnect
Terminating vpnc daemon (pid: 26250)

DNS 설정

불행하게도 vpnc 에서는 새로 구축한 터널의 DNS를 설정하거나 관리할 수 없습니다. 사용자는 DNS를 처리하는 방법을 결정할 수 없습니다. 연결할 때 트래픽이 VPN 터널을 거쳐가는지 여부는 상관 없이 모든 DNS 요청에 대한 VPN DNS를 활용하는 /etc/resolv.conf를 덮어쓸 수 있습니다. 이 방식은 매우 기능적인 해결책이며 터널 연결만 필요하다면, 직접 처리하고, 끊은 다음, 더 이상의 내용은 읽지 마십시오. 허나, 상당히 긴 시간동안 터널에 연결한 채로 둘 수 있도록 하고 싶고, 개별 드래픽에 대한 요청을 처리하도록 DNS 서버를 동작하게 하겠다면, 계속 읽어내려하십시오.

이상적인 설정은 DNS 설정을 VPN 관련, 기타 두가지로 분류할 수 있게 합니다. 이 설정 과정에서 VPN 관련 DNS 요청은 VPN 터널의 반대편 종단에 있는 DNS 서버에서 응답하며 기타 모든 요청은 로컬 또는 ISP에 있는 DNS 서버에서 계속 응답합니다. 이는 곧, 여기서 시연할 설정입니다.

참고
VPN 관련 DNS 요청은 host1.example.org 또는 server1.example.org 와 같은 example.org 도메인의 요청으로 간주합니다.

그래서, 어떻게 설정해서 example.org의 호스트의 요청만 DNS 서버가 있는 VPN으로 보낼까요? 글쎄 말입니다. 로컬 DNS 서버를 설치해야 하겠지만 생각보다 꽤 쉬우니까 걱정하지 않으셔도 됩니다. 우리가 원하는 방식의 설정을 처리할 수 있는 프로그램 꾸러미는 상당히 많지만, 시연 의도를 맞추기 위해 dnsmasq를 활용하겠습니다. 이머지 해보죠:

참고
이 DNS 서버 프로그램은 네트워크에 없으며, localhost, 127.0.0.1에서만 요청에 응답합니다.
root #emerge --ask net-dns/dnsmasq

이제 dnsmasq를 시작 옵션에 추가해야합니다. 다음 옵션을 요구에 맞춰 편집하십시오. .example.org 대신 적당한 도메인과 VPN 터널에 붙은 유효한 DNS 서버 IP 주소로 바꾸십시오.

파일 /etc/conf.d/dnsmasq
# See the dnsmasq(8) man page for possible options to put here.
DNSMASQ_OPTS="-S /.example.org/192.168.125.10"

다음, /etc/resolv.conf에 있는 처음 항목이 localhost, 127.0.0.1인지, 그 다음 항목은 dmsmasq 시작에 실패했을 때 DNS 트래픽을 다뤄야 할 백업 DNS 서버의 위치가 따라는지 확인하십시오. 확인하지 않으면 DNS 요청을 포워딩해야 할 때 현재 캐시에 없습니다. /etc/resolv.conf 예제를 아래에 보여드립니다.

파일 /etc/resolv.conf
nameserver 127.0.0.1
nameserver 192.168.0.1

이제 VPN 터널 DNS 규칙을 설정했으니 dnsmasq를 시작해야합니다.

root #/etc/init.d/dnsmasq start
root #rc-update add dnsmasq default

라우팅 테이블

VPN 터널만을 거쳐가는 트래픽이 링크를 거쳐가는 이상적인 가정을 해보겠습니다. 여기서 VPN 터널을 설정했으며, 추가 경로를 지정하기 전 모든 트래픽은 터널을 거쳐갑니다. 이 문제를 바로 잡으려면 VPN에서 어떤 네트워크를 활용할 수 있는지 알아야합니다. 필요한 정보를 찾는 쉬운 방법은 네트워크 관리자에게 물어보는 방법이지만 때로는 일부 질문에 답변하기를 주저하기도 합니다. 로컬 네트워크 관리자가 필요한 정보를 알려주지 않으면, 몇가지를 시도해보고 오류를 찾아봐야 합니다.

VPN 터널을 시작했다면 vpnc에서 터널에 기본 라우팅 정보를 설정합니다. 따라서 일반 기본 라우팅 설정으로 되돌려 기대대로 돌아가게 해야 합니다.

root #route add default gw 192.168.0.1

이전에 VPN의 DNS 서비스를 설정했다면, example.org 도메인을 처리할 DNS 서버를 지정했습니다. 여기에 192.168.125.0 서브넷에 대한 라우팅 규칙을 추가하여 DNS 요청이 동작하게 해야합니다.

root #route add -net 192.168.125.0 netmask 255.255.255.0 dev tun0

여기서, 일려진 네트워크(이를 테면, 192.168.160.0 서브넷의 경우, TUN/TAP 가상 장치에서 받은 IP 주소가 있음)의 추가 라우팅 설정을 추가해야합니다. 친한 네트워크 관리자가 필요한 정보를 줬다면, 그걸로 대박입니다. 안줬다면 자주 연력할 호스트에 ping 명령을 실행하여 라우팅 테이블을 어떻게 갖춰야 할 지 생각해내야합니다.

참고
설정 때문에, VPN 네트워크 서비스를 이름으로 호출하여 사용한다면, webserver1.example.org와 같이 제대로 된 도메인 이름을 지정해야합니다.
root #ping intranet1.example.org
PING intranet1.example.org (172.25.230.29) 56(84) bytes of data.
  
--- intranet1.example.org ping statistics ---
18 packets transmitted, 0 received, 100% packet loss, time 16997ms

위 예제에서 보신 바와 같이 ping은 intranet1.example.org 설정이 제대로 안되어 있음을 보여줍니다. 따라서 서브넷에 라우팅 설정을 추가해야합니다.

root #route add -net 172.25.230.0 netmask 255.255.255.0 dev tun0

몇가지 pingroute 명령을 처리하고 나면, 여러분의 방식대로 제대로 동작하는 라우팅 테이블을 갖춰져 있어야합니다.

연결 관리

필요할 때 vpnc 호출

다음은 VPN 연결을 관리하는 예제 스크립트입니다. VPN을 시작할 때 (루트 권한으로) xterm에서 실행할 수 있습니다. 그 다음 VPN을 끊을 때 Return 키만 누르면 됩니다. 분명히 여러분은 설정을 바꿔야 할테니 여러분이 필요한 부가 경로 추가 설정을 기억해두십시오.

파일 sessionmgmt.sh세션 관리 스크립트 예제
#!/bin/bash
  
source /sbin/functions.sh
  
ebegin "Connecting to the VPN"
vpnc
eend
  
ebegin "Modifying the routing table"
route add default gw 192.168.0.1
route add -net 172.25.230.0 netmask 255.255.255.0 dev tun0
route add -net 192.168.160.0 netmask 255.255.255.0 dev tun0
route add -net 192.168.125.0 netmask 255.255.255.0 dev tun0
eend
  
einfo "Press any key to disconnect ..."
  
read $disconnect
  
ebegin "Disconnecting from the VPN"
vpnc-disconnect
eend
ebegin "Reconfiguring the default routing table"
route add default gw 192.168.0.1
eend
  
einfo "VPN should now be disconnected"

부팅할 때 vpnc 시작하기

vpnc 0.4.0-r1에는 다중 설정을 처리하는 초기화 스크립트 파일( /etc/init.d/vpnc )이 있습니다. 기본 스크립트는 /etc/vpnc/vpnc.conf 파일을 찾지만 대부분의 설정에서는 가능한 생각만큼 많은 설정을 보유합니다. 서비스를 내리고 시작하기 전에 별도로 만든 스크립트는 각각의 초기화 스크립트(0.5.1-r1 부터)의 이름과 연동하여 실행할 수 있습니다. 이름은 -preup.sh , -postup.sh , -predown.sh , -postdown.sh로 끝나며, /etc/init.d/scripts.d/ 디렉터리에 들어있습니다. 일반 이름 형식은 다음 표에 적어두었습니다.

초기화 스크립트 이름 필요한 설정 파일 사전 가동 스크립트 이름
/etc/init.d/vpnc /etc/vpnc/vpnc.conf /etc/vpnc/scripts.d/vpnc-preup.sh
/etc/init.d/vpnc.work /etc/vpnc/work.conf /etc/vpnc/scripts.d/work-preup.sh

다음 명령으로 vpnc를 기본 런레벨에 추가하십시오(이 경우 표준 설정에 한합니다). 잊지 말고 시작시 커널 모듈 자동 적재 기반에(모듈 기반으로 빌드했을 경우) tun 모듈을 추가하십시오.

root #rc-update add vpnc default

설정 파일에 암호를 저장하지 않게 하려면, /etc/conf.d/vpnc 파일을 편집하여 초기화 스크립트에서 모든 출력 및 프롬프트를 표준 출력으로 내보내게 하십시오. 기본으로 디스플레이 화면 출력을 하지 않는 VPNCOUTPUT 변수를 yes 또는 no로 설정하십시오.

참고
초기화 스크립트에서는 DNS 분리를 처리하지 않지만, 개별 스크립트를 활용할 수 있습니다.

요령

그래픽 원격 접근

RDP (Remote Desktop Protocol) 를 지원하는 리눅스 프로그램을 찾는다면 grdesktop를 사용해보십시오. GTK+로 작성한 GUI 앱이며 그놈 데스크톱에 어울리지만 꼭 필요하진 않습니다. grdesktop에서 제공하는 GUI 설정 대화상자가 필요없다면 rdesktop만 설치하십시오. 그러니까, grdesktop은 rdesktop의 프론트엔드일 뿐입니다.

KDE 사용자라면 kvpnc를 사용해보시면 좋겠습니다. 멋진 VPN 관리 GUI를 나타냅니다.

DNS 항목을 설정하지 않은 윈도우 머신에 연결해야 하고 WINS 서버의 주소를 안다면 머신의 호스트 이름으로 WINS 서버를 요청하는 nmblookup 도구를 사용할 수 있습니다. 불행하게도 이 도구를 이용하려면 samba를 설치행해야하지만, 윈도우를 실행하는 장치와 동작하게 한다면 마찬가지로 여러가지 기타 쓸만한 도구가 있기 때문에 삼바를 설치하는게 좋습니다.

root #emerge --ask net-fs/samba

삼바 및 관련 도구를 설치했다면 wintelbox1 호스트에 대해 192.168.125.11 IP 주소의 WINS 서버를 요청하여 nmblookup을 시험해보십시오.

root #nmblookup -U 192.168.125.11 -R 'wintelbox1'
querying wintelbox1 on 192.168.125.11
172.25.230.76 wintelbox1

부팅시 활용하는 개별 정의 스크립트

init.d 파일에 개별적으로 만든 스크립트는 사용자가 vpnc 연결에 지정한 라우팅을 설정하는데 사용할 수 있습니다. 아래 예제에서는 라우팅 테이블을 설정하는 방법을 보여드려 123.234.x.x IP로의 연결만 VPN을 통하고 나머지 연결은 기본 게이트웨이를 거쳐가도록 합니다. 예제에서는 vpnc를 시작하기 전 현재 기본 게이트웨이를 보존하기 위해 work-preup.sh를, 새 기본 게이트웨이를 삭제하고 이전 기본 게이트웨이를 복원하며 vpnc 연결을 활용하여 모든 연결을 123.234.x.x로 라우팅하는 work-postup.sh를 사용합니다.

파일 /etc/vpnc/scripts.d/work-preup.sh
#!/bin/sh
route -n | grep -E '^0.0.0.0 ' | cut -c 17-32 >/var/tmp/defaultgw
파일 /etc/vpnc/scripts.d/work-postup.sh
#!/bin/sh
route del -net 0.0.0.0 netmask 0.0.0.0 dev tun1
route add default gw $(cat /var/tmp/defaultgw)
route add -net 123.234.0.0 netmask 255.255.0.0 dev tun1

예제 스크립트에서는 vpnc 를 연결할 때 tun1을 tun 장치로 활용한다고 가정합니다. 연결 설정 파일에서 장치 이름을 설정할 수 있습니다.

파일 /etc/vpnc/work.conf
Interface name tun1
IPSec gateway vpn.mywork.com
Pidfile /var/run/vpnc.work.pid

외부 자료


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: David H. Askew, Christian Faulhammer, Thomas Fischer, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.