Hai lệnh này không có cùng ranh giới thực thi:

proxychains4 sudo command
sudo proxychains4 command

Proxychains-ng sắp xếp để một thư viện được nạp trước vào chương trình đích. Trên Linux, việc chạy một chương trình set-user-ID như sudo sẽ kích hoạt các quy tắc bảo mật của trình nạp, vốn xóa các biến nạp thư viện liên quan trước khi sudo kịp giữ chúng lại.

Do đó, “giữ lại nhiều biến môi trường hơn” không phải là cách sửa chữa đáng tin cậy để đặt sudo bên trong trình bao. Sổ tay sudoers mô tả rõ ràng rằng các biến như LD_* bị xóa trước khi sudo bắt đầu.

Nếu một lệnh thực sự cần tài khoản đích, hãy khởi động trình bao trong ngữ cảnh được ủy quyền đó. Sau đó kiểm tra nó đọc cấu hình nào: sudo có thể thay đổi HOME, PATH và tệp riêng của từng người dùng. Một lời gọi không đặc quyền chạy được không chứng minh rằng root cũng chọn cùng danh sách proxy.

Hãy ưu tiên giao diện proxy gốc của chương trình khi chương trình có sẵn. Điều đó tránh phải dựa vào việc chặn bắt cho một yêu cầu mà chương trình đã biết cách định tuyến.

Cũng cần lưu ý giới hạn phạm vi của proxychains. Thông báo khởi động của nó chứng minh rằng trình bao đã khởi động; nó không chứng minh rằng các gói thô, các lệnh gọi không được hỗ trợ hay một tiến trình ứng dụng hiện có được khởi chạy riêng đã dùng thư viện của nó. Hãy xác nhận thao tác mạng mà bạn định đưa qua proxy, thay vì coi đặc quyền root là bằng chứng rằng mọi thao tác đều bị chặn bắt.

Bài viết liên quan