Mục tiêu là hợp lý: chỉ người dùng đường hầm mới nên chạm tới các dịch vụ trên máy này. Cách làm quen thuộc là một chuỗi đầu vào IPv6 bỏ tất cả trừ WireGuard, và điều đó cũng bỏ luôn lưu lượng giữ máy chủ gắn với chính đường liên kết của nó. Khám phá lân cận và các thông điệp bảo trì đường đi không phải là truy cập dịch vụ, và loại bỏ chúng tạo ra một máy không thể tới được vì những lý do không liên quan đến chính sách của bạn. Đường hầm dựng lên, các dịch vụ được giới hạn đúng, và không còn gì khác trên đường liên kết hoạt động.

Ba trách nhiệm, một bộ quy tắc

Trách nhiệm thứ nhất là vận hành mạng bên ngoài: máy chủ phải ở lại trên đường liên kết của nó, phân giải lân cận và biết các giới hạn đường đi của đường liên kết đó. Thứ hai là trình lắng nghe được mã hoá, nhận UDP trên địa chỉ và cổng bạn đã chọn. Thứ ba là tập dịch vụ đã giải mã mà bạn muốn người dùng đường hầm chạm tới.

Đó là ba chính sách khác nhau, và chỉ cái thứ hai và thứ ba liên quan đến VPN. Một bộ quy tắc coi chúng là một sẽ thừa hưởng kiểu hỏng trong đó việc siết ranh giới ứng dụng âm thầm phá vỡ sự gắn kết của máy chủ.

Giữ chúng trong các chuỗi riêng, hoặc ít nhất là các chú thích riêng, để người sau thấy dòng nào tồn tại vì lý do gì.

ICMPv6 làm gì cho máy chủ

IPv6 dựa vào ICMPv6 cho nhiều thứ hơn hẳn echo. Yêu cầu và thông báo lân cận thay thế ARP và cần thiết cho việc giao nhận cục bộ. Packet Too Big mang thông tin MTU của đường đi, và bỏ qua nó tạo ra các phiên truyền kẹt ở gói lớn. Thông báo router mang tuyến mặc định và thông tin tiền tố khi đường liên kết dùng cấu hình tự động.

RFC 4890 tách các thông điệp mà bộ lọc máy chủ buộc phải cho qua khỏi những thông điệp là lựa chọn hành chính, và làm việc đó trong một mục dành cho máy chủ khác với quy tắc cho router chuyển tiếp giữa các mạng. Chỉ đọc mục chuyển tiếp sẽ tạo ra chính sách đầu vào quá chặt với máy chủ mà nó bảo vệ.

Quy tắc thực hành là cho phép các thông điệp lỗi và cấu hình thiết yếu trên giao diện cần chúng, giới hạn theo loại và nguồn ở nơi nền tảng cho phép, và quyết định rõ ràng về phần còn lại.

Thay tất cả bằng một sự cho phép ICMPv6 toàn diện giải quyết vấn đề sẵn sàng và từ bỏ việc lọc. Thay bằng một sự bỏ toàn diện giải quyết vấn đề lọc và từ bỏ máy chủ.

Cho đường hầm qua trước, rồi đến dịch vụ

Chấp nhận vận chuyển WireGuard trên địa chỉ ngoài và cổng UDP dự kiến, và chấp nhận lưu lượng về qua theo dõi kết nối. Sau đó cho phép các dịch vụ ứng dụng đi qua giao diện đường hầm, từ những nguồn bạn thực sự cấp quyền.

Một sự cho phép cho cổng UDP bên ngoài không cấp quyền cho các yêu cầu đã giải mã bên trong nó. Chính sự phân biệt đó là toàn bộ lý do giao diện đường hầm xuất hiện trong các quy tắc dịch vụ.

Đọc bộ quy tắc như nó đang là, không phải như tệp mô tả:

sudo nft list ruleset
ip -6 addr show
ip -6 route show default

Một trình lắng nghe trên địa chỉ vật lý là một sự phơi bày riêng so với cùng dịch vụ trên địa chỉ đường hầm. Nếu máy còn chuyển tiếp lưu lượng sang máy khác, đó là quyết định của chuỗi chuyển tiếp chứ không phải chính sách đầu vào này, và nó cần lý lẽ riêng.

Kiểm tra đường liên kết, không chỉ đường hầm

Một đường hầm hoạt động sau thay đổi chứng minh ít hơn vẻ ngoài của nó, vì một mục lân cận sẵn có và một kết nối đã thiết lập có thể che một thông điệp điều khiển mà chính sách giờ đây bỏ đi.

Kiểm tra sự gắn kết trực tiếp, rồi kiểm tra rằng đường bị loại trừ vẫn thất bại:

ip -6 neigh show
ping -6 -c 3 2001:db8:1::1
sudo nft -c -f /etc/nftables.conf

Bảng lân cận còn đầy đủ sau khi khởi động lại là dấu hiệu khám phá vẫn hoạt động. Bảng trống rỗng và không bao giờ đầy lại là dấu hiệu bạn đã lọc nó đi. Lệnh thứ ba kiểm tra cú pháp của bộ quy tắc mà không áp dụng nó, điều đáng làm khi bạn còn phiên.

Khôi phục một máy chủ mà bạn đã tự khoá mình ra ngoài

Trước khi thay đổi các quy tắc tường lửa mang chính phiên quản trị của bạn, hãy giữ một kênh thứ hai: console, kết nối nối tiếp, hoặc một lần hoàn tác đã lên lịch để gỡ các quy tắc mới nếu bạn không huỷ nó.

Nếu một thay đổi thực sự khoá bạn ra ngoài, việc khôi phục đi qua kênh đó chứ không qua mạng bạn vừa gỡ. Khôi phục bộ quy tắc trước từ một bản sao đã lưu, xác nhận máy chủ lại tới được, và chỉ sau đó mới áp dụng chính sách dự kiến thành từng phần nhỏ hơn.

Chính sách cuối cùng không phổ quát. Địa chỉ hoá, định tuyến và cách hiện thực tường lửa là đầu vào triển khai, nhưng ranh giới ở đâu cũng vậy: từ chối truy cập ứng dụng không mong muốn trong khi giữ lưu lượng điều khiển mang đường hầm được cấp quyền.

Bài viết liên quan