LINUX.ORG.RU

TCP DENIED 200 в squid

 


0

1

Настраиваю ssl bump в squid. Centos 7 + squid 3.5.2

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 deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow all

http_port 3128 intercept
https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/squidCA.pem key=/etc/squid/squidCA.pem

visible_hostname squid
ssl_bump server-first all
sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/ssl_db -M 4MB
sslcrtd_children 8 startup=1 idle=1

coredump_dir /var/spool/squid

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern -i (/cgi-bin/|\?) 0     0%      0
refresh_pattern .               0       20%     4320

Экспортировал der сертификат в браузер. Настроил прокси на порт 3129 в IE. Пытаюсь подключиться - в браузере ошибка 200

Соединение сброшено.
ERR_CONNECTION_RESET

cache log - https://pastebin.com/VF84x1sW

access log

1596402159.776      0 192.168.2.121 TCP_DENIED/200 0 CONNECT 192.168.2.129:3129 - HIER_NONE/- -
1596402173.098      0 192.168.2.121 TCP_DENIED/200 0 CONNECT 192.168.2.129:3129 - HIER_NONE/- -
1596402173.102      0 192.168.2.121 TCP_DENIED/200 0 CONNECT 192.168.2.129:3129 - HIER_NONE/- -
1596402173.105      0 192.168.2.121 TCP_DENIED/200 0 CONNECT 192.168.2.129:3129 - HIER_NONE/- -
1596402173.108      0 192.168.2.121 TCP_DENIED/200 0 CONNECT 192.168.2.129:3129 - HIER_NONE/- -

https_port 3129 intercept
Настроил прокси на порт 3129 в IE.

По моему, так не сработает.
Либо intercept и манипуляции с iptables, либо настроить прокси и не указывать в конфиге intercept

Kuzz ★★★ ()
Ответ на: комментарий от Radzhab90

Нет, на порт 3129 тебе нужно завернуть https трафик, порт 443, еще укажи в конфиге например 3130 в непрозрачном режиме, на случай если приложение требует явно указать прокси. В твоем правиле можно просто написать http вместо портов и завернуть на 3128.

julixs ★★ ()
Последнее исправление: julixs (всего исправлений: 1)
Ответ на: комментарий от Radzhab90
iptables -t nat -A PREROUTING -s 192.168.2.0/24 -p tcp -m multiport --dports 80,81,82,83,88,8000,8001,8002,8080,8081 -j REDIRECT -–to-ports 3128
iptables -t nat -A PREROUTING -s 192.168.2.0/24 -p tcp -m multiport --dports 443,8443 -j REDIRECT -–to-ports 3129

http и https разными портами же обраьатывается

Kuzz ★★★ ()
Ответ на: комментарий от Radzhab90

А в iptables -L -t nat?

Ну и совет «укажи в конфиге например 3130 в непрозрачном режиме» правильный. Возможно, из-за режима с воркерами, мне пришлось добавлять непрозрачные порты (http и https), что-бы все нормально работало.

Kuzz ★★★ ()
Ответ на: комментарий от Kuzz
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
REDIRECT   tcp  --  192.168.2.0/24       anywhere             multiport dports http,81,xfer,mit-ml-dev,kerberos,irdmi,vcom-tunnel,teradataordbms,webcache,tproxy redir ports 3128
REDIRECT   tcp  --  192.168.2.0/24       anywhere             multiport dports https,pcsync-https redir ports 3129```
Radzhab90 ()