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ả

Nên chọn Arduino hay Raspberry Pi để phát triển các dự án IoT?

Nếu bạn là người quen thuộc với các dự án điện tử dạng tự làm (Do-It-Yourself hay còn gọi tắt là DIY), có lẽ bạn đã nghe nói về những tính năng tuyệt vời của Arduino và Raspberry Pi. Thậm chí bạn có thể cho rằng 2 nền tảng phần cứng này đang cạnh tranh quyết liệt để giải quyết các vấn đề giống nhau.

lên
43 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

C# ( C Sharp ) - Nhận dữ liệu từ Arduino

Lấy nguồn cảm hứng từ bài viết C# (C Sharp) – Một cách điều khiển Arduino bằng máy tính của bạn Đinh Hồng Thái . Mình sẽ xây dựng phần tiếp theo của loạt bài giao tiếp với Arduino bằng máy tính thông qua C#, dựa trên công nghệ Window Form Application….Nói nghe nguy hiểm vậy, nhưng thực ra bài viết khá đơn giản…keke. Nội dung chính của bài này đó là: “Nhận dữ liệu từ Arduino đến máy tính, thông qua phần mềm tự tạo bằng C#” !!!!!

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