Làm cách nào tôi có thể chặn tất cả lưu lượng truy cập * ngoại trừ * Tor?


26

Trên hệ thống Linux, có một cách để chặn tất cả lưu lượng vào và ra trừ khi nó đi qua mạng Tor. Điều này bao gồm mọi hình thức giao tiếp IP, không chỉ kết nối TCP. Ví dụ, tôi muốn UDP bị chặn hoàn toàn vì nó không thể đi qua Tor. Tôi muốn hệ thống này sử dụng Internet hoàn toàn ẩn danh và tôi không muốn bất kỳ ứng dụng nào bị rò rỉ.

Tôi nhận ra điều này có thể phức tạp vì bản thân Tor cần giao tiếp với các nút chuyển tiếp bằng cách nào đó.


Tôi vừa định hỏi một câu hỏi tương tự :)
amyassin

5
Đối với những người bạn bỏ phiếu gần, tôi muốn nhắc bạn rằng có những trường hợp sử dụng kinh doanh hợp lệ cho Tor .
Michael Hampton

Câu trả lời:


26

Đủ dễ dàng với iptables. Nó có thể có các quy tắc phù hợp với người dùng cụ thể và bạn nên đã thiết lập torđể chạy theo ID người dùng của chính nó; gói deb và vòng / phút được cung cấp bởi các bản phân phối Linux lớn và Dự án Tor đã thiết lập người dùng cho Tor.

Hoàn thành mẫu, iptables có thể sử dụng và cấu hình Tor theo sau. Tường lửa này có thể được tải với iptables-restorelệnh. Kết quả cuối cùng của cấu hình này sẽ định tuyến trong suốt tất cả lưu lượng truy cập có nguồn gốc từ hoặc được chuyển tiếp qua máy chủ đến Tor mà không cần phải định cấu hình proxy. Cấu hình này phải chống rò rỉ; mặc dù bạn tất nhiên nên kiểm tra nó kỹ lưỡng.

Lưu ý rằng uid cho người dùng tor (ở đây, 998) được lưu trữ dưới dạng số bởi iptables. Thay thế uid chính xác cho người dùng tor của bạn ở mỗi nơi nó xuất hiện ở đây.

Cũng lưu ý rằng địa chỉ IP của máy chủ cần phải được cung cấp trong quy tắc đầu tiên để hỗ trợ clearnet đến và lưu lượng LAN được gửi trực tiếp đến máy chủ (ở đây hiển thị dưới dạng 198.51.100.212). Nếu bạn có nhiều địa chỉ IP, hãy lặp lại quy tắc cho từng địa chỉ.

*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -d 198.51.100.212/32 -j RETURN
-A PREROUTING -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A PREROUTING -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 49151
-A OUTPUT -o lo -j RETURN
-A OUTPUT -m owner --uid-owner 998 -j RETURN
-A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 53
-A OUTPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j REDIRECT --to-ports 49151
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m conntrack --ctstate NEW -m tcp -d 127.0.0.1 --dport 22 -j ACCEPT
-A INPUT -j LOG --log-prefix "IPv4 REJECT INPUT: "
-A FORWARD -j LOG --log-prefix "IPv4 REJECT FORWARD: "
-A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -p udp -m udp --dport 53 -j ACCEPT
-A OUTPUT -d 127.0.0.1/32 -p tcp -m tcp --dport 49151 -j ACCEPT
-A OUTPUT -m owner --uid-owner 998 -m conntrack --ctstate NEW -j ACCEPT
-A OUTPUT -j LOG --log-prefix "IPv4 REJECT OUTPUT: "
COMMIT

Quy tắc ssh INPUT chỉ cho phép các kết nối nếu chúng đến thông qua máy chủ cục bộ, tức là dịch vụ ẩn Tor. Nếu bạn cũng muốn cho phép các kết nối ssh đến thông qua clearnet, hãy xóa -d 127.0.0.1.

Các torrctập tin tương ứng là:

User toranon
SOCKSPort 9050
DNSPort 53
TransPort 49151
AutomapHostsOnResolve 1

Cấu hình này yêu cầu máy chủ lưu trữ có địa chỉ IP tĩnh. Đối với các trường hợp sử dụng dự kiến, có khả năng bạn đã lên kế hoạch cho nó để có một địa chỉ IP tĩnh.

Và cuối cùng, đầu ra!

[root@unknown ~]# curl ifconfig.me
31.31.73.71
[root@unknown ~]# host 31.31.73.71
71.73.31.31.in-addr.arpa domain name pointer cronix.sk.
[root@unknown ~]# curl ifconfig.me
178.20.55.16
[root@unknown ~]# host 178.20.55.16
16.55.20.178.in-addr.arpa domain name pointer marcuse-1.nos-oignons.net.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.