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
10 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

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Giới thiệu Arduino Lilypad

Bài viết này, mình sẽ giới thiệu cho các bạn một board Arduino thần thánh. Hẳn là ít nhiều mọi người đều xem Iron Man và ấn tượng với bộ quần áo bá đạo của Iron Man với những quầng sáng rực rỡ trên ngực áo, lòng gang tay,.....Để thiết kế cho những dự án đó, các bạn cần đến Arduino Lilypad.

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

Nạp code cho Arduino Promini thông qua mạch nạp của Arduino UNO

Arduino Promini là một board mạch siêu nhỏ, và rẻ tiền....Lý do là Promini không có mạch nguồn chuyển đổi 5V, 3.3V và đặc biệt là không có mạch nạp. Vì thế bạn cần phải mua thêm một mạch nạp, để nạp code cho Arduno Promini...Nếu bạn không có mạch nạp, vậy phải làm thế nào để nạp code cho Promini?? Bạn có thể dễ dàng sử dụng board Arduino Uno R3 sẵn có của mình để nạp code cho Arduino Pro Mini khi không có mạch nạp, hay bạn muốn tiết kiệm con chip ATmega16U2 laugh

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