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 pptpd
và ufw
. iptables
có thể được sử dụng thay cho ufw, nhưng vì mục đích dễ dàng, ufw
sẽ 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-secrets
là:
[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/ufw
và thay đổi tùy chọn DEFAULT_FORWARD_POLICY
từ DROP
sangACCEPT
10: Bước này giả sử bạn có ufw.
Chỉnh sửa /etc/ufw/before.rules
và thêm các mục sau vào đầu /etc/ufw/before.rules
hoặc ngay trước *filter
quy 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/*.rules
tệ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>