Biên tập nhật ký VPN mà không đánh mất manh mối quan trọng
Loại bỏ mọi thứ có thể dùng được, giữ một nhãn cho mỗi giá trị thật, và bảo toàn thứ tự cùng các phiên bản. Nhật ký đã biên tập vẫn phải để người lạ theo được sự cố.
Bạn dán một nhật ký vào một luồng hỗ trợ, một câu trả lời chỉ ra rằng nó chứa khóa riêng của bạn, và lần dán đó là vĩnh viễn. Sự cố lặng lẽ hơn lộ ra sau đó, khi mọi địa chỉ đã thành X và tệp không còn chứng minh rằng máy khách và máy chủ là hai máy khác nhau. Một lượt biên tập gỡ bỏ thứ cấp quyền truy cập hoặc nêu tên một người, và giữ lại thứ giải thích sự cố. Đó là một phép biến đổi có quy tắc, không phải xóa bằng ô tìm kiếm.
Biên tập là biến đổi, không phải xóa
Nhật ký mang cả cấu trúc lẫn giá trị: địa chỉ này đã nói với địa chỉ kia, vào thời điểm này, và bắt tay dừng ở bước này. Chính các giá trị làm tệp nguy hiểm khi công bố. Chính cấu trúc làm nó đáng được công bố.
Xóa cả dòng gỡ cả hai cùng lúc, nên một nhật ký bị cắt thường chẳng trả lời được gì. Gộp mọi giá trị vào một token lại hỏng theo cách khác, vì hai đối tác riêng biệt trở thành một chủ thể duy nhất. Cả hai lượt đều có thể trông gọn gàng mà vẫn phá hủy bằng chứng. Phép thử là liệu một người đọc chưa từng thấy mạng của bạn có theo được trình tự và đi đến kết luận bạn đã đi đến hay không.
Trước hết là trích đoạn, sau đó mới làm sạch
Cắt phần quanh sự cố trước khi sửa bất cứ thứ gì. Một trích đoạn nhỏ hơn dễ kiểm tra hơn, và ít có khả năng mang theo thứ bạn quên là có trong tệp. Giữ bản gốc chưa đụng tới trong kho được bảo vệ cho đến khi vấn đề khép lại. Biên tập là mất mát, và tệp thô là cách duy nhất trả lời câu hỏi tiếp theo.
Đọc trích đoạn như văn bản thuần trước khi tin rằng một lệnh xuất đã gỡ phần riêng tư, vì công cụ xuất tóm tắt và xoay trường chứ không làm sạch chúng. Chế độ debug và verbose là nơi dễ có khối khóa hoặc thông tin đăng nhập nội tuyến nhất. Mở tệp bằng trình soạn thảo hiển thị đủ dòng, không phải trình xem tự xuống dòng và giấu phần đuôi.
Cái gì phải đi, và theo thứ tự nào
Bắt đầu bằng thứ cấp quyền truy cập, vì bỏ sót ở đây là kết thúc bài tập: khối khóa riêng, mật khẩu, khóa chia sẻ trước, token API, mã khôi phục. Chúng không chỉ để nhận dạng; ai đọc luồng cũng dùng được. Một lượt gỡ mọi thứ khác mà để lại một trong số đó là thất bại.
Tiếp theo là tầng danh tính: tên người dùng, chủ thể và số sê-ri chứng chỉ, định danh tài khoản, và mọi đường dẫn chứa tên một người. Không thứ nào dùng được một mình, nhưng gộp lại thì nêu tên một người, và đó là phần một luồng công khai không cần.
Tiếp theo là tầng cấu trúc mạng, và đây là chỗ phán đoán xen vào. Địa chỉ công cộng, dải nội bộ và tên máy đều có thể thay khi việc tiết lộ chúng không phục vụ mục đích chẩn đoán nào, và nhãn ổn định tốt hơn chỗ trống. Thứ tự quan trọng vì các tầng trước là tuyệt đối còn tầng cuối là một quyết định. Làm theo thứ tự đó cũng giúp bạn không mất một giờ cho tên máy trong khi khối khóa nằm ở dòng thứ bốn mươi.
| Original kind | Replace with | Keep |
|---|---|---|
| Client address | CLIENT_A | Which side initiated |
| Server address | SERVER_B | Port and protocol |
| Username | USER_1 | The failure that mentions it |
| Hostname | HOST_1 | Resolution order |
Đừng phá hủy các mối quan hệ
Cho mỗi giá trị thật một chỗ giữ duy nhất và dùng lại nó mỗi khi giá trị ấy xuất hiện. Nếu hai địa chỉ vốn khác nhau, sau lượt biên tập chúng phải vẫn khác nhau, nếu không người đọc sẽ kết luận rằng máy khách tự kết nối với chính nó. Tính nhất quán là toàn bộ cơ chế: người đọc học được ánh xạ nhờ thấy một nhãn lặp lại. Một token dùng lại cho hai chủ thể là cách nhanh nhất khiến nhật ký không đọc được.
Thứ tự và thời gian thuộc cùng một cấu trúc. Giữ nguyên trình tự, và nếu dịch mốc thời gian thì dịch tất cả cùng một lượng và nói rõ điều đó trong một dòng. Trộn thời gian đã sửa với thời gian thật còn tệ hơn xóa chúng, vì khi đó các khoảng trống trông như bằng chứng của một việc chưa từng xảy ra.
Cổng, giao thức và chiều giữ nguyên. Một chỗ giữ trên địa chỉ không đòi hỏi chỗ giữ trên cổng.
Giữ câu hỏi mà nhật ký phải trả lời
Ghi ra những trường mà người hỗ trợ cần trước khi bắt đầu sửa: nội dung lỗi chính xác và không bí mật, phiên bản máy khách và máy chủ, phương thức truyền, và bên nào đã khởi phát lần thử. Chính những thứ đó giúp người lạ nhận ra sự cố. Để danh sách bên cạnh biến lượt biên tập thành kiểm tra thay vì hy vọng.
Khi gửi tệp, thêm một dòng nói rõ đã thay thế những gì, để không ai mất một giờ chẩn đoán một tên máy giữ chỗ. Tài liệu của OpenVPN về nhật ký chẩn đoán liệt kê các trường mà nhật ký của nó mang, và đó chính là danh sách bạn sắp sửa. Hãy hỏi trước khi gửi một bản kết xuất bộ nhớ hoặc một bản bắt gói, và dùng kênh hỗ trợ mà bạn kiểm chứng được. Những tạo tác đó chứa nhiều hơn hẳn nhật ký văn bản, và phần nào trong đó không phải của bạn để công bố.
Đọc trích đoạn hoàn chỉnh một lần từ dòng đầu đến dòng cuối, kể cả phần đầu và phần cuối. Ảnh chụp màn hình đáng bị nghi ngờ hơn văn bản, vì chúng mang theo cửa sổ khác, tên tài khoản và mục menu.