среда, 22 июля 2015 г.

Squid: Блокировка QUIC/SPDY

Гм, собственно, первоисточник тут. Тащемта, я его там и написал. :)

Однако, к делу.

Наши корпорации Бобра (не путать с Ослом) решили изобресть свои протоколы, с блэкджеком и половыми излишествами,  и, что самое характерное, не только изобрели, но и, сволочи недоноски, внедрили.

Прокси-сервера этих поделок (которые ни разу не стандарт), разумеется, понимать не будут. И, в лучшем случае, не выпустят. В худшем - пропустят мимо кассы. Что уже, разумеется, много хуже. (убил бы сволочей. Когда гнуторасы сидят в таких масштабах - биореактором не отделаешься, а эти гниды ни разу не знают максиму про совместимость, коя важнее производительности, мать их дышлом крещеную).

Суть проблемы - кэширующие прокси про оные протоколы не знают.

К счастью - самое простое решение существует. Надо просто к чертовой матери зарубить UDP по портам HTTP/HTTPS (какими бы в вашем курятнике оные порты не были).

Например, на Cisco:

interface GigabitEthernet0/0
! External interface
ip access-group WAN_IN in
!
ip access-list extended WAN_IN
deny udp any any eq 80
deny udp any any eq 443
permit ip any any

Если у вас в руках есть NBAR - там есть SPDY (в последних версиях):



class-map match-any alternate
match protocol spdy
!
policy-map Net_Limit
class alternate
drop
!
interface GigabitEthernet0/0
ip nbar protocol-discovery
service-policy output Net_Limit

Если вы - владелец винтажной Cisco с iOS, скажем, 12 версии, тогда вам сюда:

ip access-list extended block-ports
remark Block alternate protocols
deny udp any any eq 80
deny udp any any eq 443
!
route-map redirect_proxy permit 30
match ip address block-ports
set ip next-hop your_proxy_IP
route-map redirect_proxy permit 40
!


Для роутеров на основе боксов с IPF решение тоже существует:

# Group 100 - Blocked networks & packets on any interface
# Group 100 setup
block in all head 100
# Group 200 - Opened incoming ports & services on net0 interface
# Group 200 setup
pass in on net0 head 200

# Block alternate protocols
block return-icmp-as-dest(port-unr) in quick proto udp from any to any port=3128 keep state group 100
block return-icmp-as-dest(port-unr) in quick proto udp from any to any port=3129 keep state group 100

# Restrict access to proxy only from localnet (forwarding)
pass in quick proto tcp from 192.168.0.0/16 to proxy_host_name port=3127 flags S keep state keep frag group 200
# Restrict access to proxy only from localnet (interception)
pass in quick proto tcp from 192.168.0.0/16 to proxy_host_name port=3128 flags S keep state keep frag group 200
# Restrict access to proxy only from localnet (HTTPS interception)
pass in quick proto tcp from 192.168.0.0/16 to proxy_host_name port=3129 flags S keep state keep frag group 200


Для понимающих объясню на пальцах: лишите клиент и сервер возможности связываться по UDP на портах HTTP/HTTPS - и проблема отпадет сама собой.

К счастью, совместимость все еще важна и можно оттянуть крайнюю плоть неприятный момент в ожидании выхода стандарта HTTP/2 (чтоб ему, сволочи, земля была таким же пухом, как и IPv6, не к ночи помянутому).

К слову, задержек в установлении традиционных сессий по TCP не наблюдается. Браузеры все же пока еще пишутся адекватными людьми. Сервера пишутся адекватными людьми. Недоумки не рискнули настаивать на своих протоколах с блэкджеком и половыми излишествами.

четверг, 9 июля 2015 г.

Нарцисс вертится в гробу

До недавнего времени я даже не предполагал, что на планете живет такое количество самовлюбленных кретинов Нарциссов или его последователей, которых, к сожалению, пока еще не успел забрать Естественный Отбор:


Это, блядь, не смешно!

Оказывается, количество этих болванов настолько велико, что для потенциальных (а, как правило, весьма кинетических) лауреатов премии Дарвина издана специальная памятка:


Дорогое МВД, пожалуйста! Не становись на пути Естественного Отбора! Нарциссизм - психиатрическое отклонение! Пусть  генофонд планеты станет чище! Оберегай меня и дальше от всяких губошлепов-шизофреников, засирающих интернет своими прыщавыми мордами!