tor exit node

Устанавливаем tor:

# aptitude install tor

Приводим конфиг torrc к такому виду:

Nickname ZZ35QQ
ContactInfo Person somebody@example.com
ControlPort 9051
DirPort 9030
ExitPolicy accept *:80
ExitPolicy accept *:443
ExitPolicy reject *:*
ORPort 9001
DataDirectory /var/lib/tor
PidFile /var/run/tor/tor.pid
RunAsDaemon 1
User debian-tor
ControlSocket /var/run/tor/control GroupWritable RelaxDirModeCheck
ControlSocketsGroupWritable 1
SocksPort unix:/var/run/tor/socks WorldWritable
SocksPort 9050
CookieAuthentication 1
CookieAuthFileGroupReadable 1
CookieAuthFile /var/run/tor/control.authcookie
Log notice file /var/log/tor/log

Что бы проксировать запросы в tor, нужен http -> socks proxy (так как tor — это socks proxy и нужен какой-то транслятор), я выбрал privoxy. Устанавливаем privoxy:

# aptitude install privoxy

и приводим конфиг config к такому виду:

confdir /etc/privoxy
logdir /var/log/privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
filterfile default.filter
filterfile user.filter # User customizations
logfile logfile
debug 1 # Log the destination for each request Privoxy let through.
listen-address 127.0.0.1:8118
toggle 1
enable-remote-toggle 0
enable-remote-http-toggle 0
enable-edit-actions 0
enforce-blocks 0
permit-access 0.0.0.0/0
buffer-limit 4096
forward-socks5 / 127.0.0.1:9050 .
forwarded-connect-retries 0
accept-intercepted-requests 1
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 5
socket-timeout 300

Если после запуска получаете ошибку

Invalid header received from client

то нужно выставить параметр (в моём конфиге он уже выставлен)

accept-intercepted-requests 1

Для заворота исходящего трафика через tor, используем 2 правила: первое для транзитных пакетов (например, если к серверу подключаются через VPN), второе — для трафика самого сервера

# iptables -t nat -A PREROUTING -p tcp -m multiport --dport 80,443 -j REDIRECT --to 8118
# iptables -t nat -A OUTPUT -p tcp -m multiport --dport 80,443 -j REDIRECT --to 8118

Примечание.

У меня на одной из инсталляций не срабатывал редирект трафика для openvpn клиентов. Пришлось поднимать redsocks (есть в репозитории Debian) proxy. Конфигурационный файл /etc/redsocks.conf приводим к такому виду:

base {
        log_info = on;
        log = "file:/var/log/redsocks.log";
        daemon = on;
        user = redsocks;
        group = redsocks;
        redirector = iptables;
}
redsocks {
        local_ip = 10.22.22.1;
        local_port = 7788;
        ip = XX.XX.XX.XX;
        port = YYYYY;
        type = socks5;
        login = "foobar";
        password = "baz";
}
redudp {
        local_ip = 10.22.22.1;
        local_port = 7799;
        ip = XX.XX.XX.XX;
        port = YYYYY;
        udp_timeout = 30;
        udp_timeout_stream = 180;
}

где XX.XX.XX.XX — IP socks5 прокси, YYYYY — соответственно порт.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *