Tạo mạng riêng ảo (VPN) trên Linux VPS

PPTPServer

This guide has been tested with Ubuntu 12.4 Server.

Setup PPTP Server

First we need to install pptp server using apt-get

# sudo apt-get install pptpd

Then we need to configure the pptpd.

# sudo nano /etc/pptpd.conf

Add server IP and client IP at the end of the file. You can add like below:

localip 192.168.0.1
remoteip 192.168.0.100-200

This sets up the PPTP server to use IP 192.168.0.1 while distributing the IP range 192.168.0.100 to 192.168.0.200 to PPTP clients. Change these as you wish as long as they are private IP addresses and do not conflict with IP addresses already used by your server.

Configure DNS servers to use when clients connect to this PPTP server

# sudo nano /etc/ppp/pptpd-options

Uncomment the ms-dns and add google like below or OpenDNS

ms-dns 8.8.8.8
ms-dns 8.8.4.4

Now add a VPN user in /etc/ppp/chap-secrets file.

# sudo nano /etc/ppp/chap-secrets

The column is username. Second column is server name, you can put “pptpd” in there. Third column is password. The last column is the IP addresses, you can put * to allow all IP.

# client server secret IP addresses
username * myPassword *

Finally start your server

# /etc/init.d/pptpd restart

Setup IP Forwarding

To enable IPv4 forward. Change /etc/sysctl.conf file, add forward rule below.

# sudo nano /etc/sysctl.conf

Uncomment the line

net.ipv4.ip_forward=1

Then reload the configuration

sudo sysctl -p

Add forward rule in iptables

# sudo nano /etc/rc.local

adding to the bottom just before the exit 0

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
iptables -A FORWARD -p tcp –syn -s 192.168.0.0/24 -j TCPMSS –set-mss 1356

This example is using 192.168.0 for its PPTP subnet. The second rule adjusts the MTU size :

You are done. Just reboot your server and you should be able to connect to using PPTPD and send all your traffic through this server.

Nguồn: https://help.ubuntu.com/community/PPTPServer

—–

Xem thêm:

Hướng dẫn cài đặt PPTP VPN trên VPS linux

Nguồn: https://nguyenhuuhoang.com/huong-dan-cai-dat-pptp-vpn-tren-vps-linux/

I. Giới thiệu

Mạng riêng ảo hay VPN (Virtual Private Network) là một mạng dành riêng để kết nối các máy tính lại với nhau thông qua mạng Internet công cộng. Những máy tính tham gia mạng riêng ảo sẽ “nhìn thấy nhau” như trong một mạng nội bộ – LAN (Local Area Network). VPN cho phép các máy tính truyền thông với nhau thông qua một môi trường chia sẻ như mạng Internet nhưng vẫn đảm bảo được tính riêng tư và bảo mật dữ liệu.

Gồm 2 kiểu kết nối chính là :

VPN

1. Client to Site

Áp dụng cho từng cá nhân truy cập dữ liệu và các ứng dụng từ bên ngoài để luôn đảm bảo tính bảo mật thông tin.

2. Site to Site

Áp dụng cho các tổ chức chi nhánh liên kết với nhau để trao đổi thông tin như một mạng local.

Giao thức :

Các giao thức chủ yếu được sử dụng là : PPTP, L2TP, IPSEC và IP-IP …

PPTP Point-to-Point Tunneling Protocol (PPTP) là một mở rộng của PPP, nó đóng gói các khung PPP vào gói tin IP (IP datagram) để truyền đi trên mạng công cộng như là Internet. Một người dùng từ xa muốn nối với một mạng LAN cộng tác từ một vị trí mà bình thường là phải sử dụng đến một cuộc quay số đường dài, thay vì vậy người dùng nối kết vào ISP tại địa phương. Sau đó thiết lập một liên kết ảo băng qua Internet để đến mạng LAN nầy. Như vậy, chỉ cần tạo ra một liên kết cục bộ và người dùng có thể có được một nối kết đường dài thông qua Internet. Việc xác thực quyền và mã hóa có thể yêu cầu thêm trong các phiên quay số ảo để hỗ trợ các nối kết riêng tư hay bảo mật.

Như đã giới thiệu thì mình xin hướng dẫn cấu hình PPTP VPN trên VPS linux. Với các giao thức còn lại thì các bạn đón xem ở những bài tiếp theo.

II. Hướng dẫn

Lưu ý : Nếu bạn đang sử dụng VPS với công nghệ OpenVZ thì bạn sẽ cài đặt theo hướng dẫn này bị lỗi, lúc này bạn cần liên hệ với nhà cung cấp để được hỗ trợ. Bài hướng dẫn này chạy tốt trên các công nghệ còn lại.

Bước 1 : Cài đặt PPTPD

Để xác định được bạn đang sử dụng OS nào bạn có thể dùng lệnh sau :

1

uname -a

CentOS/RedHat 5_x86_64

1

2

3

4

yum install ppp

cd /usr/local/src

wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.rhel5.x86_64.rpm

rpm -iv pptpd-1.4.0-1.rhel5.x86_64.rpm</span>

CentOS/RedHat 6_x86_64

1

2

3

4

yum install ppp

cd /usr/local/src

wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm

rpm -iv pptpd-1.4.0-1.el6.x86_64.rpm</span>

Bước 2 : Cấu hình IP /etc/pptpd.conf

1

vi /etc/pptpd.conf

# kéo xuống tận cùng file và chèn 2 đoạn code này vào fileo

localip [IP_VPS]

remoteip 10.0.0.101-200

2

Lưu ý :

localip : là IP của VPS mà bạn thuê : có thể sử dụng lệnh : ifconfig -a

remoteip : đặt IP private (tham khảo IP private: http://en.wikipedia.org/wiki/Private_network )

 

Bước 3 : Tạo user login vào file in/etc/ppp/chap-secrets

1

vi /etc/ppp/chap-secrets

# kéo xuống tận cùng file và chèn 2 đoạn code này vào fileo

username1 * password1 *

username2 * password2 *

Bước 4 : Cấu hình DNS /etc/ppp/options.pptpd

1

vi /etc/ppp/options.pptpd

# cấu hình dns

ms-dns 8.8.8.8

ms-dns 8.8.4.4

Bước 5. Bật network forwarding in /etc/sysctl.conf

1

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

Dùng lệnh sau để apply cho việc cấu hình:

1

sysctl -p

Bước 6. Cấu hình firewall and forwarding cho VPS

1

2

3

4

5

6

7

iptables -A INPUT -i [tên_card_mạng] -p tcp –dport 1723 -j ACCEPT

iptables -A INPUT -i [tên_card_mạng] -p gre -j ACCEPT

iptables -t nat -A POSTROUTING -j SNAT –to-source [IP_VPS]

iptables -A FORWARD -i ppp0 -o [tên_card_mạng] -j ACCEPT

iptables -A FORWARD -i [tên_card_mạng] -o ppp0 -j ACCEPT

service iptables save

service iptables restart</span>

Bước 7 : Khởi động PPTP VPN server

1

2

service pptpd restart

chkconfig pptpd on

Bước 8 : Thực hiện tạo và kết nối VPN trên máy tính

Tuy nhiên, khi thử cả 2 cách này thì mình bị 2 vấn đề sau:

Kết nối VPN xong thì không kết nối Internet được

Không thể vô Web server ở VPS từ máy kết nối VPN

Chưa biết sửa =)

Cập nhật

Sau khi chạy lại lệnh sau

iptables -A INPUT -i eth0 -p tcp –dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -j SNAT –to-source [IP_VPS]
iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp0 -j ACCEPT

Thì mình đã kết nối được Internet khi vô VPN^^

Tham khảo:

http://thuthuat.taimienphi.vn/cach-check-dia-chi-ip-tren-linux-30151n.aspx

https://stackoverflow.com/questions/20680050/how-do-i-install-chkconfig-on-ubuntu

https://kipalog.com/posts/Tu-tao-SSH-tunnel-de-forward-port-ra-remote-server

https://techblog.vn/tu-tao-ssh-tunnel-de-forward-port-ra-remote-server

https://kipalog.com/posts/Gioi-thieu-SSH-Tunnel-va-mot-so-ung-dung

Create your own Virtual Private Network for SSH with Putty