Tường lửa của bản phân phối Linux có thể chặn lưu lượng VPN của bạn
Hai trình quản lý lọc, một bộ quy tắc và một đường hầm đáp xuống sai vùng. Xác định chủ sở hữu và hướng trước khi thêm bất kỳ quy tắc nào.
Đường hầm được dựng lên, nhật ký báo đã kết nối, và một ứng dụng vẫn không thể chạm tới điều gì. Trên máy khách Linux, điều đó thường có nghĩa là tường lửa của bản phân phối đang lọc một đường đi mà máy khách VPN chưa bao giờ quản lý. Hai trình quản lý có thể cùng hoạt động, mỗi cái có quan niệm riêng về giao diện, vùng và hướng của lưu lượng. Xác định chủ sở hữu trước khi chỉnh sửa bất cứ điều gì nhanh hơn là thử quy tắc cho đến khi có thứ gì đó hoạt động.
Tìm trình quản lý và backend
Hãy bắt đầu từ thứ thực sự được nạp, không phải thứ được cài đặt. Một bản phân phối có thể cung cấp firewalld, ufw và một dịch vụ nftables đơn giản, và chỉ một trong số chúng sở hữu bộ quy tắc đang chạy. Các gói cùng tồn tại một cách yên bình, và một quy tắc được nhập qua frontend sai sẽ không bao giờ tới nhân. Đọc dịch vụ đang hoạt động, rồi đọc bộ quy tắc mà nó tạo ra.
Backend quan trọng ngang với frontend. Một bản cài firewalld có thể điều khiển nftables hoặc backend iptables cũ tùy theo phiên bản và cấu hình, và cả hai cho ra kết quả kiểm tra khác nhau. Ghi bản phân phối, phiên bản và backend vào phiếu trước khi so sánh hệ thống của bạn với bất kỳ hướng dẫn nào.
Khớp hướng và giao diện
Yêu cầu đi ra của máy khách, trình lắng nghe đi vào và gói được chuyển tiếp đi qua các móc khác nhau, và một quy tắc cho một cái không bao phủ những cái khác. Một vùng cho phép LAN cục bộ thường không bao gồm giao diện đường hầm hay nhóm địa chỉ VPN. Giao diện đường hầm thường đáp xuống vùng mặc định, vốn thường nghiêm ngặt hơn vùng chứa bộ điều hợp vật lý. Sự không khớp đó giải thích vì sao duyệt web hoạt động trên LAN và dừng ngay khi đường hầm được dựng lên.
Hỏi hướng nào đã thất bại trước khi chọn quy tắc. Một ứng dụng không thể kết nối ra ngoài cần đường ra, trong khi một dịch vụ đi vào cần đường vào trên giao diện đường hầm. Thêm quy tắc vào chuỗi sai tạo ra thay đổi trông như đã áp dụng và không làm gì cả.
Giữ các chủ sở hữu quy tắc đồng thuận
Móc của máy khách VPN, môi trường chạy container và dịch vụ của bản phân phối đều có thể sửa đổi mạng, và chúng không phối hợp với nhau. Các quy tắc nhập tay biến mất ở lần nạp lại tiếp theo, và các quy tắc chèn vào chuỗi của trình quản lý có thể được đánh giá theo thứ tự bạn không định trước. Dùng cấu hình lâu bền của trình quản lý và kiểm tra bộ quy tắc thu được thay vì tệp bạn đã viết. Tắt toàn bộ tường lửa vì một dịch vụ không tiếp cận được là đổi một vấn đề nhỏ lấy một vấn đề lớn.
Bộ đếm hẹp là cách rẻ để tìm luồng bị từ chối. Một quy tắc ghi nhật ký giới hạn ở một đích và một cổng cho thấy việc loại bỏ có xảy ra cục bộ hay không mà không bắt lưu lượng của người khác. Gỡ quy tắc ghi nhật ký khi cuộc điều tra kết thúc, vì đó là chẩn đoán chứ không phải chính sách, và tài liệu về vùng của firewalld giải thích cách giao diện và dịch vụ kết hợp với nhau.
Xác minh bản sửa mà không mất khóa bảo vệ
Kiểm tra trạng thái đã áp dụng bằng trình quản lý sở hữu nó, dùng các lệnh khớp với backend bạn đã ghi. Danh sách bên dưới giả định firewalld chịu trách nhiệm; hãy thay bằng tương đương cho nftables hoặc ufw thay vì chạy tất cả. Trộn công cụ trong một phiên là cách một máy kết thúc với hai bộ quy tắc xung đột.
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=trusted --list-all
sudo nft list ruleset | head -40
Lệnh đầu tiên nêu tên các vùng và giao diện được gán cho chúng, cho thấy đường hầm thực sự đáp ở đâu. Lệnh thứ hai in ra quy tắc và dịch vụ của một vùng, để bạn thấy giao diện VPN có được bao phủ hay không. Danh sách nftables là sự thật cơ bản cho backend đang dùng, và một quy tắc chỉ tồn tại trong tệp cấu hình sẽ không xuất hiện ở đó. So sánh ba đầu ra với quy tắc bạn đã thêm, và sự không khớp thường tự gọi tên mình.
Sau đó lặp lại yêu cầu ban đầu và hành vi lỗi bạn cần. Một trang vừa hoạt động không đủ nếu cùng thay đổi đó đã gỡ khóa bảo vệ của máy khách, nên hãy thử cả một đường không được bảo vệ. Ghi lại trình quản lý, backend, giao diện và mục đích của quy tắc, vì một bản cập nhật gói đánh thức trình quản lý thứ hai sẽ dựng lại toàn bộ mớ hỗn độn.