Dựng mạng VPN với WireGuard

Tiếp nối bài trước, Câu chuyện sử dụng VPN, tôi xin mô tả cách dựng một mạng VPN cho mục đích cá nhân bằng phần mềm WireGuard.

Mục đích sử dụng mạng VPN của tôi chỉ là để truy cập từ xa vào các thiết bị IoT của tôi nên mô hình VPN của tôi chỉ phù hợp với nhu cầu đó. Nếu bạn cần dùng VPN cho mục đích khác, ví dụ để vượt tường lửa, truy cập vào website bị chặn, thì bạn không nên trông đợi gì vào bài viết này.

Trước khi bắt tay vào việc, ta cần mường tượng sơ đồ mạng sẽ như thế nào:

Sơ đồ

Câu chuyện sử dụng VPN

Tôi thỉnh thoảng có nhu cầu sử dụng mạng VPN. Trong khi nhiều bạn dùng VPN để vượt qua bức tường chặn các trang web mà chính phủ không mong muốn thì mục đích dùng VPN của tôi lại nhằm phục vụ cho IoT, tạo đường truy cập các máy tính nhúng (BeagleBone, Raspberry Pi) từ xa qua Internet, phục vụ cho công việc.

Các máy tính nhúng của tôi hay được đặt trong một mạng LAN mà router của nó tôi không được can thiệp, nên không thể cấu hình port forward để truy cập trực tiếp từ ngoài Internet được.

No-VPN

Bằng cách thiết lập VPN, tôi sẽ có một mạng LAN ảo giữa laptop của tôi đang ở một quán nước dọc đường và máy tính nhúng đang đặt ở một căn phòng nào đó.

A forgotten GUI tool for flashing SD card and USB drives

Working in IoT or with embedded computer, you won't less than 1 time need to write an OS image file to a SD card (so that you can install new OS to your device later).

For the tool to write image file, many websites often recommend Etcher, which is an Electron-based app. For Windows and Mac, that is fine. But for Linux, it sounds ridiculous to recommend such a tool. Not only does Linux already have GNOME Disks, which is most of time pre-installed, but also is it native, and hence, being lighter, running faster, having visual look consistent with other applications.

Here is the photo of GNOME Disks writing image file to my SD card. The SD card appears with USB drive icon because I'm using a 3G USB dongle as card reader, after my laptop's built-in SD reader has been broken.

GNOME-Disks writing SD card

Đặt sẵn cấu hình cho firmware OpenWrt từ khi build

Khi sử dụng firmware OpenWrt cho router wifi, thỉnh thoảng ta muốn có một bản firmware với một số cấu hình theo ý muốn ngay từ đầu, thay vì cài firmware xong mới vào trang admin để cấu hình. Ví dụ, mặc định trong OpenWrt, tính năng phát wifi bị tắt, hoặc user "root" không có password. Mỗi lần cài mới firmware là lại phải đăng nhập vào admin để kích hoạt wifi cũng như tạo password cho root.

Vậy làm cách nào để có sẵn một số cấu hình ngay từ đầu?

OpenWrt cho phép ghi đè một số file mặc định ngay từ khi build, thông qua đó ta có thể thay thế cấu hình gốc của OpenWrt bằng cấu hình của ta. Những file ta cần ghi đè, chỉ việc bỏ vào thư mục tên files trong thư mục build. File đặt trong thư mục này, cần được bảo lưu đúng đường dẫn như trong hệ thống thật. Ví dụ, để thay thế file /etc/passwd gốc thì ta cần có một file tại [OpenWrt source]/files/etc/passwd.

Làm thế nào để có nội dung đúng cho file thay thế?

Cơn bệnh tưởng blockchain trong nền nông nghiệp mới

Sự tăng giá của BitCoin khiến mọi người bắt đầu để ý tới công nghệ blockchain. Trong cơn say tiền điện tử, nhiều người bắt đầu hoang tưởng về quyền năng của blockchain. Một số kẻ cơ hội bắt đầu vơ lấy blockchain, gắn vào mọi thứ để lòe bịp thiên hạ.

Một trong những ứng dụng bị gắn mác blockchain vô tội vạ là chuỗi truy xuất nguồn gốc nông sản.

Dưới đây là đoạn trích tranh luận của mình về tính thiết thực của việc ứng dụng blockchain trong truy xuất nguồn gốc nông sản.

Hội thoại 1: