Cài đặt và Cấu hình firewall trên Raspbian

Published by Việt Coding on

Tiếp tục loạt bài về thiết lập cơ bản cho Raspberry Pi, hôm nay Việt Coding cùng với các bạn tiến thêm một bước nữa để gia tăng bảo mật cho Raspbian. Đó là cấu hình tường lửa (firewall).

Mặc định Raspbian không có sẵn tường lửa. Nếu chỉ dùng theo kiểu “cưỡi ngựa xem hoa” thì có lẽ không cần quan tâm đến vấn đề này. Ngược lại, khi sử dụng Raspberry Pi để chạy Home Assistant trong hệ thống Smart Home thì nên đảm bảo sự bảo vệ tối thiểu cho Raspbian.

Đây là ý kiến cá nhân của Việt Coding:

Raspbian không có tường lửa – dù ở trong mạng nội bộ (LAN) cũng tiềm ẩn một số nguy cơ nhất định. Ví dụ: trong hằng sa số những thiết bị smart gắn trong nhà bạn có thể có những thiết bị không rõ nguồn gốc hoặc thiết bị đã bị flash firmware có mã độc hoặc thiết bị có gắn chip hoặc phần cứng có chức năng do thám thu nhập thông tin (backdoor) – cái này chúng ta rất khó biết được. Chúng có thể thu thập thông tin sẵn có trong hệ thống hoặc brute-force các thiết bị khác để thâm nhập lấy thông tin. Sau đó định kỳ gửi “đi đâu đó” mà chúng ta không thể phát giác ra được.

Hoặc một vị khách đến chơi nhà xin password Wifi rồi vô tình / cố ý chia sẻ trên các app đại loại như `Wifi Chùa`

Hoặc `hàng xóm` tốt bụng có được password và quyết định “nằm vùng” trong mạng nhà bạn.

Hoặc…
Hoặc…

Trong thực tế có cả tỷ lý do để hệ thống nhà bạn bị thâm nhập. Cũng có cả tỷ lý do để bạn tin rằng mình chẳng bao giờ bị xâm nhập. Do đó, việc dựng thêm các lớp bảo vệ, theo Việt Coding nghĩ là hoàn toàn cần thiết trong thời buổi Internet of Things hiện nay. Ít ra cũng giảm được 1 tỷ lý do bị tấn công 😀

Trên Linux có phần mềm firewall nổi tiếng và kinh điển là `iptables`. Tuy nhiên nó khá là phức tạp trong sử dụng. Vì vậy, thay vào đó Việt Coding sẽ sử dụng `UFW – Uncomplicated Firewall` có cách cấu hình và cú pháp lệnh rõ ràng và đơn giản hơn nhiều.

Sau đây là các bước cài đặt UFW:

# Cài đặt UFW 
sudo apt install ufw 
# Khởi chạy ufw, đồng thời khởi động với hệ điều hành 
sudo ufw enable 
# Trường hợp muốn ngừng ufw dùng lệnh 
sudo ufw disable

 

Tiếp đến là cấu hình firewall cho phép truy cập một số dịch vụ/port

# Mở port 22 để truy cập qua giao thức SSH
sudo ufw allow 22

# Hoặc dùng tên của dịch vụ muốn cho phép truy cập
sudo ufw allow ssh

 

Đây là một số port bạn nên mở sẵn cho sau này triển khai Smart Home:

  • `80` truy cập web / giao thức HTTP
  • 443 truy cập web / giao thức `HTTPS`
  • 22 truy cập `SSH`
  • 5900 truy cập VNC
  • 8123 truy cập giao diện web của Home Assistant / bao gồm cả truy cập `API`
  • 1883 port để các thiết bị smart kết nối đến MQTT của Home Assistant.

Sau khi cấu hình `allow/deny` các port/service cần thiết, chúng ta gõ lệnh

sudo ufw status

để xem lại cấu hình.

Đến đây, chúng ta đã có trong tay “em” Rasp Pi đã được cấu hình kha khá an toàn sẵn sàng cho triển khai Home Assistant lên rồi đấy !

Để không bỏ lỡ các bài viết mới, bạn đọc nhớ đăng ký nhận bài viết qua email (ở ô ngay cuối bài viết) hoàn toàn miễn phí nhé ! 🙂

Quảng cáo tài trợ


Việt Coding

Là một người đam mê lập trình, tôi vọc vạch đủ thứ liên quan đến lập trình cho thoả chí tò mò. Hiện làm chủ yếu ở mảng phát triển ứng dụng di động cho iOS và Android với React Native. Thỉnh thoảng vọc vạch mấy thứ liên quan đến Internet of Things như Smart Home. Đang nghịch mấy con Raspberry Pi và thấy nó cũng thú vị :)

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax