Я просто хочу сделать интернет-анонимный прозрачный прокси, который в обход трафика просто хочет скрыть IP-адрес клиента, но не работает для https ..
Я не хочу использовать sslbump и т. Д., Просто хочу обойти трафик
Я много ищу в google и serverfault.com и stackoverflow.com и тестирую это решение на обход https-трафика:
Обход прозрачного Squid с помощью IPTables
моя конфигурация кальмара:
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow all
short_icon_urls on
http_port 0.0.0.0:13128 accel vhost
always_direct allow all
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320
coredump_dir /var/spool/squid
forwarded_for off
и мой iptables conf теперь просто:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 13128
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 13128
Я пытаюсь использовать эту команду, но не работаю:
iptables -t filter -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT
iptables -t nat -A PREROUTING -d x.x.x.x -j ACCEPT
iptables -t nat -A PREROUTING -i eth0 -p tcp -s x.x.x.x -m tcp --dport 443 -j REDIRECT --to-ports 13128
Этот x.x.x.x - мой действующий IP-адрес в Интернете.
и моя клиентская конфигурация для использования прокси выглядит так:
добавлен somedomain.com в / etc / hosts x.x.x.x somedomain.com
и я хочу просмотреть https://somedomain.com в моем браузере
вы можете найти много прокси-серверов ip-портов, которые работают так, например, используя этот ip 173.161.0.227
если я добавлю строку в свой клиент / etc / hosts
173.161.0.227 www.iplocation.net
я могу просматривать https://www.iplocation.net
мой сервер CentOS 7
Слова «анонимный прозрачный» противоречат друг другу.
Анонимный прокси - это когда сведения о клиенте скрыты, а сервер видит только прокси. Прозрачный означает, что сведения о прокси-сервере скрыты, а сведения о клиенте отправляются на сервер.
Итак, краткий ответ на ваш вопрос: то, о чем вы просите, невозможно. Вы не можете иметь и то, и другое одновременно. Особенно когда задействован TLS (как HTTPS).
Приведенные вами примеры / etc / hosts не являются прозрачным прокси. Это могут быть анонимные прокси. Это определенно «открытые прокси». Посмотрите это.
Ваш squid.conf предназначен для обратного прокси, который был превращен в открытый прокси (с помощью строки always_direct). Правила NAT бессмысленны с этой конфигурацией прокси.
Если вы хотите использовать способ / etc / hosts, удалите свои правила NAT и заставьте Squid использовать http_port 80 вместо 13128.
Если вы хотите использовать прокси-сервер перехвата NAT, сотрите строку always_direct и измените параметры «Accel vhost» на «Intercept».
Порт 80 и порт 443 имеют очень разные синтаксисы трафика. Http_port, который вы используете NAT, принимает только синтаксис порта 80. Это первая причина, по которой порт 443 NAT не работает.
Чтобы получить синтаксис HTTPS в Squid, вам понадобится https_port для его получения. Однако TLS предотвращает работу способа / etc / hosts. Получение HTTPS для доменов, которые вам не принадлежат, означает SSL-Bump. Даже прозрачная ретрансляция порта 443 с NAT требует, чтобы SSL-Bump был настроен на «сращивание».
НО, при использовании NAT единственная причина, по которой ваш прокси-сервер получает трафик порта 443, в первую очередь, заключается в том, что вы используете NAT для порта 443. Чтобы «обойти», вам просто нужно стереть ваши правила NAT, содержащие порт 443.