Squid, магия http://ya.ru:443 DDoS'ит прокси

Приветствую.

Собственно, ситуация такая: Маленькая сеть, не прозрачный прокси. Squid, iptables - настройки по-умолчанию. (pacman -Syu на текущую дату)
Шлюз - два интерфейса (net0+ppp0;net1). На ppp0 сидит злой провайдер, который фильтрует всё через контент фильтр Inside-Systems (анализирует весь трафик, подменяет все сертификаты по https своим).

А теперь, суть магии: firefox (прописан squid) + запрос http://ya.ru:443 валит прокси сервер, в логах по службе squid записи вида:

Apr 01 14:00:57 s28izh squid[20203]: assertion failed: [b]FwdState.cc:654: "!Comm::IsConnOpen(serverConn)"[/b]
Apr 01 14:00:57 pdc systemd[1]: Started Process Core Dump (PID 20251/UID 0).
-- Subject: Unit [email protected] has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit [email protected] has finished starting up.
--
-- The start-up result is done.
Apr 01 14:00:57 pdc squid[13476]: Squid Parent: (squid-1) process 20203 exited due to signal 6 with status 0
Apr 01 14:00:58 pdc systemd-coredump[20252]: Process 20203 (squid) of user 15 dumped core.

                                                Stack trace of thread 20203:
                                                #0  0x00007f81b163d2a8 raise (libc.so.6)
                                                #1  0x00007f81b163e72a abort (libc.so.6)
                                                #2  0x0000000000573544 xassert (squid)
                                                #3  0x00000000005b019d _ZN8FwdState27handleUnregisteredServerEndEv (squid)
                                                #4  0x0000000000801e17 _ZN6Client8swanSongEv (squid)
                                                #5  0x000000000073bbf5 _ZN8AsyncJob7callEndEv (squid)
                                                #6  0x00000000005db463 _ZN9JobDialerI13HttpStateDataE4dialER9AsyncCall (squid)
                                                #7  0x0000000000739521 _ZN9AsyncCall4makeEv (squid)
                                                #8  0x000000000073daae _ZN14AsyncCallQueue8fireNextEv (squid)
                                                #9  0x000000000073dee9 _ZN14AsyncCallQueue4fireEv (squid)
                                                #10 0x0000000000595891 _ZN9EventLoop7runOnceEv (squid)
                                                #11 0x0000000000595a90 _ZN9EventLoop3runEv (squid)
                                                #12 0x0000000000608df7 _Z9SquidMainiPPc (squid)
                                                #13 0x00000000004eb8cf main (squid)
                                                #14 0x00007f81b162a710 __libc_start_main (libc.so.6)
                                                #15 0x00000000004f2679 _start (squid)

                                                Stack trace of thread 20204:
                                                #0  0x00007f81b38bf03f [email protected]@GLIBC_2.3.2 (libpthread.so.0)
                                                #1  0x000000000071fce7 _Z20squidaio_thread_loopPv (squid)
                                                #2  0x00007f81b38b9424 start_thread (libpthread.so.0)
                                                #3  0x00007f81b16f1cbd __clone (libc.so.6)

                                                Stack trace of thread ...

Без squud, всё работает спокойно, на запрос http://ya.ru:443 в браузере возвращается ошибка:
400 Bad Request
The plain HTTP request was sent to HTTPS port
nginx

Если через squid - может вернуть, стандартное сообщение.
Ошибка чтения
Система вернула: (104) Connection reset by peer
Если начать "DDoS'ить" (долбить F5) Squid падает, возращается сообщение "Прокси-сервер отказывается принимать соединения".

При этом в access.log (tac):
1459506355.957      0 192.168.1.3 TCP_IMS_HIT/304 258 GET http://pdc:8080/squid-internal-static/icons/SN.png - HIER_NONE/- image/png
1459506355.919     56 192.168.1.3 TCP_MISS/502 4453 GET http://ya.ru:443/ - HIER_DIRECT/2a02:6b8::3 text/html
1459506354.521      0 192.168.1.3 TCP_IMS_HIT/304 258 GET http://pdc:8080/squid-internal-static/icons/SN.png - HIER_NONE/- image/png
1459506354.467   1014 192.168.1.3 TCP_MISS/502 4453 GET http://ya.ru:443/ - HIER_DIRECT/213.180.193.3 text/html
1459506266.919  66698 192.168.1.49 TCP_TUNNEL/200 10119 CONNECT mc.yandex.ru:443 - HIER_DIRECT/87.250.251.119 -
1459506260.311    143 192.168.1.3 TCP_MISS/502 4417 GET http://ya.ru:443/ - HIER_DIRECT/2a02:6b8::3 text/html
1459506174.146      8 192.168.1.3 TCP_MISS/502 4417 GET http://ya.ru:443/ - HIER_DIRECT/213.180.193.3 text/html

Перезапуски Squid не сильно напрягают, но сама возможность нагнуть Squid немного раздражает.

Сижу, думаю куда копать.
Bobr
На ppp0 сидит злой провайдер, который фильтрует всё через контент фильтр Inside-Systems (анализирует весь трафик, подменяет все сертификаты по https своим).
тут два варианта:
1. ты шпиЁн, и хочешь стащить секретные данные.
2. провайдер занимается не законным промыслом.

по поводу первого, оставь свои ФИО, № паспорта и адрес где ты находишься, и МЫ к тебе приедем поможем :D
а на счет второго, пиши заяву или меняй провайдера.
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
Bobr
подменяет все сертификаты по https своим
у него наверно свой сервер сертификатов, и беспрецедентный договор с мозилой.
я кончено могу ошибаться но вроде как с 36 версии на сайты под hhtps с не доверенным сертификатом не пускает... (в других браузерах может по другому, но это блин провайдер что то вы мутите)))
Ошибки в тексте-неповторимый стиль автора©
nafanja
Bobr
На ppp0 сидит злой провайдер, который фильтрует всё через контент фильтр Inside-Systems (анализирует весь трафик, подменяет все сертификаты по https своим).
тут два варианта:
1. ты шпиЁн, и хочешь стащить секретные данные.
2. провайдер занимается не законным промыслом.

по поводу первого, оставь свои ФИО, № паспорта и адрес где ты находишься, и МЫ к тебе приедем поможем :D
а на счет второго, пиши заяву или меняй провайдера.

Всё намного прозаичнее - контроль вышестоящей организации.

indeviral
Bobr
подменяет все сертификаты по https своим
у него наверно свой сервер сертификатов, и беспрецедентный договор с мозилой.
я кончено могу ошибаться но вроде как с 36 версии на сайты под hhtps с не доверенным сертификатом не пускает... (в других браузерах может по другому, но это блин провайдер что то вы мутите)))

Они распространяют свой сертификат.

Скрипя сердцем закрыл проблему acl правилом:
alc url_no_http url_regex ^http:.*:443

Пытался завалить squid на виртуальной машине, с которой разворачивал образ - повторить ошибку не получилось (подключался не по pppoe). Попытаюсь рабочий образ с другим провайдером погонять.
Проблема решена - баг закрыт в squid 3.5.16-1 от 2016-04-02 10:58 UTC.
 
Зарегистрироваться или войдите чтобы оставить сообщение.