내 Ubuntu 서버에서 PPTP VPN을 어떻게 설정합니까?


16

Linode 와 같은 누군가의 Virtual Private Server가 있고 Ubuntu를 실행 한다고 가정하면 Ubuntu 클라이언트가 연결할 수 있도록 PPTP VPN을 쉽게 설정하는 방법은 무엇입니까?

기본적으로 Ubuntu는 이러한 PPTP 네트워크에 연결하도록 제공합니다. 연결하기 매우 쉬운 방식으로 설정하고 싶습니다 (즉, 클라이언트에 패키지를 설치하지 않고).

답변:


28

절대 최소 서버 설정

다음은 Ubuntu에서 기본 PPTP VPN 서버를 실행하는 데 필요한 최소 최소 지침입니다. 그러면 클라이언트는 서버로 VPN을 연결하고 서버를 통해 인터넷으로 전달되도록 인터넷 트래픽을 라우팅 할 수 있습니다. 항상 그렇듯이 전체 문서 를 참조하여 모든 작업을 이해 하십시오 .

먼저 필요한 소프트웨어를 설치하십시오.

sudo apt-get install pptpd

둘째, /etc/sysctl.confip_forward 에서 관련 줄을 주석 해제하여 IPv4 커널에서 활성화 하십시오 .

sudo sed -i -r 's/^\s*#(net\.ipv4\.ip_forward=1.*)/\1/' /etc/sysctl.conf
# Reload the config file to have the change take effect immediately.
sudo -i sysctl -p

셋째, 사설 VPN 네트워크의 사용자가 패킷을 인터넷으로 라우팅 할 수 있도록 NAT를 활성화합니다 (아직 활성화되지 않은 경우).

OUTIF=`/sbin/ip route show to exact 0/0 | sed -r 's/.*dev\s+(\S+).*/\1/'`
sudo -i iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE
# Enable NAT on boot from the rc.local script.
CMD="iptables --table nat --append POSTROUTING --out-interface $OUTIF --jump MASQUERADE"
sudo sed -i "\$i$CMD\n" /etc/rc.local

참고 : 이 안내서에서는 서버에 방화벽이 구성되어 있지 않다고 가정합니다. 서버에 방화벽 (예 : UFW)이있는 경우 대신 관련 문서 를 참조하십시오 .

넷째, 각 VPN 사용자에 대해 / etc / ppp / chap-secrets 파일에 계정을 만듭니다 . 교체 $USER해당 VPN 사용자에 사용할 실제 사용자 이름.

KEY=`head -c 20 /dev/urandom | sha1sum | nawk '{print $1}'`
echo "$USER pptpd $KEY *" | sudo tee -a /etc/ppp/chap-secrets

마지막으로, 당신은 준비가되었습니다 ...

클라이언트 구성

에서 네트워크 관리자 애플릿 을 선택 VPN 연결구성 VPN을 , 다음을 클릭합니다 추가 . 다음 화면에서 VPN 유형으로 PPTP 를 선택한 다음 작성 을 클릭 하십시오 .

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

이 창에서 서버의 / etc / ppp / chap-secrets 파일에 추가 한 사용자 이름 및 키와 함께 서버의 호스트 이름 또는 IP를 입력하십시오 .

이제 고급을 클릭하십시오 .

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

이 창에서 "MPPE (Point-to-Point Encryption) 사용"을 활성화하고 128 비트 보안을 선택하십시오 . MSCHAP 인증 사용을 비활성화하십시오 ( MSCHAPv2 사용 가능).

마지막으로, 클릭 확인저장을 이전 창을 닫습니다.

이제 Network Manager 애플릿 → VPN 연결 로 이동하여 방금 작성한 연결을 선택하여 VPN 연결을 테스트 할 수 있습니다 . VPN 연결에 성공했다는 메시지가 표시되면 IP 확인 웹 사이트 로 이동하여 IP가 서버의 IP로 표시되는지 확인하십시오.

서버에 대한 VPN 연결이 실패했다는 메시지가 표시되면 먼저 클라이언트 설정을 올바르게 입력했는지 확인하십시오. 둘째, 클라이언트가 서버의 TCP 포트 1723에 네트워크로 연결되어 있는지 확인하십시오. 마지막으로 서버 에서 로그 파일 / var / log / messages 에서 추가 정보를 확인하십시오. VPN 연결에 성공했지만 클라이언트에서 웹 사이트를 탐색 할 수없는 경우 pptpd 웹 사이트에서이 유용한 진단 안내서 를 참조하십시오 .

노트

연결된 로컬 네트워크가 192.168.0.0/24 및 192.168.1.0/24 서브넷을 사용하는 경우 PPTP 서버가 기본적으로 사용하기 때문에 문제가 발생할 수 있습니다. pptpd.conf 에서 다른 서브넷을 사용하도록 PPTP를 구성해야합니다 .

다른 많은 구성 변경 사항이 있습니다. 예를 들어, 모든 도메인 이름 조회는 PPTP 서버를 통하지 않고 로컬 DNS 서버를 사용하여 계속 쿼리됩니다. 이 설정과 다른 많은 설정을 변경하는 방법을 알아 보려면 전체 설명서 를 읽어보십시오 .


4

내가 쓴이 튜토리얼 은 당신을 안내 할 것입니다. VPS를 사용하는 사람들이 저지르는 일반적인 실수를 피하는 데 도움이됩니다.

먼저 VPS 패널에 로그인하고 TUN / TAPPPP를 활성화하십시오 . 이러한 옵션이 없으면 ISP에 문의하여 활성화하십시오.

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

먼저이 패키지를 설치하십시오 :

sudo apt-get install pptpd

우리는 VPN이 공개되는 것을 원하지 않기 때문에 사용자를 만들 것입니다.
나는 VI를 사용하고 있으며 NANO 또는 원하는 텍스트 편집기를 사용할 수 있습니다.

vi /etc/ppp/chap-secrets

형식은

[username] [service] [password] [ip]

john pptpd johnspassword *

* 모든 IP 주소에서의 액세스가 허용됨을 의미합니다. 고정 IP 주소가있는 경우에만 IP를 지정하십시오.

PPTPD 설정 편집

vi /etc/pptpd.conf

localip 및 remoteip 설정을 찾으십시오. #이 설정이 실제로 인식되도록 두 가지에 대한 (주석 문자)를 제거하십시오 . localip을 서버 IP로 변경하십시오. 서버 IP를 모르는 경우 VPS 제어판을 볼 수 있습니다.

remoteip은 기본적으로 클라이언트 (VPN에 연결된 컴퓨터)에 할당 될 IP 범위입니다. 예를 들어 192.168.120.231-235의 IP 범위를 원하는 경우 VPN 서버는 192.168.120.232, 192.168.120.233, 192.168.120.234 및 192.168.120.235를 클라이언트에 할당 할 수 있습니다. 이 필드에 사용하려는 것은 당신에게 달려 있습니다.

개인적으로 나는이 설정을 선택합니다 :

localip 10.0.0.1
remoteip 10.0.0.100-200

약 200 개의 클라이언트를 연결할 수 있습니다.

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

ms-dns 8.8.8.8
ms-dns 8.8.4.4

파일 끝에 추가하거나 해당 행을 찾고 주석 처리를 제거하고 원하는 공용 DNS로 IP를 변경할 수 있습니다.

전달 설정

PPTP 서버에서 IP 전달을 활성화하는 것이 중요합니다. 이렇게하면 PPTP로 설정 한 공용 IP와 개인 IP간에 패킷을 전달할 수 있습니다. /etc/sysctl.conf를 편집하고 다음 줄이 없으면 추가하십시오.

net.ipv4.ip_forward = 1

변경 사항을 활성화하려면 다음을 실행하십시오. sysctl -p

iptables에 대한 NAT 규칙 작성

이것은 중요한 부분입니다. VPS를 사용하는 경우 아마도 eth0 대신 venet0을 사용하지 않을 것입니다. ifconfig

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

PPTP 클라이언트가 서로 대화하도록하려면 다음 iptables 규칙을 추가하십시오.

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 eth0 -j ACCEPT

다시 VPS를 사용하는 경우 eth0을 venet0으로 바꿔야합니다.

나는 달리기를 추천합니다

sudo iptables-save

이제 PPTP 서버는 라우터 역할도합니다.

부팅시 VPN 서비스가 시작되도록이 명령을 실행할 수 있습니다

systemctl enable pptpd

재부팅 후에도 규칙이 유지되도록 iptables-persistent를 설치하는 것이 좋습니다.

sudo apt-get install -y iptables-persistent

링크는 어디에도 가지 않을 것입니다. 주로 나는이 도메인 이름을 공개하지 않을 것입니다. 둘째로 내 호스팅 서버이며 세 번째로 나를 믿습니다 : DI 실제로 복사 붙여 넣기 튜토리얼을 할 수는 없습니다 너무 깁니다.
Luka

이 사이트에서 링크 전용 답변을받지 않을까 걱정됩니다. 따라서이 답변은 곧 검토 대기열에 있습니다 (이전 의견의 링크).

잔나 고마워! @Paranoid Panda 그럼 링크가 포함되어 있기 때문에 2 개의 투표가있는 광산 위에서 답변을 제거해야합니다 : P
Luka

1
문제는 여기에 있었다 대답은 링크 만했다. 즉, 어떤 이유로 든 링크가 중단 된 경우 (링크가 중단되지 않더라도) 응답이 유효하지 않게됩니다. 이제 답변이 자기 의존적이되었고 (참조를 위해 링크를 사용하여) 답변은 그저 괜찮습니다. 해당 답변이 게시물처럼 조정되지 않는 한 현재 답변이 삭제되고 있습니다.
Kaz Wolfe

1
튜토리얼을 제작 해 주셔서 감사합니다. 다음에이 길이의 게시물을 만드는 것을 두려워하지 마십시오. 완전히 받아 들일 수 있습니다.
잔나

3

이 튜토리얼을 따르십시오 : 우분투와 PPTP VPN 서버

  1. 소프트웨어 선택에서 OpenSSH 서버 (시스템의 원격 관리) 및 실제 pptpd 패키지의 수동 패키지 선택을 선택하십시오. 예를 들어 컴퓨터를 웹 서버로 사용하려는 경우와 같이 추가 서비스를 원할 경우 추가 소프트웨어를 선택할 수도 있습니다. 보안상의 이유로 저는 일반적으로 중요한 환경에 설치되어있는 경우 사람들이 컴퓨터 당 액세스 가능한 외부 서비스 중 하나만 실행하도록 권장하지만 실제로는 귀하에게 달려 있습니다.

  2. 수동 선택에서 설치되지 않은 패키지> net으로 pptpd를 찾으십시오. 패키지를 설치하려면 선택하고 'g'를 두 번 누르십시오.

  3. 설치를 마치고 시스템을 재부팅하십시오.

  4. 새로 설정 한 시스템에 SSH 연결하여 실행 sudo aptitude update && sudo aptitude safe-upgrade 먼저 모든 패키지를 업데이트하십시오. 필요한 경우 재부팅하십시오.

  5. pptpd.conf 파일을여십시오 : sudo nano /etc/pptpd.conf 하단의 IP 설정을 원하는대로 조정하십시오. 로컬 IP에서 VPN 서버의 로컬 네트워크에 IP를 입력합니다 ( 'sudo ifconfig'를 입력하지 않으면 네트워크 인터페이스와 할당 된 IP가 표시됩니다). 이를 위해 / etc / network / interfaces 또는 라우터 구성에서 고정 IP를 설정하는 것이 좋습니다.

  6. 원하는 경우 다음에서 호스트 이름을 변경할 수 있습니다 /etc/ppp/pptpd-options

  7. VPN에 액세스하려는 사용자 이름과 비밀번호를 지정하십시오. sudo nano /etc/ppp/chap-secrets . 이전 단계에서 호스트 이름을 변경 한 경우 지금 동일한 호스트 이름을 입력하십시오server

    예:

    # client        server  secret                  IP addresses
    eubolist   pptpd   myübersecretpassword   *
    

    pptp에서와 같이 키 파일 보안은 비밀번호에만 의존하지 않습니다. 따라서 긴 (예 : 32 자) 임의의 비밀번호를 선택해야합니다. 여기에서 이러한 비밀번호를 생성 할 수 있습니다.

  8. 이제 ip-masquerading을 설정해야합니다 : sudo nano /etc/rc.local

    'exit 0'이라고 표시된 행 위에 다음 행을 추가하십시오.

    # PPTP IP forwarding
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    

    선택적으로 무차별 대입 공격으로부터 SSH 서버를 보호하는 것이 좋습니다.

    #SSH Brute Force Protection
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
    iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 8 --rttl --name SSH -j
    

    하락

    ( 'exit 0'위에 삽입)

    컴퓨터의 인터넷에 연결하도록 구성된 인터페이스에 따라 'eth 0'을 다른 인터페이스로 변경해야 할 수도 있습니다.

  9. 마지막으로 다음 줄에서 주석을 해제하십시오 /etc/sysctl.conf.

    net.ipv4.ip_forward=1
    
  10. 재부팅

  11. VPN 서버가 인터넷에 직접 연결되지 않은 경우 포트 1723 TCP 및 GRE를 VPN 서버의 LAN IP로 전달해야합니다. 공급 업체별 지침은 라우터 설명서 또는 portforward.com을 참조하십시오. 다시,에 정적 IP를 할당해야 할 수도 있습니다 /etc/network/interfaces.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.