Showing posts with label OpenVPN. Show all posts

Using Telegram Bot to control Raspberry PiVPN







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:


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à adminnormal
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.





Sunday, January 26, 2020

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.

For Ex:


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








Tuesday, December 31, 2019

- Copyright © Lập trình hệ thống nhúng Linux . Powered by Luong Duy Ninh -