Cách dễ nhất để thiết lập Ubuntu làm máy chủ VPN


68

Tôi biết có rất nhiều hướng dẫn trên mạng để thiết lập máy khách và máy chủ VPN.

Tôi tìm thấy một cái đơn giản / ngắn gọn , tôi chỉ quan tâm đến phần máy chủ.

Đối với khách hàng, tôi sẽ sử dụng OS X vì vậy tôi thích một giải pháp sử dụng L2TP over IPsechoặc PPTPvì tôi cho rằng Cisco IPsec sẽ có giá.

Tôi không muốn mất quá nhiều giờ để thiết lập nó. Bạn biết đấy, có lẽ ai đó đã tạo một kịch bản thiết lập :)

Lưu ý: Tôi đang sử dụng một phiên bản vi mô EC2 chạy Ubuntu 12.04 trên nó.


3
Lưu ý: CISCO IPSec có thể đạt được thông qua StrongSwan và rất nhiều cấu hình, nhưng thật khó khăn. PPTP không còn an toàn nữa. ANd L2TP trên IPSec yêu cầu cả cấu hình L2TP và IPSec. Chọn lúc rảnh rỗi, mặc dù câu trả lời của tôi giải thích PPTP
Thomas Ward

Câu trả lời:


24

CẬP NHẬT : Kể từ Sierra, macOS không còn hỗ trợ PPTP vpn. Câu trả lời này không hợp lệ cho các máy khách macOS Sierra và hơn thế nữa.

PPTP qua PoPToP rất dễ dàng

  1. apt-get install pptpd
  2. chỉnh sửa /etc/pptpd.confvà đặt tùy chọn remoteip thành một phạm vi trên mạng KHÔNG được phục vụ bởi máy chủ DHCP của bạn.
  3. chỉnh sửa /etc/ppp/chap-secretsvà thêm tên người dùng và mật khẩu

ví dụ

vpnuser pptpd vpnpassword *

Đây là tất cả những gì nó cần để thiết lập pptp. Bây giờ hãy kiểm tra nó với máy khách OS X của bạn.


Tôi cũng tự hỏi những giá trị localip và remoteip nào là an toàn nhất, xem xét rằng tôi sẽ kết nối với máy chủ này từ bất kỳ vị trí nào. Chắc chắn các giá trị mặc định với 192.168.0.192.168.1.có lẽ là một trong những điều tồi tệ nhất có thể.
sorin

12 tháng 5 13:28:06 zork pppd [9447]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so được tải. 12 tháng 5 13:28:06 zork pppd [9447]: pppd 2.4.5 bắt đầu bằng root, uid 0 May 12 13:28:06 zork pppd [9447]: Sử dụng giao diện ppp0 12 tháng 5 13:28:06 zork pppd [9447 ]: Kết nối: ppp0 <-> / dev / pts / 3 tháng 5 12 13:28:36 zork pppd [9447]: Hangup (SIGHUP) 12 tháng 5 13:28:36 zork pppd [9447]: Modem hangup ngày 12 tháng 5 : 28: 36 zork pppd [9447]: Kết nối bị ngắt. 12 tháng 5 13:28:36 zork pppd [9447]: Thoát. Nó chưa hoạt động! Hướng dẫn của bạn chưa đầy đủ (chưa);)
sorin

Vâng, điều này không hoạt động.
bkerensa

1
không làm việc cho tôi
Tyler Gillies

@SorinSbarnea những ips đó là riêng tư và không bao giờ truy cập internet, vì vậy tôi không biết ý của bạn là "an toàn nhất". Bạn sẽ gặp may mắn nhất nếu họ không cùng dải IP với quán cà phê hoặc nơi làm việc mà bạn đang kết nối. Hãy thử 192.168.42. * :)
Jay _silly_evarlast_ Wren

86

CẢNH BÁO: PPTP LÀ MỘT PROTOCOL KHÔNG ĐẢM BẢO! Mã hóa không chỉ bị vi phạm mà còn gửi xác thực của bạn dưới dạng văn bản rõ ràng và dễ dàng bị chặn. Người ta đã ước tính rằng lượng thời gian cần thiết để bắt bẻ mật khẩu gần tương đương với thời gian cần thiết để bắt buộc một khóa DES duy nhất. Cân nhắc sử dụng OpenVPN hoặc kiến ​​trúc VPN khác thay vì PPTP!

Tôi đã sử dụng hướng dẫn này để thiết lập máy chủ VPN PPTP trên máy chủ Ubuntu 12.04 của mình.


Để tóm tắt các điểm chính trong liên kết, mặc dù:

1: Cài đặt pptpdufw. iptablescó thể được sử dụng thay cho ufw, nhưng vì mục đích dễ dàng, ufwsẽ tốt hơn nếu bạn không biết iptables.

sudo apt-get install pptpd ufw

2: Mở các cổng cần thiết. Hướng dẫn gợi ý 22 (SSH) và 1723 cho pptp vpn.

sudo ufw cho phép 22
sudo ufw cho phép 1723
sudo ufw cho phép

3: Chỉnh sửa /etc/ppp/pptpd-options. Mở tệp bằng trình soạn thảo yêu thích của bạn (nano của tôi, vì vậy lệnh cho tôi là sudo nano /etc/ppp/pptpd-options) và nhận xét các dòng này bằng cách đặt #trước chúng, nếu bạn muốn nó hoạt động phổ biến trên tất cả các hệ điều hành:

từ chối
từ chối-chap
từ chối-mschap

Bạn có thể nhận xét dòng này nếu bạn muốn tắt mã hóa: require-mppe-128

4: Trong khi chỉnh sửa /etc/ppp/pptpd-options, thêm máy chủ DNS cho VPN. Ví dụ này sử dụng máy chủ OpenDNS:

ms-dns 208,67.222.222
ms-dns 208,67.220.220

5: Chỉnh sửa /etc/pptpd.conf. Mở tệp bằng trình soạn thảo yêu thích của bạn (nano của tôi, vì vậy lệnh cho tôi là sudo nano /etc/pptpd.conf). Bạn cần thêm IP VPN cục bộ cho hệ thống, vì vậy hãy thêm:

địa phương 10,99,99,99
điều khiển từ xa 10.99.99.100-199

Nếu hệ thống của bạn là VPS, hãy sử dụng IP công cộng cho "localip". Nếu nó không phải và nằm trên một mạng cục bộ, hãy sử dụng IP mạng của máy tính của bạn. Sử dụng các IP và phạm vi khác nhau nếu các IP này tồn tại trên mạng con của bạn! Nếu bạn không biết IP công khai của VPS, hãy tìm nó bằng cách chạydig +short myip.opendns.com @resolver1.opendns.com

6: Chỉnh sửa /etc/ppp/chap-secrets. Mở tệp bằng trình soạn thảo yêu thích của bạn (nano của tôi, vì vậy lệnh cho tôi là sudo nano /etc/ppp/chap-secrets) và thêm dữ liệu xác thực.
Định dạng cho /etc/ppp/chap-secretslà:

[Tên người dùng] [Dịch vụ] [Mật khẩu] [Địa chỉ IP được phép]

Một ví dụ sẽ là: sampleuser pptpd samplepassword *

7: Khởi động lại pptpd. Chạy lệnh này trong terminal:sudo /etc/init.d/pptpd restart

8: Chỉnh sửa /etc/sysctl.conf. Mở tệp bằng trình soạn thảo yêu thích của bạn (nano của tôi, vì vậy lệnh cho tôi là sudo nano /etc/sysctl.conf). Hủy nhận xét dòng sau (bằng cách xóa dòng #ở đầu dòng) trong /etc/sysctl.conf: net.ipv4.ip_forward=1
Tải lại cấu hình: sudo sysctl -p

9: Bước này giả sử bạn có ufw.
Chỉnh sửa /etc/default/ufwvà thay đổi tùy chọn DEFAULT_FORWARD_POLICYtừ DROPsangACCEPT

10: Bước này giả sử bạn có ufw.
Chỉnh sửa /etc/ufw/before.rulesvà thêm các mục sau vào đầu /etc/ufw/before.ruleshoặc ngay trước *filterquy tắc (được khuyến nghị):

# Quy tắc bảng NAT
* nat

: CHẤP NHẬN ĐIỂM [0: 0]
# Cho phép lưu lượng chuyển tiếp tới eth0
-MỘT ĐIỂM -s 10.99.99.0/24 -o eth0 -j MASQUERADE

# Xử lý các quy tắc bảng NAT
CAM KẾT

Nếu bạn có kernel phiên bản 3.18 trở lên (bạn có thể kiểm tra điều này bằng cách chạy uname -r), cũng thêm các dòng sau vào # drop INVALID packets ...dòng:

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

11: Khởi động lại tường lửa, để làm mới các bộ quy tắc và áp dụng các quy tắc chúng tôi đã thêm vào các /etc/ufw/*.rulestệp: sudo ufw disable && sudo ufw enable

Cảnh báo: Nếu bạn có các cổng khác bạn cần mở, chẳng hạn như đối với HTTPS nếu máy chủ của bạn lưu trữ một trang web, bạn cần thêm từng cổng đó vào danh sách được phép vớisudo ufw allow <PORT>


4
Bây giờ những gì heck Tôi phải làm gì: D Tôi đã có mà làm việc trên máy chủ, không biết làm thế nào để kết nối với nó lol
Jamie Hutber

1
@Jamie Có rất nhiều tài liệu và mục khác ở đây trên Hỏi Ubuntu về việc kết nối với VPN không đề cập đến tài liệu trong Trình quản lý mạng. Câu hỏi này chỉ bao gồm việc thiết lập VPN và phía máy chủ. KHÔNG phải là phần kết nối với nó.
Thomas Ward

: D phản hồi cực nhanh: DI nghĩ rằng tôi có thể đã giải quyết nó, tôi phải đặt một cái gì đó không chính xác. Điều này cho biết ufw đang hoạt động và cho phép hầu hết các cổng. Tôi sẽ chơi với iptables xem điều này có giúp tôi không
Jamie Hutber

@Jamie Tôi có thể cung cấp cho bạn các lệnh iptables để sử dụng khi tôi về nhà bạn thích iptables hơn ufw.
Thomas Ward

1
iptables / netfilter được sử dụng với ufw, ufw chỉ đẹp hơn với các quy tắc và xử lý lệnh cho người dùng cuối.
Thomas Ward

19

Ví dụ PPTP VPN trên Ubuntu 12.04

Dưới đây là hướng dẫn nhanh để thiết lập máy chủ PPTP VPN cơ bản trên Ubuntu 12.04.

Cài đặt các gói cần thiết

                          sudo apt-get install ppp pptpd

Định cấu hình Phạm vi IP PPTP trên Máy chủ

                          sudo nano /etc/pptpd.conf

Thêm các dòng sau vào cuối

                          localip 10.89.64.1
                          remoteip 10.89.64.100-150

Điều này thiết lập máy chủ PPTP để sử dụng IP 10,89,64.1 trong khi phân phối dải IP 10,89,64.100 đến 10,89,64.150 cho các máy khách PPTP. Thay đổi chúng theo ý muốn miễn là chúng là địa chỉ IP riêng và không xung đột với địa chỉ IP đã được máy chủ của bạn sử dụng.

Định cấu hình Máy chủ DNS để Sử dụng khi Khách hàng Kết nối với Máy chủ PPTP này

                          sudo nano /etc/ppp/pptpd-options

Sửa đổi HOẶC Thêm các dòng sau vào cuối

                          ms-dns 8.8.8.8
                          ms-dns 8.8.4.4

Tạo người dùng PPTP

                          sudo nano /etc/ppp/chap-secrets

Nối một dòng ở dưới cùng để tệp của bạn trông giống như:

                          # client    server  secret          IP addresses
                          test        pptpd   abcd1234        *

Định cấu hình NAT cho kết nối PPTP

Nếu không có bước này, bạn sẽ có thể kết nối nhưng kết nối của bạn sẽ không thể tải bất kỳ kết nối web nào từ máy chủ này.

                          sudo nano /etc/rc.local

Thêm phần sau vào dưới cùng bên phải trước khi thoát khỏi dòng 0 RA:

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

Giả sử eth0, bạn có thể sử dụng ifconfigđể kiểm tra tên mạng.

Cho phép quét IPv4:

                          sudo nano /etc/sysctl.conf

Bỏ dòng sau:

                          net.ipv4.ip_forward=1

Sau đó tải lại cấu hình:

                          sudo sysctl -p

Khởi động lại VPS của bạn và mọi thứ sẽ hoạt động tốt từ bất kỳ khách hàng PPTP nào.


Cấu hình phía máy khách

Đối với Mac, đảm bảo bạn đã thêm kết nối VPN PPTP. Bên cạnh đó, bạn chỉ cần thiết lập địa chỉ máy chủ, tên tài khoản và mật khẩu trong cài đặt xác thực. Không có đau ở đây.

Đối với Linux, NetworkManager để thêm kết nối VPN. Đảm bảo bạn đã thêm kết nối VPN PPTP. Và cấu hình tôi sử dụng là đây:

Cách gỡ lỗi và sửa lỗi kết nối máy khách PPTP / VPN

nhập mô tả hình ảnh ở đây

Và cho Windows

nhập mô tả hình ảnh ở đây


Phương pháp này cũng hoạt động trên phiên bản không phải máy chủ Ubuntu 12.04? Số IP nào khách hàng phải sử dụng để kết nối với mạng VPN này?
Rasoul

Có, nó cũng dành cho phiên bản không phải máy chủ, Bạn phải sử dụng ip máy chủ trên máy khách để kết nối với vpn @Rasoul
Qasim

Không hoạt động, máy chủ Ubuntu 13.04. Khách hàng bị mắc kẹt khi tìm kiếm DNS.
knutole

@knutole kiểm tra xem các quy tắc IPTables của bạn có được định tuyến đúng không. Hãy chắc chắn rằng bạn có giao diện en0 và nó không được đặt tên khác. Bạn sẽ thấy một địa chỉ IP công cộng được liệt kê.
Nick Woodhams

ok, vậy trong ví dụ của bạn ip nào là ip máy chủ? 10,89,64.1? Sau đó, trong trình quản lý mạng Ubuntu, máy khách sẽ liệt kê 10,89,64.1 làm Cổng?
dranxo

9

Các câu trả lời khác trong chủ đề này chỉ là một phần câu trả lời trong trường hợp của tôi. Đây là những gì làm việc cho tôi trên Ubuntu 12.04.3

sudo apt-get install pptpd

Nối các mục sau vào /etc/pptpd.conf (Địa chỉ IP không quan trọng, đây chỉ là Địa chỉ IP cho giao diện ppp0 của bạn.)

localip 10.0.0.1
remoteip 10.0.0.100-200

Thêm máy chủ DNS vào / etc / ppp / pptpd-Tùy chọn

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Cho phép chuyển tiếp IP

sudo vim /etc/sysctl.conf

Bỏ dòng này

net.ipv4.ip_forward=1

Lưu thay đổi

sudo sysctl -p /etc/sysctl.conf

Chỉnh sửa / etc / ppp / chap-secret, thêm người dùng VPN ở định dạng này:

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

Khởi động lại PPTP

service pptpd restart

Chạy ifconfigvà tìm giao diện mặc định của bạn, trong trường hợp của tôi là br0 (Tôi đã thay đổi nó để cho phép các máy ảo trên máy vật lý của tôi chia sẻ giao diện. Có lẽ bạn sẽ là en0 )

nhập mô tả hình ảnh ở đây

Sao lưu iptables

iptables-save > ~/iptables.save

Bây giờ hãy thực hiện các thay đổi iptables của bạn bằng giao diện mặc định của bạn như được tiết lộ bởi 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

Để giữ cho nó bền bỉ khi hệ thống của bạn khởi động lại;

sudo apt-get install iptables-persistent

Thêm VPN trên máy khách (Mac)

Tùy chọn hệ thống> Mạng> [+]> VPN

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây

Sau đó chọn Cài đặt xác thực> Mật khẩu, sau đó điền mật khẩu của bạn vào đây

nhập mô tả hình ảnh ở đây


7

Đây là một dự án khá ngọt ngào giúp giảm bớt nỗi đau của OpenVPN:

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

Chỉ cần chạy nó và nó sẽ cài đặt mở vpn và cấu hình nó. Cuối cùng, nó sẽ hiện ra một tệp client.ovpn mà bạn có thể sử dụng để thiết lập máy khách của mình. Có vẻ để làm việc khá tốt.


Bò thần. Nó chỉ hoạt động. Tôi tự hỏi tại sao nó không được công nhận rộng rãi.
Marcus
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.