Использование SOCKS для прозрачного проксирования (transparent proxy)

В данной заметке я рассмотрю настройку маршрута со своего рабочего компьютера на сервер. Вообще для этого требуется какой-то промежуточный машрутизатор. У меня он будет находиться по IP 100.100.100.109 (мой рабочий компьютер по совместительству), а сервер — по адресу 100.100.100.110 (все адреса являются вымышленными, любое совпадение с реальными — случайное 🙂 ) 1. Настройте socks proxy на порте 9999 с помощью ssh. Можно сделать это с помощью PuTTY.
ssh -D 9999 100.100.100.109
2. Добавьте ip route для перенаправления специфичных пакетов на сервер.
echo 1 MYPROXY >> /etc/iproute2/rt_tables
ip route add default via 100.100.100.110 table MYPROXY
ip rule add from all fwmark 9 table MYPROXY
Мы задали маркер 9, он будет использован далее. 3. На маршритизаторе отметьте тем же маркером пакеты, идущие на порты 80 и 443 — они должны идти через прокси сервер:
iptables -A OUTPUT -t mangle -i eth0 -p tcp --dport 443 -j MARK --set-mark 9
iptables -A OUTPUT -t mangle -i eth0 -p tcp --dport 80 -j MARK --set-mark 9
В правилах упоминается OUTPUT, т.к. запросы на наш прокси сервер в качестве источника имеют маршрутизирующий компьютер, т.е 100.100.100.109. 4. Настройте браузер — он должен проксеваться через socks proxy на localhost:9999 ( 127.0.0.1:9999 ) Полезная ссылка: ссылка Запрос с помощью curl будет таким:
curl -v --socks4 127.0.0.1:9999 ”https://www.ya.com/
[sc:social_networks ]
You can leave a response, or trackback from your own site.

Leave a Reply