Ngoại lệ UFW cho VPN khi địa chỉ điểm cuối thay đổi
Kill switch vẫn cho phép peer của hôm qua trong khi tên máy chủ VPN phân giải ở nơi khác. Làm mới ngoại lệ UFW như một quy trình làm việc duy nhất có chủ sở hữu.
Ứng dụng khách cố kết nối lại và không có gì rời khỏi máy, dù cùng một hồ sơ vẫn hoạt động tuần trước. Tên máy chủ của điểm cuối giờ phân giải sang một địa chỉ khác, và ngoại lệ hướng ra vẫn nêu địa chỉ cũ. Chỉ một quyền đã cũ đó cũng đủ biến một kill switch đang hoạt động thành gián đoạn hoàn toàn, và nó vô hình trong mọi chỉ báo trạng thái mà màn hình hiển thị. Việc sửa chữa là một quy trình nhỏ chứ không phải một chỉnh sửa một dòng.
Đường hầm kết nối lại, rồi không có gì đi ra
Một quy tắc hướng ra nêu địa chỉ đích là một ảnh chụp tại thời điểm, còn câu trả lời DNS thì không. Khi nhà cung cấp xoay địa chỉ, gói tin mà ứng dụng khách gửi tới peer mới không khớp với gì cả và bị lệnh từ chối mặc định bỏ đi. Ứng dụng khách sau đó báo hết thời gian chờ, nghe như lỗi máy chủ chứ không phải lỗi tường lửa.
Ghim địa chỉ mà một tra cứu công khai trả về khiến hôm nay chạy được và để ngày mai hỏng. Đó là một chỉnh sửa một lần, không phải một chính sách bảo trì.
Mô tả ngoại lệ bạn thực sự muốn
Hãy bắt đầu bằng việc ghi ra bốn giá trị mà quy tắc cần: tên hoặc tập địa chỉ điểm cuối đã được phê duyệt, giao thức truyền, cổng đích và giao diện mà gói tin đi ra. Cả bốn đều là một phần của quyền, và bất kỳ giá trị nào trong đó cũng có thể sai trong khi quy tắc vẫn trông hợp lý. Một quy tắc đúng ở ba giá trị sẽ thất bại y hệt một quy tắc sai ở cả bốn. Hãy ghi chúng ra trước khi gõ lệnh, vì một quy tắc chỉ tốt bằng phần mô tả phía sau nó.
Lệnh bên dưới cho thấy hình dạng cho một điểm cuối IPv4 UDP trên một uplink có dây. Thay cả hai giá trị bằng những giá trị bạn đã xác minh với việc triển khai.
sudo ufw allow out on enp3s0 proto udp to 192.0.2.44 port 1194
sudo ufw status verbose
Quyền đó không cho phép các đích tùy ý trên cùng cổng, không tạo trình lắng nghe và không bao phủ TCP. Trang hướng dẫn của UFW mô tả cách địa chỉ, giao diện và giao thức thu hẹp một quy tắc, và chính sự thu hẹp đó là toàn bộ vấn đề.
Làm mới nó như một quy trình làm việc
Coi ngoại lệ là một tài nguyên có chủ sở hữu và chuyển đổi, không phải một lệnh mà ai đó nhớ để chạy. Trước tiên hãy lấy một ứng viên từ trình phân giải và danh mục điểm cuối của chính việc triển khai, và định nghĩa một cách có chủ ý cách tên đó được phân giải trước khi đường hầm tồn tại. Sau đó xác thực ứng viên với giao thức, cổng và họ địa chỉ dự định trước khi chạm vào tập quy tắc.
Hãy cài đặt quyền hẹp mới trước và xác nhận nó đã được nạp, vì việc yêu cầu ứng dụng khách dùng một địa chỉ mà tường lửa vẫn chặn tạo ra lỗi trông như sự cố máy chủ. Giữ nguyên các quy tắc không liên quan trong khi thay đổi.
Quan sát quá trình chuyển đổi của ứng dụng khách qua đường kết nối lại được hỗ trợ và xác nhận địa chỉ từ xa mà nó đã chọn. Chỉ cập nhật DNS không di chuyển một socket đang tồn tại, và một thiết lập duy trì điểm cuối có thể giữ ứng dụng khách ở peer cũ rất lâu sau khi bản ghi đã thay đổi.
Cuối cùng hãy chủ động loại bỏ quyền đã lỗi thời, cho phép cửa sổ chồng lấn đã được phê duyệt trong khi một phiên cũ vẫn còn hoạt động. Xóa mục cũ quá sớm tạo ra một gián đoạn ngắn; để nó mãi mãi để lại một quyền không ai giải thích được.
Chủ động loại bỏ quyền cũ
Việc xóa là nơi tập trung phần lớn rủi ro, vì quy tắc cũ là thứ duy nhất hiện đang hoạt động. Nếu việc cài đặt ứng viên thất bại, đừng tiếp tục và đừng xóa mục vẫn còn mang lưu lượng. Nếu bản thân việc xóa thất bại, hãy ghi nhận quyền đã lỗi thời là lỗi thời thay vì tuyên bố chính sách đã cập nhật.
Lặp lại toàn bộ đánh giá khi uplink chuyển từ Ethernet sang Wi-Fi, khi giao thức truyền thay đổi, hoặc khi một dịch vụ xoay qua nhiều địa chỉ. Một quy tắc dành riêng cho giao diện được cho là sẽ ngừng khớp sau khi mạng thay đổi, và hành vi đó là đúng dù nó trông giống một bước thoái lui.
Sau đó hãy chứng minh hợp đồng bằng lưu lượng vô hại. Điểm cuối đã được phê duyệt phải tiếp cận được trong lúc thiết lập, ứng dụng được bảo vệ phải hoạt động khi đã kết nối, và lưu lượng trực tiếp không liên quan phải tiếp tục bị chặn trong một lần gián đoạn. Hãy bao gồm cả hai họ địa chỉ và một lần thử cập nhật cố ý thất bại, vì một kết nối thành công sau một chỉnh sửa địa chỉ đã ghim không chứng minh được trường hợp nào trong số đó.