Mở port ra internet hay một trung tâm kết nối vật lý ảo

Nội dung

    Việc mở port trên homelab để truy cập từ xa mang lại nhiều tiện ích nhưng cũng tiềm ẩn nhiều rủi ro. Các hacker luôn tìm kiếm những lỗ hổng để xâm nhập vào hệ thống của bạn và đánh cắp dữ liệu. Để bảo vệ homelab, bạn cần thực hiện một số biện pháp như sử dụng VPN, quản lý port trên router, cập nhật phần mềm thường xuyên và sử dụng mật khẩu mạnh. Hãy nhớ rằng, an ninh mạng là một quá trình liên tục, đòi hỏi bạn phải luôn cảnh giác và chủ động.

    Những dịch vụ phổ biến bị lộ bao gồm:

    • SMB/NAS/File share: rất nhiều studio ảnh, hộ gia đình thậm chí là doanh nghiệp lộ hoàn toàn các dữ liệu bằng cách này. Bằng cách vô tình cài đặt SMB không xác thực bằng username/password, toàn bộ hình ảnh, tài liệu bảo mật liên quan đến doanh nghiệp đều có thể bị truy cập.
    • Camera: dù đã xảy ra rất nhiều vấn nạn lộ những hình ảnh riêng tư thông qua camera IP, hiện tại mọi người đều có thể dễ dàng tìm thấy các camera đang được public ra Internet mà không có biện pháp bảo vệ nào.
    • SSH/Remote Desktop: các giao thức phổ biến mà người dùng hay sử dụng để truy cập vào các server từ xa. Thật sự việc mở port không gây ra vấn đề ngay lập tức, nhưng nếu có một lỗ hổng zero-day, các bạn sẽ cần vá lỗi hoặc server của bạn sẽ dễ bị tổn thương hơn.
    • Các dịch vụ homelab: mình thấy rất nhiều bạn đang mở Internet cho rất nhiều dịch vụ như Home Assistant, OpenHAB, cầu dao có Wifi, các tool điều khiển loa, đèn trong nhà. Tiện thì có tiện nhưng rất không nên làm vậy, vì bạn sẽ không biết người ngoài sẽ điều khiển được thứ gì đâu.

    Bạn không nên mở port, bạn có thể gặp phải qua các bài viết bên dưới:

    • Venus Ransomware đang nhắm mục tiêu vào các dịch vụ Remote Desktop công khai: “cho biết các tác nhân đe dọa đã giành được quyền truy cập vào mạng công ty của nạn nhân thông qua giao thức Windows Remote Desktop (RDP). Một nạn nhân khác cũng báo cáo rằng tin tặc đã sử dụng RDP để truy cập vào mạng của họ ngay cả khi họ đang sử dụng số cổng (port) không theo mặc định (non-standard) cho dịch vụ.”
    • Lỗ hổng Zero-click RCE trong camera Hikvision: “cho phép kẻ tấn công thực thi mã từ xa (RCE) mà không yêu cầu bất kỳ thông tin xác thực nào. Tấn công thành công giúp kẻ tấn giành được toàn quyền truy cập vào thiết bị và có thể xâm nhập vào bên trong mạng nội bộ.”
    • Cisco cảnh báo về các cuộc tấn công Brute Force quy mô lớn nhằm vào các dịch vụ VPN và SSH
    • OpenSSH RegreSSHion Vulnerability (CVE-2024-6387): Exploitation and Mitigation Measures

    Bạn có thể nhận ra đặc điểm chung của các vấn đề này là gì không?

    Là không phải ứng dụng, không phải OS mà bạn dùng trực tiếp gây thiệt hại. Lỗ hổng zero-day luôn tồn tại cho đến khi được phát hiện và vá lỗi. Vấn đề ở đây là do chúng ta đưa các thiết bị này ra môi trường Internet để các hacker có thể tấn công mà không gặp bất kì trở ngại nào.

    Nếu bạn chỉ đặt ứng dựng/thiết bị vào một mạng riêng, bạn đã có rất nhiều thời gian để đảm bảo thiết bị không bị hacker “ghé thăm” và tốn rất nhiều thời gian để khắc phục.

    Các công cụ kiểm soát và bảo vệ cho truy cập từ xa

    VPN

    Luôn là cách giải quyết khá đơn giản và được rất nhiều người khuyên dùng. Tưởng tượng VPN là một mạng riêng của bạn, nhưng là mạng ảo do bạn quản lý. Bạn thêm laptop, máy tính bàn, camera thông qua một ứng dụng của bên thứ ba, vậy là xong, các thiết bị đã có thể kết nối với nhau rồi đó.

    Ví dụ máy tính công ty có thể được kết nối từ máy tính ở nhà bạn, từ máy tính ở nhà lại có thể kết nối được với smarthome của nhà ở dưới quê.

    Nếu được cấu hình đúng và tốt, thì chỉ khi bạn connect được đến VPN thì mới có thể thật sự truy cập được vào dịch vụ. Kể cả hacker có truy cập vật lý bằng cách kết nối wifi hay cắm dây mạng thì cũng không thể nào truy cập được dịch vụ của bạn.

    Router

    Đường đi từ Internet vào đến network nhà bạn chắn chắn đều phải thông qua router, vì vậy bạn nên quản lý tất cả các port được mở trên đây. Tất cả các router từ router có sẵn của nhà mạng đến router chuyên dụng đều có các mục này, gọi dân dã là “mở port” hoặc NAT port ra Internet.

    Về phía quản lý router, theo mình tuyệt đối không nên để server của bạn vào DMZ. Lúc này tất cả các port trên server dù vô tình hay cố ý đều được open ra Internet mà bạn không hay biết gì.

    Cách tốt nhất là xóa thiết bị của bạn khỏi cài đặt DMZ, và chỉ open những port thật sự cần thiết phải mở ra để truy cập, ví dụ như HTTP (80), HTTPS (443), SSH (22), RDP (3389).

    Quan niệm của mình là tất cả những port, những website (từ homelab) được mở ra Internet đều phải có authentication, ít nhất là Basic Auth. Nếu không có authentication thì bạn phải chắc chắn các website và port mở ra không chứa bất kì thông tin nhạy cảm nào của network, của người dùng/thiết bị trong mạng và của riêng bạn.

    Nmap

    Nếu quản lý từ router là hướng nhìn của bạn từ bên trong mạng ra bên ngoài, thì sử dụng Nmap là một cái nhìn toàn diện hơn để đảm bảo rằng bạn đã tự review tất cả những cấu hình network của bạn ra Internet.

    Nmap công cụ quét cổng (scan port) miễn phí và rất phổ biến, giúp bạn biết được bất kì một địa chỉ IP nào đang mở những port nào. Tất nhiên chúng ta sẽ chủ yếu scan những địa chỉ IP do chúng ta quản lý.

    Cài đặt nmap khá đơn giản bằng cách lệnh phía dưới:

    # MacOS: brew install nmap

    # Debian/Ubuntu: apt install nmap

    # CentOS/AlmaLinux/Rocky/Amazon Linux: dnf install nmap

    Sau đó bạn có thể gọi lệnh nmap <IP-của-bạn> để nhận về kết quả. Mình lưu ý khi scan, các bạn nên sử dụng mạng 4G hoặc wifi công ty,… để đảm bảo bạn đang từ bên ngoài gọi vào, tránh các vấn đề firewall/Hairpin NAT có thể xảy ra làm sai lệch kết quả.

    ➜ nmap 171.226.239.18

    Starting Nmap 7.95 ( https://nmap.org ) at 2024-08-09 13:37 +07

    Nmap scan report for 171.226.239.18

    Host is up (0.0035s latency).

    Not shown: 998 closed tcp ports (conn-refused)

    PORT         STATE        SERVICE

    22/tcp       open         ssh

    80/tcp       open         http

    Có thể thấy rõ kết quả scan NMap của địa chỉ IP trên, mạng này đang mở hai port là SSH và HTTP. Bạn có thể setup và chạy lệnh này hàng ngày hoặc hàng tuần để đảm bảo mạng của bạn được review.

    Ngoài ra, có thể dùng lệnh bên dưới để scan được kết quả chi tiết hơn.

    nmap -p0- -v -A -T4 171.226.239.18″ viết lại nội dung mới.

    Kết nối nằm trên cùng một mạng LAN

    ZeroTier là một lớp phủ mạng an toàn cho phép bạn quản lý tất cả các tài nguyên mạng của mình như thể chúng nằm trên cùng một mạng LAN. Giải pháp được xác định bằng phần mềm có thể được triển khai trong vài phút từ bất kỳ đâu. Bất kể bạn cần kết nối bao nhiêu thiết bị hoặc chúng ở đâu trên thế giới, ZeroTier đều giúp mạng toàn cầu trở nên đơn giản.

    Điều này được thực hiện bằng cách kết hợp mạng ngang hàng được mã hóa và bảo mật (gọi là VL1) với lớp mô phỏng Ethernet tương tự như VXLAN (gọi là VL2). Lớp ảo hóa Ethernet VL2 của chúng tôi bao gồm các tính năng SDN doanh nghiệp tiên tiến như các quy tắc kiểm soát truy cập chi tiết để phân đoạn mạng và giám sát bảo mật.

    Tất cả lưu lượng ZeroTier đều được mã hóa từ đầu đến cuối bằng các khóa bí mật mà chỉ bạn kiểm soát. Hầu hết lưu lượng đều chảy ngang hàng, mặc dù chúng tôi cung cấp dịch vụ chuyển tiếp miễn phí (nhưng chậm) cho những người dùng không thể thiết lập kết nối ngang hàng. Địa chỉ ZeroTier có thể được coi là số cổng trên một công tắc thông minh Ethernet doanh nghiệp toàn cầu khổng lồ hỗ trợ VLAN. ID mạng là ID VLAN mà các cổng này có thể được gán cho. Một cổng duy nhất có thể được gán cho nhiều hơn một VLAN. Địa chỉ ZeroTier trông giống như 8056c2e21cvà ID mạng trông giống như 8056c2e21c000001. ID mạng bao gồm địa chỉ ZeroTier của bộ điều khiển chính của mạng đó và ID 24 bit tùy ý xác định mạng trên bộ điều khiển này.

    https://github.com/zerotier/ZeroTierOne

    Run

    Trên Linux và BSD, nếu bạn xây dựng từ nguồn, bạn có thể bắt đầu dịch vụ bằng:

    sudo ./zerotier-one -d
    Trên hầu hết các bản phân phối, macOS và Windows, trình cài đặt sẽ khởi động dịch vụ và thiết lập để dịch vụ này khởi động cùng hệ thống.

    Một thư mục gốc cho hệ thống của bạn sẽ tự động được tạo.

    Dịch vụ được kiểm soát thông qua JSON API, theo mặc định có sẵn tại 127.0.0.1:9993. Nó cũng lắng nghe 0.0.0.0:9993mà chỉ có thể sử dụng nếu allowManagementFromđược cấu hình đúng trong local.conf. Chúng tôi bao gồm một tiện ích dòng lệnh zerotier-cli để thực hiện các lệnh gọi API cho các mục tiêu chuẩn như tham gia và rời khỏi mạng. Tệp authtoken.secret trong thư mục home chứa mã thông báo bí mật để truy cập API này.

    Sau đây là vị trí lưu trữ các thư mục home (theo mặc định) trên mỗi hệ điều hành:

    Linux :/var/lib/zerotier-one
    FreeBSD / OpenBSD :/var/db/zerotier-one
    Máy Mac :/Library/Application Support/ZeroTier/One
    Windows : \ProgramData\ZeroTier\One(Đây là mặc định. Thư mục ‘dữ liệu ứng dụng dùng chung’ cơ sở có thể khác nếu Windows được cài đặt với cách gán hoặc bố trí ổ đĩa không chuẩn.)

    Xử lý sự cố cơ bản

    Đối với hầu hết người dùng, nó hoạt động bình thường.

    Nếu bạn đang chạy tường lửa hệ thống cục bộ, chúng tôi khuyên bạn nên thêm quy tắc cho phép zerotier. Nếu bạn đã cài đặt tệp nhị phân cho Windows, điều này sẽ được thực hiện tự động. Các nền tảng khác có thể yêu cầu chỉnh sửa thủ công các quy tắc tường lửa cục bộ tùy thuộc vào cấu hình của bạn.

    Tường lửa Mac có thể được tìm thấy trong mục “Bảo mật” trong Tùy chọn hệ thống. Linux có nhiều hệ thống và công cụ cấu hình tường lửa.

    Trên CentOS, hãy kiểm /etc/sysconfig/iptablestra các quy tắc IPTables. Đối với các bản phân phối khác, hãy tham khảo tài liệu phân phối của bạn. Bạn cũng sẽ phải kiểm tra UI hoặc tài liệu cho các ứng dụng tường lửa của bên thứ ba thương mại như Little Snitch (Mac), McAfee Firewall Enterprise (Windows), v.v. nếu bạn đang chạy bất kỳ ứng dụng nào trong số đó. Một số môi trường doanh nghiệp có thể có phần mềm tường lửa được quản lý tập trung, vì vậy bạn cũng có thể phải liên hệ với CNTT.

    Các đối tác ZeroTier One sẽ tự động định vị nhau và giao tiếp trực tiếp qua mạng LAN có dây cục bộ nếu cổng UDP 9993 inbound mở . Nếu cổng đó bị lọc, họ sẽ không thể thấy các gói thông báo LAN của nhau. Nếu bạn gặp phải hiệu suất kém giữa các thiết bị trên cùng một mạng vật lý, hãy kiểm tra cài đặt tường lửa của họ. Nếu không có LAN, các đối tác tự động định vị phải thử “vòng lặp ngược” NAT traversal, đôi khi không thành công và trong mọi trường hợp đều yêu cầu mọi gói phải đi qua bộ định tuyến ngoài của bạn hai lần.

    Người dùng đằng sau một số loại tường lửa và thiết bị NAT “đối xứng” có thể không thể kết nối trực tiếp với các đối tác bên ngoài. ZeroTier có hỗ trợ hạn chế cho dự đoán cổng và sẽ cố gắng vượt qua các NAT đối xứng, nhưng điều này không phải lúc nào cũng hiệu quả. Nếu kết nối P2P không thành công, bạn sẽ phải trả lại các gói UDP khỏi máy chủ chuyển tiếp của chúng tôi, dẫn đến hiệu suất chậm hơn. Một số bộ định tuyến NAT có chế độ NAT có thể cấu hình và việc đặt chế độ này thành “full cone” sẽ loại bỏ vấn đề này. Nếu bạn thực hiện điều này, bạn cũng có thể thấy sự cải thiện kỳ ​​diệu đối với những thứ như điện thoại VoIP, Skype, BitTorrent, WebRTC, một số trò chơi, v.v., vì tất cả những thứ này đều sử dụng các kỹ thuật vượt qua NAT tương tự như của chúng tôi.

    Nếu tường lửa giữa bạn và Internet chặn lưu lượng UDP của ZeroTier, bạn sẽ phải quay lại phương án cuối cùng là đường hầm TCP đến rootserver qua cổng 443 (giả mạo https). Phương án này sẽ hoạt động ở hầu hết mọi nơi nhưng rất chậm so với UDP hoặc kết nối ngang hàng trực tiếp.

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *