tor
Розбіжності
Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.
| Наступна ревізія | Попередня ревізія | ||
| tor [2014/01/30 20:51] – створено wombat | tor [2015/10/21 21:54] (поточний) – [Ссылки] ArchLinux Wiki wombat | ||
|---|---|---|---|
| Рядок 1: | Рядок 1: | ||
| + | ====== Прозрачный прокси ====== | ||
| + | |||
| + | ===== На персональном компьютере ===== | ||
| + | |||
| + | |||
| + | ===== Общесетевой ===== | ||
| + | |||
| + | <file conf "/ | ||
| + | VirtualAddrNetworkIPv4 10.192.0.0/ | ||
| + | AutomapHostsOnResolve 1 | ||
| + | TransPort 9040 | ||
| + | TransListenAddress 127.0.0.1 | ||
| + | TransListenAddress 192.168.1.1 | ||
| + | DNSPort 5353 | ||
| + | DNSListenAddress 127.0.0.1 | ||
| + | DNSListenAddress 192.168.1.1 | ||
| + | </ | ||
| + | |||
| + | <file bash " | ||
| + | # | ||
| + | |||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | # Clear existing rules | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | |||
| + | ## Transproxy rules for Tor | ||
| + | | ||
| + | | ||
| + | |||
| + | |||
| + | # First rules in OUTPUT chain | ||
| + | #iptables -A OUTPUT -m conntrack --ctstate INVALID -j LOG --log-prefix " | ||
| + | iptables -A OUTPUT -m conntrack --ctstate INVALID -j DROP | ||
| + | iptables -A OUTPUT -m state --state INVALID -j LOG --log-prefix " | ||
| + | iptables -A OUTPUT -m state --state INVALID -j DROP | ||
| + | |||
| + | iptables -A OUTPUT ! -o lo ! -d 127.0.0.1 ! -s 127.0.0.1 -p tcp -m tcp --tcp-flags ACK,FIN ACK,FIN -j LOG --log-prefix " | ||
| + | iptables -A OUTPUT ! -o lo ! -d 127.0.0.1 ! -s 127.0.0.1 -p tcp -m tcp --tcp-flags ACK,RST ACK,RST -j LOG --log-prefix " | ||
| + | iptables -A OUTPUT ! -o lo ! -d 127.0.0.1 ! -s 127.0.0.1 -p tcp -m tcp --tcp-flags ACK,FIN ACK,FIN -j DROP | ||
| + | iptables -A OUTPUT ! -o lo ! -d 127.0.0.1 ! -s 127.0.0.1 -p tcp -m tcp --tcp-flags ACK,RST ACK,RST -j DROP | ||
| + | |||
| + | |||
| + | # Allow Tor and the network user | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | |||
| + | # Create INPUT firewall. Allow established connections and transproxy | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | <file bash " | ||
| + | #!/bin/sh | ||
| + | |||
| + | ### set variables | ||
| + | # | ||
| + | _non_tor=" | ||
| + | |||
| + | #the UID that Tor runs as (varies from system to system) | ||
| + | _tor_uid=" | ||
| + | |||
| + | #Tor's TransPort | ||
| + | _trans_port=" | ||
| + | |||
| + | #your internal interface | ||
| + | _int_if=" | ||
| + | |||
| + | ### flush iptables | ||
| + | iptables -F | ||
| + | iptables -t nat -F | ||
| + | |||
| + | ### set iptables *nat | ||
| + | iptables -t nat -A OUTPUT -o lo -j RETURN | ||
| + | iptables -t nat -A OUTPUT -m owner --uid-owner $_tor_uid -j RETURN | ||
| + | iptables -t nat -A OUTPUT -p udp --dport 53 -j REDIRECT --to-ports 53 | ||
| + | |||
| + | #allow clearnet access for hosts in $_non_tor | ||
| + | for _clearnet in $_non_tor; do | ||
| + | | ||
| + | | ||
| + | done | ||
| + | |||
| + | #redirect all other pre-routing and output to Tor | ||
| + | iptables -t nat -A OUTPUT -p tcp --syn -j REDIRECT --to-ports $_trans_port | ||
| + | iptables -t nat -A PREROUTING -i $_int_if -p udp --dport 53 -j REDIRECT --to-ports 53 | ||
| + | iptables -t nat -A PREROUTING -i $_int_if -p tcp --syn -j REDIRECT --to-ports $_trans_port | ||
| + | |||
| + | ### set iptables *filter | ||
| + | iptables -A OUTPUT -m state --state ESTABLISHED, | ||
| + | |||
| + | #allow clearnet access for hosts in $_non_tor | ||
| + | for _clearnet in $_non_tor 127.0.0.0/ | ||
| + | | ||
| + | done | ||
| + | |||
| + | #allow only Tor output | ||
| + | iptables -A OUTPUT -m owner --uid-owner $_tor_uid -j ACCEPT | ||
| + | iptables -A OUTPUT -j REJECT | ||
| + | </ | ||
| + | |||
| + | <file bash " | ||
| + | / | ||
| + | |||
| + | |||
| + | *nat | ||
| + | :PREROUTING ACCEPT [6:2126] | ||
| + | :INPUT ACCEPT [0:0] | ||
| + | :OUTPUT ACCEPT [17:6239] | ||
| + | : | ||
| + | |||
| + | -A PREROUTING ! -i lo -p udp -m udp --dport 53 -j REDIRECT --to-ports 5353 | ||
| + | -A PREROUTING ! -i lo -p tcp -m tcp --tcp-flags FIN, | ||
| + | -A OUTPUT -o lo -j RETURN | ||
| + | --ipv4 -A OUTPUT -d 192.168.0.0/ | ||
| + | -A OUTPUT -m owner --uid-owner " | ||
| + | -A OUTPUT -p udp -m udp --dport 53 -j REDIRECT --to-ports 5353 | ||
| + | -A OUTPUT -p tcp -m tcp --tcp-flags FIN, | ||
| + | COMMIT | ||
| + | |||
| + | *filter | ||
| + | :INPUT DROP [0:0] | ||
| + | :FORWARD DROP [0:0] | ||
| + | :OUTPUT DROP [0:0] | ||
| + | |||
| + | -A INPUT -i lo -j ACCEPT | ||
| + | -A INPUT -p icmp -j ACCEPT | ||
| + | -A INPUT -m conntrack --ctstate RELATED, | ||
| + | --ipv4 -A INPUT -p tcp -j REJECT --reject-with tcp-reset | ||
| + | --ipv4 -A INPUT -p udp -j REJECT --reject-with icmp-port-unreachable | ||
| + | --ipv4 -A INPUT -j REJECT --reject-with icmp-proto-unreachable | ||
| + | --ipv6 -A INPUT -j REJECT | ||
| + | --ipv4 -A OUTPUT -d 127.0.0.0/8 -j ACCEPT | ||
| + | --ipv4 -A OUTPUT -d 192.168.0.0/ | ||
| + | --ipv6 -A OUTPUT -d ::1/8 -j ACCEPT | ||
| + | -A OUTPUT -m conntrack --ctstate RELATED, | ||
| + | -A OUTPUT -m owner --uid-owner " | ||
| + | --ipv4 -A OUTPUT -j REJECT --reject-with icmp-port-unreachable | ||
| + | --ipv6 -A OUTPUT -j REJECT | ||
| + | COMMIT | ||
| + | |||
| + | </ | ||
| + | |||
| + | Затем [[dnsmasq|настроить DHCP-сервер]] так, чтобы он выдвал наш прозрачный прокси в качестве единственного DNS-сервера своим клиентам в локальной сети. | ||
| + | |||
| + | ====== Ссылки ====== | ||
| + | |||
| [[https:// | [[https:// | ||
| Рядок 7: | Рядок 167: | ||
| [[https:// | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
tor.1391115063.txt.bz2 · Востаннє змінено: (зовнішнє редагування)
