Tôi chỉ có thể đưa ra các giả định, bởi vì, bạn chưa liệt kê các chính sách mặc định của mình. Tìm thấy ở đầu của đầu ra iptables -S
. Tôi sẽ cho rằng bạn đang bị hạn chế và bạn có một cái gì đó như thế này.
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
Tuyệt quá! Máy của bạn bây giờ hoàn toàn vô hình, bịt mắt, bị ràng buộc và bịt miệng đối với các gói IP. Điều này cũng gần như là rút phích cắm ra khỏi mạng Ethernet của bạn.
Vì vậy, nếu bạn muốn có hy vọng trong thế giới đen tối, tàn khốc này, bạn sẽ phải đưa ra một số quy tắc để chấp nhận một số gói tin, có thể gặp ai đó với một con dao để cắt dây của bạn, nhưng gói nào là đúng?
Cần có quy tắc đầu ra để cho phép các gói tiếp cận cổng mà máy chủ sử dụng cho lưu lượng http / https
-A OUTPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Cần có quy tắc INPUT để cho phép các gói vào trình duyệt của bạn từ các cổng được sử dụng cho lưu lượng http / https.
-A INPUT -p tcp -m multiport --sports 80,443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Vì vậy, bây giờ bạn có thể THIẾT LẬP các kết nối http / https MỚI từ trình duyệt web của mình và nhận thông tin quay lại thông qua các kết nối được THÀNH LẬP đó.
Có vấn đề gì vậy? Không có cách nào để lấy thông tin DNS, bạn sẽ có thể nhập địa chỉ IP của các trang web bạn muốn truy cập vào trình duyệt web của mình, nhưng đó không phải là chính xác những gì chúng ta muốn. Lưu lượng DNS được xử lý qua cổng 53 với giao thức UDP.
-A OUTPUT -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Và để nhận được những câu trả lời hữu ích đó, chúng ta sẽ cần cắt thêm một số lỗ hổng trong cái bịt mắt đó.
-A INPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
Bây giờ có một chút ánh sáng, bạn có thể nghe thấy nó, nói rằng nếu bạn thực hiện một truy vấn dns đến một trong các máy chủ của google
dig @8.8.8.8 slashdot.org
Phản ứng như vậy! Nhưng có lẽ trình duyệt của bạn vẫn không thể tìm ra nơi slashdot thực sự trên thế giới. Ít nhất một bản phân phối (Ubuntu) được thiết lập để sử dụng proxy DNS nội bộ, do đó bạn sẽ cần có thể tự nói chuyện với mình (phần còn lại của thế giới nhàm chán) bằng cách thiết lập các quy tắc để cho phép bạn giao tiếp với tư cách máy chủ trên cảng 53
-A OUTPUT -o lo -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
-A INPUT -i lo -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
Lưu ý sự khác biệt tinh tế giữa các quy tắc "Tôi là máy chủ của riêng tôi" và trước đây, "Tôi chỉ muốn xem các quy tắc thế giới". Ngoài ra -o lo
và -i lo
chỉ ra rằng máy chủ này sẽ chỉ phục vụ máy này, một biện pháp tốt để tránh bị hút vào một số cuộc tấn công loại nảy DNS phức tạp.
Bây giờ bạn sẽ thấy trình duyệt của bạn hoạt động trở lại.