Công cụ nội bộ

Bộ điều khiển đội router MikroTik không có đường vào từ bên ngoài.

Bối cảnh

Mỗi cơ sở khách hàng có một router MikroTik, và mỗi router được quản lý bằng tay: một kỹ sư, một VPN, một phiên SSH, một thay đổi không ai ghi lại. Sao lưu cấu hình diễn ra khi có người nhớ ra. Muốn biết một cơ sở còn hoạt động hay không thì phải hỏi khách hàng. Mở một cổng quản trị vào router biên của khách hàng là lựa chọn không ai muốn đứng ra bảo vệ.

Chúng tôi đã làm gì

Chúng tôi xây bộ điều khiển quanh một cơ chế. Mỗi router chạy một scheduler gọi về qua đường hầm WireGuard mỗi phút một lần và nhập bất cứ thứ gì phản hồi chứa. Onboarding, thực thi lệnh từ xa, giám sát sống và sao lưu cấu hình hằng đêm đều rơi ra từ vòng lặp duy nhất đó. Không có scheduler trên bộ điều khiển, không có hàng đợi, và không có đường vào cơ sở khách hàng từ bên ngoài.

Xác thực trên các tuyến thiết bị chính là đường hầm. Mỗi router là một peer WireGuard với đúng một địa chỉ /32, và cryptokey routing loại bỏ mọi gói tin có địa chỉ nguồn không thuộc về khóa gửi. Một địa chỉ nguồn trên giao diện đường hầm là bằng chứng sở hữu khóa, mạnh hơn bearer token, và bộ điều khiển dựng lại danh sách peer nghiêm ngặt từ cơ sở dữ liệu ở mỗi thay đổi để bất biến đó luôn đúng. Một peer canary chạy trong không gian người dùng nằm bên trong đường hầm, liên tục thử chạm tới các router khác và mạng LAN được bảo vệ. Chỉ một phản hồi cũng đủ báo động mọi kênh thông báo.

Onboarding là một dòng dán vào terminal RouterOS, với token bị tiêu hủy ngay khi được lấy. Bộ quy tắc tường lửa cơ sở và script trợ giúp đều được đánh phiên bản, và router tụt phiên bản tự đẩy bản cập nhật cho mình ở lần gọi về kế tiếp. Riêng script gọi về, thứ duy nhất không thể đẩy mù, được nâng cấp qua một scheduler thứ hai chạy song song và phải xác nhận trước khi cái cũ bị gỡ. Script hỏng thì không bao giờ xác nhận, và cái cũ tiếp tục chạy.

Sao lưu là một bản export hằng đêm, so khác với bản trước để nhật ký hoạt động cho thấy điều gì thực sự thay đổi trên thiết bị, chứ không chỉ là có gì đó đã đổi.

Điều gì đã thay đổi

Thêm một cơ sở mất đúng thời gian dán một dòng. Cấu hình của mọi router đều có trên hồ sơ và so khác được. Một cơ sở im lặng hiện trên bảng điều khiển trong vòng hai phút thay vì trong một phiếu hỗ trợ. Bộ điều khiển là một tệp thực thi Go trên một máy ảo, với cơ sở dữ liệu được truyền liên tục sang lưu trữ ngoài máy.

Nếu đường vào duy nhất là router gọi ra, thì không còn gì để tấn công.