Create TOC

레이블이 vpn인 게시물을 표시합니다. 모든 게시물 표시
레이블이 vpn인 게시물을 표시합니다. 모든 게시물 표시

2021년 10월 25일

Wireguard client 설정

wireguard 서버는 docker 로 설정했다면 client 설정은 간단하다. 아래는 docker-compose.yml 파일이다.

version: "2.1"
services:
    app:
        image: ghcr.io/linuxserver/wireguard
        cap_add:
            - NET_ADMIN
            - SYS_MODULE
        environment:
            - PUID=1001
            - PGID=1001
            - TZ=Asia/Seoul
            - SERVERURL=test.com #optional
            - SERVERPORT=51820 #optional
            - PEERS=5 #optional
            - PEERDNS=1.1.1.1
            - INTERNAL_SUBNET=10.13.13.0 #optional
            - ALLOWEDIPS=0.0.0.0/0 #optional
        volumes:
            - ./config:/config
            - /lib/modules:/lib/modules
        ports:
            - 51820:51820/udp
        sysctls:
            - net.ipv4.conf.all.src_valid_mark=1
        restart: unless-stopped

wireguard 앱

iOS나 Android의 wireguard 앱을 사용할 경우 아래 명령으로 QR 코드를 출력해서 사용하면 된다.

$ docker-compose exec app /app/show-peer 숫자

linux

w연결을 위해 config/peer숫자/peer1.conf(1은 사용하고자하는 peer 번호를 쓰면 된다) 내용을 /etc/wireguard/mywg.conf(파일 이름은 원하는대로)로 복사해오면 된다.

$ cat config/peer1/peer1.conf

이걸 그대로 /etc/wireguard/mywg.conf 로 복사해서 사용하면 된다. 복사 후 아래 명령으로 연결할 수 있다.

$ sudo wg-quick up mywg

2021년 5월 19일

Debian/Cloudflare Warp VPN 설정

Debian Linux에서 Cloudflare Warp VPN을 사용하는 방법을 기술한다.

설치

아래 패키지를 설치한다.

$ sudo apt install resolvconf wireguard-tools
https://github.com/ViRb3/wgcf에서 wgcf 을 받는다.

VPN 설정

아래 명령을 입력해서 wgcf-profile.conf 파일을 만든다.

$ wgcf register
$ wgcf generate

만들어진 wgcf-profile.conf 파일을 /etc/wireguard에 복사한다.

$ sudo cp wgcf-profile.conf /etc/wireguard

사용 방법

VPN 사용

$ sudo wg-quick up wgcf-profile

curl을 이용해서 연결이 잘 되었는지 확인할 수 있다.

$ curl --silent https://www.cloudflare.com/cdn-cgi/trace | grep warp=
warp=on

VPN 중지

$ sudo wg-quick down wgcf-profile

2016년 12월 19일

Raspbian/L2TP 서버 설정

iOS VPN 정책이 바뀌면서 ipTime의 VPN 기능을 사용할 수 없게 되었다. iOS에서 VPN을 사용할 수 있도록 Raspberry Pi에 L2TP 서버 설정을 한다.

패키지 설치

$ sudo apt-get install openswan xl2tpd ppp lsof rng-tools

네트워크 설정

포트 포워딩

공유기에서 UDP 500, 4500 포트를 Raspberry PI로 포트포워딩 한다.

Raspbian 설정

우선 아래 명령들을 실행한다.

$ sudo -s
# iptables --table nat --append POSTROUTING --jump MASQUERADE
# echo "net.ipv4.ip_forward = 1" |  tee -a /etc/sysctl.conf
# echo "net.ipv4.conf.all.accept_redirects = 0" |  tee -a /etc/sysctl.conf
# echo "net.ipv4.conf.all.send_redirects = 0" |  tee -a /etc/sysctl.conf
# for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
# exit

설정이 잘 되어있는지 확인한다.

$ sudo sysctl -p

부팅시에도 설정이 동작하도록 /etc/rc.local 파일에 아래 내용을 추가한다.

for vpn in /proc/sys/net/ipv4/conf/*; do echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; done
iptables --table nat --append POSTROUTING --jump MASQUERADE

L2TP 설정

openswan 설정

예제 설정을 복사한다.

$ sudo cp /etc/ipsec.d/examples/l2tp-psk.conf  /etc/ipsec.d/l2tp-psk.conf

/etc/ipsec.conf파일을 열어서 맨 마지막에 아래 줄을 추가한다.

include /etc/ipsec.d/l2tp-psk.conf

그리고 protostack 값을 찾아서 아래와 같이 바꾼다.

protostack=netkey

/etc/ipsec.d/l2tp-psk.conf 파일을 열어서 아래 값들을 바꾼다.

conn L2TP-PSK-noNAT
 dpddelay=30
 dpdtimeout=120
 left=
 leftprotoport=17/%any
 forceencaps=yes

conn passthrough-for-non-l2tp
 left=
 leftnexthop=<공유기 내부 IP 주소>

/var/lib/openswan/ipsec.secrets.inc 파일을 편집에서 서버 접속시 사용할 비밀문자열을 지정한다.

192.168.1.112  %any:   PSK "복잡한문자열"

설정에 문제가 없는지 확한다.

$ sudo ipsec verify

xl2tpd 설정

/etc/xl2tpd/xl2tpd.conf파일을 열어 아래 값들을 바꾼다.

[global]
ipsec saref = yes

[lns default]
ip range = <할당하고 싶은 ip 대역. 192.168.0.201-192.168.0.250>
length bit = yes
require chap = yes
refuse pap = yes
name = <적당한이름. MyVPN>
pppoptfile = /etc/ppp/options.l2tpd.lns

아래와 같은 내용으로 /etc/ppp/options.l2tpd.lns파일을 만든다.

ipcp-accept-local
ipcp-accept-remote
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
idle 1800
mtu 1200
mru 1200
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
nodefaultroute
connect-delay 5000

/etc/ppp/chap-secrets 파일을 열어서 접속할 때 사용할 id, 비밀번호를 설정한다.

# Secrets for authentication using CHAP
# client    server  secret          IP addresses

아이디 l2tpd   비밀번호   *

서비스 설정

$ sudo update-rc.d -f ipsec remove
$ sudo update-rc.d ipsec defaults

서비스 재시작

$ sudo /etc/init.d/xl2tpd restart
$ sudo /etc/init.d/ipsec restart

2014년 5월 14일

Windows8.1/ipTime 공유기에 VPN 접속이 안될 때

Windows 8.1에서 ipTime 공유기에 VPN 접속을 시도할 때 아래와 같은 오류 메시지가 나오면서 접속이 안될 때가 있다.

Error 720: A connection to the remote computer could not be established.
You might need to change the network settings for this connection.

이때는 VPN 연결 설정을 수정해야 한다.

  • Control Panel -> Network and Sharing Center -> Network and Sharing Center -> Change adapter settings 로 들어간다.
  • 원하는 VPN 연결의 Properties 창을 띄운다.
  • Properties 창의 Security 탭에서 Data encryptionRequire encryption (disconnect if server declines) 로 변경한다기본 값은 Optional Encryption (connect even if no encryption)이다.

2008년 11월 15일

Debian/CISCO VPN에 접속하기

이 문서는 Debian 에서 vpnc를 이용해 CISCO VPN 에 접속하는 방법을 기술한다.

vpnc 설치

$ sudo apt-get install vpnc

설정 파일 편집

vpnc 설정 파일은 /etc/vpnc 아래에 위치하며 확장자는 반드시 .conf 로 끝나야 한다. 설정파일 형식은 아래와 같다.

IPSec gateway [host]
IPSec ID [group id]
IPSec secret [group password]
Xauth username [auth id]
Xauth password [auth psssword]
Enable Single DES
DPD idle timeout (our side) 0

  1. IPSec gateway 는 VPN 으로 접속할 gateway ip를 적어주면 된다. CISCO VPN Client 설정에서 host 에 해당한다.
  2. IPSec ID 는 CISCO VPN Client의 group id 를 말한다.
  3. IPSec secret 은 ISCO VPN Client의 group password 를 말한다.
  4. Xauth 설정들을 뺄경우 vpnc 를 이용해 VPN에 접속할 때마다 id와 password를 입력해야 한다.
  5. DPD idle timeout (our side) 0 설정을 빼면 연결이 자주 끊어진다.

연결

아래 명령을 이용한다.

$ sudo vpnc [설정파일명]

만일 설정 파일을 mycompany.conf 로 했다면

$ sudo vpnc mycompany

로 연결하면 된다.

연결 끊기

아래 명령을 입력한다.

$ sudo vpnc-disconnect

rdesktop 활용

내 경우 회사의 모든 환경이 Windows 환경이기 때문에 회사의 컴퓨터에 rdesktop 으로 접속해서 사용한다. 이때 rdesktop 을 종료하면 VPN 도 같이 종료하도록 아래와 같은 shell script 를 사용한다.

#!/bin/sh

# vpn 시작
gksu vpnc mycompany
# rdesktop 접속
rdesktop -u userid -k ko -rclipboard:off -g 1152x864 -a 16 -P0 "접속할PC의 ip"
# rdesktop 접속 종료 후 vpn 종료
gksu vpnc-disconnect