Ubuntu를 VPN 서버로 설정하는 가장 쉬운 방법


68

인터넷에 VPN 클라이언트 및 서버 설정에 대한 많은 자습서가 있다는 것을 알고 있습니다.

나는 당신이 simple / short 하나를 발견 하고 서버 부분에만 관심이 있습니다.

클라이언트의 경우 OS X를 사용 하므로 Cisco IPsec에 비용이 드는 것으로 가정 L2TP over IPsec하거나 사용하는 솔루션을 선호합니다 PPTP.

설정하는 데 너무 많은 시간을 보내고 싶지 않습니다. 아마 누군가 이미 설정 스크립트를 만들었을 것입니다 :)

참고 : Ubuntu 12.04를 실행하는 EC2 마이크로 인스턴스를 사용하고 있습니다.


3
참고 : CISCO IPSec은 StrongSwan 및 많은 구성을 통해 달성 할 수 있지만 까다 롭습니다. PPTP는 더 이상 안전하지 않습니다. IPSec을 통한 ANd L2TP에는 L2TP 및 IPSec 구성이 모두 필요합니다. 내 대답에 PPTP가 설명되어 있지만 여가를 선택하십시오.
Thomas Ward

답변:


24

업데이트 : Sierra에서 macOS는 더 이상 PPTP vpn을 지원하지 않습니다. 이 답변은 macOS 클라이언트 Sierra 이상에서는 유효하지 않습니다.

PoPToP를 통한 PPTP는 쉽다

  1. apt-get install pptpd
  2. /etc/pptpd.confremoteip 옵션을 편집 하여 DHCP 서버가 제공하지 않는 네트워크 범위로 설정하십시오.
  3. /etc/ppp/chap-secrets사용자 이름 및 비밀번호 편집 및 추가

예 :

vpnuser pptpd vpnpassword *

이것이 pptp를 설정하는 데 필요한 전부입니다. 이제 OS X 클라이언트로 테스트하십시오.


또한 어느 위치에서나이 서버에 연결한다는 점을 고려할 때 어떤 localip 및 remoteip 값이 가장 안전한지 궁금합니다. 의 definetly와 디폴트 값 192.168.0.192.168.1.아마 최악 중 하나입니다.
sorin

5 월 12 일 13:28:06 zork pppd [9447] : 플러그인 /usr/lib/pptpd/pptpd-logwtmp.so가로드되었습니다. 5 월 12 일 13:28:06 zork pppd [9447] : pppd 2.4.5 루트로 시작, uid 0 5 월 12 일 13:28:06 zork pppd [9447] : 인터페이스 ppp0 사용 5 월 12 일 13:28:06 zork pppd [9447 ] : 연결 : ppp0 <-> / dev / pts / 3 5 월 12 일 13:28:36 zork pppd [9447] : 끊기 (SIGHUP) 5 월 12 일 13:28:36 zork pppd [9447] : 모뎀 끊기 5 월 12 일 13 : 28 : 36 zork pppd [9447] : 연결이 종료되었습니다. 5 월 12 일 13:28:36 zork pppd [9447] : Exit. 아직 작동하지 않습니다! 귀하의 가이드가 불완전합니다 (아직);)
sorin

그래,이 작동하지 않습니다.
bkerensa 2016 년

1
나를 위해 일하지 않았다
Tyler Gillies

@SorinSbarnea 해당 IP는 개인 정보이며 인터넷을 사용하지 않으므로 "가장 안전"하다는 것이 무엇인지 모르겠습니다. 카페 나 연결하는 직장과 같은 IP 범위가 아닌 경우 가장 좋은 결과를 얻을 수 있습니다. 192.168.42. * 시도해보십시오.
Jay _silly_evarlast_ Wren

86

경고 : PPTP는 보안 프로토콜입니다! 암호화가 위반되었을뿐만 아니라 인증이 일반 텍스트로 전송되어 쉽게 가로 챌 수 있습니다. 암호를 무차별 처리하는 데 필요한 시간은 단일 DES 키를 무차별 강제로 처리하는 데 걸리는 시간과 거의 같습니다. PPTP 대신 OpenVPN 또는 다른 VPN 아키텍처를 사용해보십시오!

내가 사용 이 가이드를 내 우분투 12.04 서버에 PPTP VPN 서버를 설정할 수 있습니다.


링크의 요점을 요약하면 다음과 같습니다.

1 : 설치 pptpdufw. iptablesufw 대신 사용할 수 있지만, 쉽게 ufw알 수 있도록하는 것이 좋습니다 iptables.

sudo apt-get install pptpd ufw

2 : 필요한 포트를 엽니 다. 이 가이드에서는 pptp vpn에 22 (SSH) 및 1723을 제안합니다.

sudo ufw 허용 22
sudo ufw 허용 1723
sudo ufw 활성화

3 : 편집 /etc/ppp/pptpd-options. 좋아하는 편집기 (mine의 nano, 그래서 명령은 sudo nano /etc/ppp/pptpd-options)로 파일을 열고 #모든 OS에서 보편적으로 작동하려면 앞에 줄을 넣어서 주석을 주석 처리하십시오 .

거절하다
거절하다
거부하다

암호화를 비활성화하려면이 줄에 주석을 달 수 있습니다. require-mppe-128

4 : 편집하는 동안 /etc/ppp/pptpd-optionsVPN의 DNS 서버를 추가하십시오. 이 예는 OpenDNS 서버를 사용합니다.

ms-dns 208.67.222.222
ms-dns 208.67.220.220

5 : 편집 /etc/pptpd.conf. 좋아하는 편집기로 파일을여십시오 (나의 나노이므로 나에게 필요한 명령은 sudo nano /etc/pptpd.conf). 시스템의 로컬 VPN IP를 추가해야하므로 다음을 추가하십시오.

localip 10.99.99.99
remoteip 10.99.99.100-199

시스템이 VPS 인 경우 "localip"에 퍼블릭 IP를 사용하십시오. 로컬 네트워크에 있지 않고 로컬 네트워크에있는 경우 컴퓨터의 네트워크 IP를 사용하십시오. 서브넷에 이러한 IP가 존재하면 다른 IP와 범위를 사용하십시오! VPS의 공개 IP를 모르는 경우 다음을 실행하여 찾으십시오.dig +short myip.opendns.com @resolver1.opendns.com

6 : 편집 /etc/ppp/chap-secrets. 즐겨 사용하는 편집기 (mine의 nano이므로 명령은 sudo nano /etc/ppp/chap-secrets)로 파일을 열고 인증 데이터를 추가하십시오.
형식 /etc/ppp/chap-secrets은 다음과 같습니다.

[사용자 이름] [서비스] [비밀번호] [허용 된 IP 주소]

예를 들면 다음과 같습니다. sampleuser pptpd samplepassword *

7 : pptpd를 다시 시작하십시오. 터미널에서이 명령을 실행하십시오.sudo /etc/init.d/pptpd restart

8 : 편집 /etc/sysctl.conf. 좋아하는 편집기로 파일을여십시오 (나의 나노이므로 나에게 필요한 명령은 sudo nano /etc/sysctl.conf). 합니다 (를 제거하여 다음 줄을 취소합니다 주석 #에의 시작 부분에) /etc/sysctl.conf: net.ipv4.ip_forward=1
구성을 다시로드 : sudo sysctl -p

9 : 이 단계에서는 ufw가 있다고 가정합니다. 옵션을 에서 다음 으로
수정 /etc/default/ufw및 변경DEFAULT_FORWARD_POLICYDROPACCEPT

10 : 이 단계에서는 ufw가 있다고 가정합니다.
편집 하고 규칙 /etc/ufw/before.rules의 시작 /etc/ufw/before.rules또는 *filter규칙 바로 앞에 다음을 추가하십시오 (권장).

# NAT 테이블 규칙
* nat

: 접수 수락 [0 : 0]
# eth0에 앞으로 트래픽을 허용
-포스트 라우팅 -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# NAT 테이블 규칙 처리
범하다

커널 버전 3.18 이상이있는 경우 (을 실행하여 확인할 수 있음 uname -r) 행 앞에 다음 행을 추가하십시오 # drop INVALID packets ....

-A ufw-before-input -p 47 -j ACCEPT

11 : 방화벽을 다시 시작하여 규칙 세트를 새로 고치고 /etc/ufw/*.rules파일에 추가 한 규칙을 적용하십시오 . sudo ufw disable && sudo ufw enable

경고 : 서버에서 웹 사이트를 호스팅하는 경우 HTTPS와 같이 다른 포트를 열어야하는 경우 해당 포트를 허용 된 목록에 개별적으로 추가해야합니다.sudo ufw allow <PORT>


4
이제 도대체 내가하는 일 : D 서버에서 작업하고 있는데 어떻게 연결
해야할지 모르겠다.

1
@Jamie Network Manager 내부의 문서를 언급하지 않고 VPN에 연결하는 데 대한 Ask Ubuntu의 다른 문서 및 항목이 많이 있습니다. 이 질문은 VPN 설정과 서버 측에만 적용됩니다. 연결 부분이 아닙니다.
토마스 워드

: D 초고속 응답 : DI 나는 그것을 해결했을 수도 있다고 생각합니다. 잘못 설정했을 것입니다. 이것은 ufw가 활성화되어 있으며 대부분의 포트를 허용한다고 말했습니다. 나는 iptables와 함께 연주합니다 이것이 어쨌든 나를 얻을 수 있는지
Jamie Hutber

@Jamie 나는 당신이 집에 도착했을 때 사용할 iptables 명령을 줄 수 있습니다.
토마스 워드

1
iptables / netfilter는 ufw와 함께 사용되며, ufw는 최종 사용자를위한 규칙과 명령 처리 기능이 더 좋습니다.
토마스 워드

19

Ubuntu 12.04의 PPTP VPN 예

다음은 Ubuntu 12.04에서 기본 PPTP VPN 서버를 설정하는 빠른 자습서입니다.

필요한 패키지 설치

                          sudo apt-get install ppp pptpd

서버에서 PPTP IP 범위 구성

                          sudo nano /etc/pptpd.conf

끝에 다음 줄을 추가하십시오

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

이렇게하면 IP 범위 10.89.64.100 ~ 10.89.64.150을 PPTP 클라이언트에 배포하면서 IP 10.89.64.1을 사용하도록 PPTP 서버를 설정합니다. 개인 IP 주소이고 서버에서 이미 사용중인 IP 주소와 충돌하지 않는 한 원하는대로 변경하십시오.

클라이언트가이 PPTP 서버에 연결할 때 사용할 DNS 서버 구성

                          sudo nano /etc/ppp/pptpd-options

수정 또는 끝에 다음 줄 추가

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

PPTP 사용자 생성

                          sudo nano /etc/ppp/chap-secrets

파일이 다음과 같이 보이도록 하단에 줄을 추가하십시오.

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

PPTP 연결을위한 NAT 구성

이 단계가 없으면 연결할 수는 있지만이 서버에서 웹 연결을로드 할 수는 없습니다.

                          sudo nano /etc/rc.local

"exit 0"줄 바로 앞에 하단에 다음을 추가하십시오.

                          iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

eth0이라고 가정하면 ifconfig네트워크 이름을 확인할 수 있습니다 .

IPv4 넘기기 활성화 :

                          sudo nano /etc/sysctl.conf

다음 줄의 주석을 해제하십시오.

                          net.ipv4.ip_forward=1

그런 다음 구성을 다시로드하십시오.

                          sudo sysctl -p

VPS를 재부팅하면 모든 PPTP 클라이언트에서 모든 것이 제대로 작동합니다.


클라이언트 측 구성

Mac의 경우 PPTP VPN 연결을 추가했는지 확인하십시오. 또한 인증 설정에서 서버 주소, 계정 이름 및 비밀번호 만 설정하면됩니다. 여기에는 고통이 없습니다.

Linux의 경우 NetworkManager는 VPN 연결을 추가합니다. PPTP VPN 연결을 추가했는지 확인하십시오. 그리고 내가 사용하는 구성은 다음과 같습니다.

PPTP / VPN 클라이언트 연결을 디버그하고 수정하는 방법

여기에 이미지 설명을 입력하십시오

그리고 Windows의 경우

여기에 이미지 설명을 입력하십시오


이 방법은 Ubuntu 12.04 비 서버 에디션에서도 작동합니까? 이 VPN 네트워크에 연결하기 위해 클라이언트가 사용해야하는 IP 번호는 무엇입니까?
Rasoul

네, 당신은 @Rasoul를 VPN에 연결하기 위해 클라이언트에서 서버 IP를 사용할 수 있고, 또한 서버가 아닌 버전입니다
카심

작동하지 않습니다. 우분투 서버 13.04. 클라이언트가 DNS를 찾지 못했습니다.
knutole

@knutole IPTables 규칙이 올바르게 라우팅되고 있는지 확인하십시오. en0 인터페이스가 있고 다른 이름이 지정되어 있지 않은지 확인하십시오. 공개 IP 주소가 표시되어야합니다.
Nick Woodhams

예, 귀하의 예에서 어떤 IP가 서버 IP입니까? 10.89.64.1? 그런 다음 Ubuntu 네트워크 관리자에서 클라이언트는 10.89.64.1을 게이트웨이로 표시합니까?
dranxo

9

이 스레드의 다른 답변은 제 경우에는 부분적인 답변이었습니다. 우분투 12.04.3에서 나를 위해 일한 것은 다음과 같습니다.

sudo apt-get install pptpd

다음을 /etc/pptpd.conf에 추가하십시오 (IP 주소는 중요하지 않으며 ppp0 인터페이스의 IP 주소 일뿐입니다).

localip 10.0.0.1
remoteip 10.0.0.100-200

/ etc / ppp / pptpd-options에 DNS 서버 추가

ms-dns 8.8.8.8
ms-dns 8.8.4.4

IP 전달 활성화

sudo vim /etc/sysctl.conf

이 줄 주석 해제

net.ipv4.ip_forward=1

변경 사항을 저장하다

sudo sysctl -p /etc/sysctl.conf

/ etc / ppp / chap-secrets를 편집하고 다음 형식으로 VPN 사용자를 추가하십시오.

# Secrets for authentication using CHAP
# client    server  secret          IP addresses
username pptpd supersecretpassword *

PPTP 재시작

service pptpd restart

ifconfig기본 인터페이스를 실행 하고 찾으십시오. 제 경우에는 br0 이었습니다 (물리적 머신의 가상 머신이 인터페이스를 공유 할 수 있도록 변경했습니다. 아마도 en0 일 것입니다 )

여기에 이미지 설명을 입력하십시오

iptables 백업

iptables-save > ~/iptables.save

이제 ipconfigs 변경 사항이 ifconfig에 의해 표시되는 기본 인터페이스를 사용하도록하십시오.

iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface br0 -j ACCEPT

시스템을 재부팅 할 때 지속적으로 유지하기 위해;

sudo apt-get install iptables-persistent

클라이언트 컴퓨터에 VPN 추가 (Mac)

시스템 환경 설정> 네트워크> [+]> VPN

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

그런 다음 인증 설정> 비밀번호를 선택한 다음 여기에 비밀번호를 입력하십시오.

여기에 이미지 설명을 입력하십시오


7

다음은 OpenVPN의 고통을 해결해주는 매우 달콤한 프로젝트입니다.

https://github.com/Nyr/openvpn-install

그냥 실행하면 열린 VPN을 설치하고 구성합니다. 결국에는 클라이언트를 설정하는 데 사용할 수있는 client.ovpn 파일이 나타납니다. 꽤 잘 작동하는 것 같습니다.


이런 젠장. 그냥 작동합니다. 왜 널리 인식되지 않는지 궁금합니다.
Marcus
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.