Hướng dẫn tạo Server OpenVPN trên Raspberry PI 2

Giới thiệu

Như các bạn đã biết, raspberry pi có những khả năng kỳ diệu như: đóng vai trò là 1 vi xử lý, khả năng làm đầu HD Player,....rất tốt. tuy nhiên khẳ năng của Raspberry Pi  không chỉ dừng lại ở đó , Raspberry PI 2 còn làm được rất nhiều việc ví dụ như làm một mini server. Trong bài viết này mình sẽ hướng dẫn các bạn tạo một server OpenVNP ngay trên Raspberry PI 2.

Tiến hành

Vì Raspberry PI chạy rất tiết kiệm điện , chỉ khoảng 3w và có khả năng chạy liên tục không cần tắt từ tháng này qua tháng khác do vậy để ứng dụng Raspberry PI vào làm một máy chủ VPN là rất khả quan . Bạn có thể tạo một openvpn cho riêng mình sử dụng hoặc chia sẻ cho người nhà và những bạn bè thân thiết .

Bài viết sẽ hướng dẫn cài đặt openvpn trên hệ điều hành Raspbian . Đây là hệ điều hành chính thức của Raspberry PI , tuy nhiên nếu bạn không thích Raspbian có thể cài ubuntu thì hướng dẫn cũng tương tự như bài viết này . chi tiết làm thế nào để cài đặt hệ điều hành vui lòng đọc trên trang chủ của Raspberry PI . 1 . Đăng nhập ssh vào raspberry pi chạy các lệnh sau .

sudo su
apt-get update
apt-get install openvpn openssl
cd /etc/openvpn
cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 ./easy-rsa
apt-get install nano
nano easy-rsa/vars

Trình chỉnh sửa nano hiện nên và tìm đến dòng

Mã:
export EASY_RSA="`pwd`"

Thay thế bằng

export EASY_RSA="/etc/openvpn/easy-rsa"

Nhấn Ctrl + x để lưu lại . Tiếp theo chạy các lệnh sau , khi gặp các câu hỏi cứ nhấn enter 

./easy-rsa/vars
./easy-rsa/clean-all
cd easy-rsa
ln -s openssl-1.0.0.cnf openssl.cnf
cd ..

Tiếp theo chạy các lệnh sau , khi gặp các câu hỏi cứ nhấn enter 

./easy-rsa/build-ca OpenVPN
./easy-rsa/build-key-server server
./easy-rsa/build-key client1
Build-dh command takes a few minutes. So just wait
./easy-rsa/build-dh
Tiếp theo tạo một file config 
nano openvpn.conf
copy và paster nội dung bên dưới
dev tun
proto udp
port 1194
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/server.crt
key /etc/openvpn/easy-rsa/keys/server.key
dh /etc/openvpn/easy-rsa/keys/dh1024.pem
user nobody
group nogroup
server 10.8.0.0 255.255.255.0
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
client-to-client
push "redirect-gateway def1"
#set the dns servers
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
log-append /var/log/openvpn
comp-lzo

Nhấn Ctrl +x để lưu lại . Tiếp theo chạy lệnh

echo 1 > /proc/sys/net/ipv4/ip_forward

Chạy tiếp các lệnh sau

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to [ipadres rpi]
cd ..

[ipadres rpi] thay thế bằng địa chỉ IP trên raspberry pi của bạn . chỉnh sửa file sysctl.conf xóa bỏ dấu # ở dòng #net.ipv4.ip_forward=1 đi

nano /etc/sysctl.conf

Ctrl + x để lưu lại

exit

để thoát root .

cd

Khởi động openvpn 

sudo /etc/init.d/openvpn start

Tạo một file config openvpn để sử dụng

nano newvpn.ovpn

Nội dung như sau .

dev tun
client
proto udp
remote YOUR.RASPBERRYPI.IPADRESS 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3

Ctrl + x để lưu lại . Thêm vào file /etc/rc.local nội dung như sau , thêm vào bên trên dòng "exit 0"

sudo nano /etc/rc.local
iptables -t nat -A INPUT -i eth0 -p udp -m udp --dport 1194 -j ACCEPT

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j SNAT --to-source RASPBERRY.PI.IP.ADRESS

Ctrl + x để lưu lại . Copy toàn bộ các file key vào thư mục home của pi để sửa dụng

sudo cp -rf /etc/openvpn/easy-rsa/keys /home/pi/

Ta cần quan tâm các file sau ca.crt, client1.crt, client1.key trong /home/pi/keys/ và file /home/pi/newvpn.ovpn Tạm thời Đã tạm xong , để sử dụng openvpn trên điện thoại hãy chỉnh sửa file  /home/pi/newvpn.ovpn như sau .

dev tun
client
proto udp
remote ip-của-raspberry-pi 1194
resolv-retry infinite
nobind
persist-key
persist-tun
<ca>
copy tất cả nội dung của file ca.crt vào đây
</ca>

<cert>
copy tất cả nội dung của file client1.crt vào đây
</cert>

<key>
copy tất cả nội dung của file client1.key vào đây
</key>

comp-lzo
verb 3

sau khi lưu lại thì copy file newvpn.ovpn đó vào bộ nhớ điện thoại . Trên android để sử dụng hãy dùng phần mềm openvpn trên chplay . và chọn đến file newvpn.ovpn để kết nối .  Thành công sẽ như sau .

Tuy đã kết nối thành công tuy nhiên đến đây thì chúng ta có thể nhận thấy là mình đang dùng wifi trên điện thoại có kết nối chung mạng với raspberry pi 2 . còn nếu tôi đang dùng 3G hoặc đi đâu đó ra ngoài hoặc muốn chia sẻ openvpn cho ai đó thì không thể kết nối được với OpenVPN trên raspberry pi 2 . để làm được việc đó bắt buộc chúng ta phải mở cổng cho modem và cấu hình Dynamic DNS để có thể sử dụng với mạng IP động . 

Xem cách NAT PORT tại đây

III. Kết luận

Chúc các bạn thành công nhé!!!!

lên
9 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

Chạy đa nhiệm trên Arduino với FreeRTOS

Khi chúng ta làm 1 project lớn, bạn sẽ phải viết chương trình thực hiện nhiều chức năng. Và khi đó, bạn sẽ gặp nhiều vấn đề phức tạp : làm như thế nào để chương trình hoạt động ổn định khi kết hợp nhổi nhét nhiều đoạn code đơn giản thành 1 khối thống nhất?. Ở bài viết này, chúng ta cùng đi giải quyết vấn đề trên. Trên Arduino.vn cũng đã có nhiều bài viết về xử lý bất đồng bộ rất hay. Các bạn có thể xem tại đây. Vậy mục đích viết bài của mình hôm nay là gì? Hôm nay mình sẽ giới thiệu một thư viện đa nhiệm mới khác, đó chính là FreeRTOS

lên
13 thành viên đã đánh giá bài viết này hữu ích.

Tỏ tình theo phong cách Arduino và I2C LCD

Hôm nay, mình sẽ chia sẻ môt trick nhỏ giúp các bạn dễ dàng cưa gái, để lại một ấn tượng tốt với người đó...người đó sẽ nhìn bạn với một con mắt thán phục đấy wink....Và bài viết hôm nay đó chính là : "Tỏ tình theo phong cách Arduino".

lên
36 thành viên đã đánh giá bài viết này hữu ích.