Showing posts with label OpenVPN. Show all posts
Using Telegram Bot to control Raspberry PiVPN
Bài viết trước: Sử dụng Raspberry Pi làm VPN server
1.Giới thiệu
Cài đặt Telegram Bot lên raspberry để điều khiển từ xa chương trình PiVPN
2.Cài đặt
2.1 Tạo Telebot
Mở ứng dụng telegram và search BotFather:
Khi vào trong thì nó hiện những hướng dẫn để tạo bot:
Chat với BotFather bằng cách gửi tin nhắn : /newbot
Sau đó nhập tên và username cho bot, lưu ý username phải có chữ bot ở cuối:
Thế là đã tạo xong bot, nó sẽ gửi cho cái TOKEN (khung màu đỏ như hình trên) dùng để viết chương trình điều khiển con bot này.
2.2 Install telebot
pip install telepot
Link:
- Bot API
2.3 Install PiVPN Telebot
- Tải chương trình
git clone https://github.com/eslinux/PiVPN-Telebot.git
- Cài đặt
Để cài đặt app này cần chuẩn bị sẵn 2 thông tin:
(1) Bot TOKEN
Đã tạo ra ở bước đầu tiên 2.1 lúc tạo bot rồi .
(2,3) Username và Chat ID của tài khoản telegram của bạn
Chỉ cần chat với userinfobot nó sẽ trả về chat ID và username của bạn.
Chạy file install.sh, nhập các thông tin TOKEN, username và chat ID:
Note: username của bạn có thể nhập tùy ý, ko cần đúng như của userinfobot trả về.
Thế là xong, mở telegram lên, tìm kiếm tên con bot đã tạo và chat với nó:
2.4 Hướng dẫn sử dụng
2.4.1 User
Được phân loại thành 2 loại là admin và normal
Chương trinhg bot này cho phép nhiều người có thể điều khiển, người đầu tiên chính là bạn (có username & chat id đã nhập khi install chương trình), sẽ có quyền cao nhất là quyền admin.
Bạn sẽ add thêm người dùng bằng lệnh /adduser, những người này bạn cũng sẽ cấp cho họ quyền admin hoặc normal
2.4.2 Nhóm lệnh
Có 3 nhóm lệnh
(1) Control all PiVPN specific functions!
(2) Admin management
(3) Pi management
- user admin có thể sử dụng tất cả các nhóm lệnh
- user normal chỉ có thể dùng nhóm lệnh (1)
Note:
- Source code chương trình bot
- Lệnh /updatebot sẽ tải chương trình mới nhất từ github nên bạn cần cài wget trước khi dùng lệnh này.
END.
Sử dụng Raspberry Pi làm VPN server
Bìa viết này sử dụng PiVPN để cài đặt OpenVpn server lên Raspberry Pi
1. Cài đặt OpenVPN server bằng phần mềm PiVPN
Băt đầu với command dưới đây
$curl -L https://install.pivpn.io | bash
Từ đây một giao diện cài đặt sẽ hiện lên, bấm ENTER để chọn.
Cài đặt static IP cho pi.
Nếu muốn thay đổi thì chọn NO.
Giao thức mặc định sẽ là UDP, nhưng trong hướng bài viết này sử dụng TCP
(UDP sẽ hoạt động nhanh hơn TCP, tuy nhiên TCP thì bào mật hơn).
Vì phía trên đã chọn TCP nên default port sẽ là 443(https), nếu phía trên chon UDP thì ở đây sẽ là port 1194.
Ở bước này nên chọn DNS bởi vì public IP sẽ thường sẽ bị thay đổi nếu router nhà bạn bị restart.
Điền địa chỉ DNS vào đây, có thể đăng ký địa chỉ DNS free tại trang https://www.noip.com
Note: Tác dụng của DNS là trong trường hợp router có restart thì địa chỉ public ip sẽ được tự động update vào DNS nên chúng ta không cần lo lắng về việc public ip có bị thay đổi hay không.
Tuy nhiên cần để có thể tự động update được pulic ip thì cần cấu hình trong mục Dynamic DNS trong router như ví dụ dưới đây:
Kết quả là public ip sẽ được update lên no-ip server.
DNS provider chọn của Google.
Hướng dẫn sử dụng.
Quá trình cài đặt hoàn thành thì reboot.
2. Cấu hình Port Forwarding trên router
Sau khi cài đặt xong PiVPN thì bước tiếp theo cần làm là phải mở port trên router nhà bạn
Khi cài đặt PiVPN ở trên đã chọn port 443(https) nên bây giờ cần mở port 443 trên router.
3. Tạo ovpn profiles
Ovpn profile được tạo ra tại OpenVPN server và được dùng tại phía client để khởi tạo kết nối VPN.
Dùng lệnh "pivpn add" để tạo ovpn profile.
Note:Nếu không muốn settup mật khẩu thì có thể dùng lệnh "pivpn add nopass".
Sau khi tạo xong ovpn profile sẽ được để ở thư mục:
/home/pi/ovpns
Copy ovpn file này sang máy client để chuẩn bị tạo kết nối vpn.
Note: có thể sftp hoặc scp để copy file ovpn ra máy client.
Ex:
pi@raspberry:~$scp -r /home/pi/ovpns clientusername@XXX.XXX.XXX.XXX:/home/Download
4. Khởi tạo kết nối vpn
Cài đặt phần mềm Openvpn connect vào máy client. Phần mềm này có đầy đủ phiên bản cho các hệ điều hành window, android, ios ...
Ex' https://openvpn.net/client-connect-vpn-for-windows/
Sau khi cài đặt xong thì import file ovpn đã tạo ra ở bước trên vào và tiến hành connect.
- Windows
Nếu có msg như dưới đây là ok:
- Linux
Dùng lệnh
#openvpn ovpnprofilename.ovpn
Nếu dùng máy ubuntu thì có thể install thêm plugin:
$sudo apt-get install network-manager-openvpn-gnome
Sau đó import file ovpn vào là xong
- Mobile
Có thể import ovpn profile bằng cách attachment file từ email.
Note:
-Default network interface is "tun"
-Default private IP of vpn network is 10.8.0.X
- pivpn help
Xem file config:
$sudo cat /etc/openvpn/easy-rsa/pki/Default.txt
client
dev tun
proto tcp
remote mydns.ddns.net 443
...
$cat /etc/openvpn/server.conf
dev tun
proto tcp
port 443
server 10.8.0.0 255.255.255.0
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
cipher AES-256-CBC
auth SHA256
user nobody
group nogroup
....