UFW báo không tìm thấy hồ sơ khớp với OpenSSH, và việc tìm nguyên nhân đi thẳng tới máy chủ SSH. Đó là hướng sai: thông báo nói về một định nghĩa tường lửa có tên và không nói gì về việc sshd đã cài, đang chạy hay đang lắng nghe. Hồ sơ ứng dụng UFW là danh sách cổng và giao thức có nhãn. Đọc định nghĩa chỉ mất một lệnh và thường kết thúc cuộc điều tra.

Bước 1: liệt kê những tên mà UFW thực sự biết

Hỏi tường lửa xem nó có những tên nào trước khi yêu cầu cho phép một tên. Danh sách đến từ các hồ sơ được cài trên máy này, nên một cái tên thiếu là sự thật về hệ thống này, không phải về phần mềm bạn đang cố bảo vệ. Nếu tên có mặt, lỗi đến từ lỗi gõ hoặc một bí danh cũ trong lịch sử shell của bạn.

ufw app list
ufw app info OpenSSH

Danh sách ngắn trong bản cài mặc định, và các tên không phải tên gói. Hồ sơ tên OpenSSH có thể không có trong khi gói openssh-server đã được cài, và ngược lại cũng có thể. Dùng đúng tên mà danh sách in ra; tên hồ sơ VPN hay trình khởi chạy màn hình có cách viết tương tự không phải hồ sơ ứng dụng UFW. Nếu tên bạn muốn không có, đó là phát hiện, và bước tiếp theo là xem điều gì nên cung cấp nó.

Bước 2: đọc định nghĩa, không phải nhãn

Hồ sơ là một tệp kiểu INI dưới /etc/ufw/applications.d, gồm tên, tiêu đề, mô tả và trường cổng. Trường cổng có thể liệt kê nhiều cổng và giao vận, nên nhãn cho bạn biết ít hơn định nghĩa. Hướng dẫn UFW ghi lại các trường này và thao tác cập nhật ứng dụng. Hãy đọc tệp thay vì cho rằng cái tên nghĩa là một cổng quen thuộc.

cat /etc/ufw/applications.d/openssh-server
ufw app info OpenSSH

Một định nghĩa chứa 22/tcp mô tả cổng TCP 22 và không gì khác. Nó không chứng minh rằng daemon trên máy này đang lắng nghe ở đó, và không bao gồm cổng thứ hai mà bạn thêm sau này. Nếu daemon chạy ở nơi khác, hồ sơ là quyền sai dù tên của nó khớp với sản phẩm. So sánh trình lắng nghe với định nghĩa trước khi cho phép một trong hai.

ss -ltnp 'sport = :22'

Dừng lại nếu định nghĩa và trình lắng nghe không khớp. Cho phép một hồ sơ nêu tên một cổng mà không ai lắng nghe sẽ tạo ra một quy tắc trông như tiến bộ và không bảo vệ gì cả.

Bước 3: tách hồ sơ khỏi dịch vụ đang chạy

Cho phép một hồ sơ có tên không cài đặt, khởi động hay cấu hình dịch vụ, và một dịch vụ đang chạy không cần hồ sơ đóng gói để có thể truy cập. Đó là những quyết định riêng thuộc về các công cụ khác nhau: trình quản lý gói, trình quản lý dịch vụ và tường lửa. Coi chúng là một chính là cách người ta cài một máy chủ không mong muốn để một cái tên tượng trưng xuất hiện.

Với máy chủ VPN, việc tách ra vẫn tiếp tục sau khi trình lắng nghe bên ngoài được cho phép. Quyền cho cổng giao vận mã hóa không bật chuyển tiếp trong nhân, không thêm quy tắc NAT và không cho người dùng đường hầm truy cập LAN. Mỗi điều đó là một chính sách riêng với lần xem xét riêng. Một hồ sơ mang tên sản phẩm VPN chỉ mô tả các cổng nó liệt kê, và phần còn lại của cấu hình máy chủ vẫn là việc bạn phải viết.

Nếu hồ sơ không có và bạn cần một cái, một quy tắc cổng rõ ràng đã được xem xét hoặc một hồ sơ cục bộ dưới applications.d đều hợp lệ. Cài một gói mà bạn không muốn thì không.

Bước 4: giữ đường quay lại trước khi tải lại tường lửa

Trước mọi thay đổi quy tắc, hãy xác nhận bạn có đường thứ hai vào máy: một bảng điều khiển, một địa chỉ ngoài băng hoặc một lần hoàn tác đã lên lịch. Sau đó đọc bộ quy tắc và chính sách mặc định, vì từ chối mặc định mà không có quy tắc SSH là cách kinh điển để tự khóa mình ra ngoài khi thử nghiệm. Thay đổi từng quy tắc một và đọc xác nhận mà UFW in ra. Một quy tắc đã lưu, một quy tắc đang hoạt động và một dịch vụ truy cập được là ba quan sát khác nhau.

ufw status verbose
ufw allow 22/tcp
ufw app update OpenSSH

Sau thay đổi, hãy thử kết nối được cho phép và một đường vẫn phải bị từ chối. Thử nghiệm từ chối quan trọng ngang với thử nghiệm cho phép, vì một quy tắc rộng hơn dự định sẽ qua lần thử thứ nhất và hỏng ở lần thứ hai. Ghi lại tên hồ sơ, các cổng nó chứa và trình lắng nghe bạn đã đối chiếu.

Danh sách kiểm tra kết thúc khi tên tồn tại hoặc được cố ý thay thế, định nghĩa khớp với trình lắng nghe thật, dịch vụ được quản lý riêng, và bạn đã thử cả đường được cho phép lẫn đường bị từ chối với một lộ trình khôi phục trong tay. Một cái tên trong danh sách không phải là điều nào trong số đó.

Bài viết liên quan