Jump to content
Local
Sign in to follow this  
major12

Заглядаємо за HTTPS (але чуть-чуть)

Recommended Posts

Припустимо що ви заблокувати фаєрволом щось маленьке, наприклад 154.47.36.16/32 або щось велике, наприклад 178.154.128.0/17.

І вам цікаво куди пробують стукатись користувачі чи мобільні аплікації.

 

HTTP зараз стає менш популярним, більшість коннектів відбувається по HTTPS (TLS).

Переважна більшість серверів і клієнтів вміють і будуть використовувати SNI https://uk.wikipedia.org/wiki/Server_Name_Indication

Цим фактом ми і скористаємось.

 

Отже крок 1 - перезбираємо nginx

cd /usr/ports/www/nginx
make config

опції які нам потрібні

[x] STREAM                 Enable stream module
[x] STREAM_SSL_PREREAD     Enable stream_ssl_preread module

ну і далі make install clean чи portmaster nginx

 

2 - конфігуруємо nginx

 

stream {
    log_format  main  '[$time_local] $remote_addr $server_addr "$ssl_preread_server_name"';
    access_log  /var/log/ssl_preread.log  main;

    server {
        listen 843;
        ssl_preread on;
        return "";
    }
}

Коментарі:

потрібно саме секція stream а не звична http

рядок return ""; означає повернути 0 байт і закрити з'єднання, можна пробувати повертати щось інше, наприклад "Blocked!", але TLS стек клієнта ітак їх не зрозуміє і розірве конект.

 

Не забуваємо перезапусти nginx і перевіряємо що він слухає порт

netstat -na | grep 843

 

3 - перенаправляємо трафік

ipfw add 05210 fwd 127.0.0.1,843 tcp from any to table\(40\) dst-port 443

В табличці 40 адреси які моніторимо (і блокуємо теж, бо коннекти на порт 443 будуть йти на наш nginx)

 

Результат

В файлі /var/log/ssl_preread.log маємо рядки типу

[23/Dec/2018:19:13:28 +0200] 192.168.33.38 178.154.131.216 "yastatic.net"
[23/Dec/2018:19:13:33 +0200] 192.168.25.47 87.240.129.133 "vk.com"

Перша айпішка це клієнт, друга це (заблокований) ресурс.

Раджу слідкувати за розміром логу, бо запитів від мобільних аплікацій дуууже багато.

Користуємось поки не прийшов ESNI (Encrypted SNI), де хостів видно не буде.

 

 

 

 

Share this post


Link to post
Share on other sites

Вдумчиво почитайте статью 31 Конституции Украины.
Если не дойдет -  статья 163 Уголовного кодекса Украины.

  • Thanks 1

Share this post


Link to post
Share on other sites

Статьи зачем читать? Каким образом нарушается "тайна"? 

Считывания адреса сервера в hello пакете это детский лепит по сравнению с нормальным SSL/TLS inspect, со своим СА и МИТ-мом.

Share this post


Link to post
Share on other sites

Ну палит тс_ кто лезет на запрещённые ресурсы указом президента. И че? Прям тайна. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Максим97
      что нужно настроить, что бы велся учет переданных данных и снималась абонентская плата в схеме собранной в GNS3?
    • By Amourmort
      Доброго времени суток!
      Был шлюз, настроенный неизвестно когда неизвестным админом. Всё прекрасно работало, интернет людям раздавался, пока не возникла необходимость перейти на другого провайдера.

      У предыдущего провайдера IP шлюзу не выдавался, адрес и шлюз был настроен прямо в rc.conf.
      У нового провайдера PPPoE
      Штатными средствами фряхи у меня поднять соединение не получилось... Вернее, соединение поднималось только вручную, командой /etc/rc.d/ppp start - при перезагрузке соединение автоматически не стартовало.
      Решил использовать утилиту mpd5 для PPPoE. Вот содержимое mpd.conf:
      default: load pppoe_client pppoe_client: # # PPPoE client: only outgoing calls, auto reconnect, # ipcp-negotiated address, one-sided authentication, # default route points on ISP's end # create bundle static B1 # set iface enable nat ##NAT is configured elsewhere set iface route default set ipcp ranges 0.0.0.0/0 0.0.0.0/0 create link static L1 pppoe set link action bundle B1 set auth authname ******** set auth password ******** set link max-redial 0 set link mtu 1492 set link keep-alive 10 60 set pppoe iface igb0 set pppoe service "" open Внёс правки в rc.conf, добавив туда запуск mpd5 и убрав интерфейс igb0. Так же, убрал строку defaultrouter - она была нужна для работы с предыдущим провайдером, с новым резолвер получает данные автоматически.
      Далее, в качестве фаервола используется PF.
      В /etc/pf.conf, к счастью, использованы переменные для конфигурации. Меняю одну переменную ext_if = "igb0" на ext_if = "ng0" и думаю, что дело сделано. Соединение при перезагрузке поднимается, доступ в интернет есть... Довольный собой уехал с объекта домой.
      Вроде бы всё хорошо.
      Но вдруг оказывается, что доступ есть далеко не к каждому сайту. Например, к укр.нет доступ есть. А к bitrix24.ua - нет.
      Пингую с сервака:
       
      ping bitrix24.ua PING bitrix24.ua (18.232.195.40): 56 data bytes ^C --- bitrix24.ua ping statistics --- 26 packets transmitted, 0 packets received, 100.0% packet loss ЧЗН? Спидтест:
       
      speedtest-cli Retrieving speedtest.net configuration... Testing from LIMANET Ltd. (141.105.132.238)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by ISP Black Sea (Одесса) [0.43 km]: 5034.671 ms Testing download speed................................................................................ Download: 0.00 Mbit/s Testing upload speed................................................................................................ Upload: 0.00 Mbit/s АААААААААААААААААААА!!!! Что это???
       
      ping korinf-group.com PING korinf-group.com (91.234.33.240): 56 data bytes 64 bytes from 91.234.33.240: icmp_seq=0 ttl=58 time=13.654 ms 64 bytes from 91.234.33.240: icmp_seq=1 ttl=58 time=13.475 ms 64 bytes from 91.234.33.240: icmp_seq=2 ttl=58 time=13.332 ms 64 bytes from 91.234.33.240: icmp_seq=3 ttl=58 time=13.913 ms 64 bytes from 91.234.33.240: icmp_seq=4 ttl=58 time=14.873 ms 64 bytes from 91.234.33.240: icmp_seq=5 ttl=58 time=14.033 ms 64 bytes from 91.234.33.240: icmp_seq=6 ttl=58 time=13.743 ms ^C --- korinf-group.com ping statistics --- 7 packets transmitted, 7 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 13.332/13.860/14.873/0.469 ms ping google.com.ua PING google.com.ua (216.58.215.67): 56 data bytes 64 bytes from 216.58.215.67: icmp_seq=0 ttl=120 time=27.686 ms 64 bytes from 216.58.215.67: icmp_seq=1 ttl=120 time=27.766 ms 64 bytes from 216.58.215.67: icmp_seq=2 ttl=120 time=27.738 ms 64 bytes from 216.58.215.67: icmp_seq=3 ttl=120 time=27.651 ms 64 bytes from 216.58.215.67: icmp_seq=4 ttl=120 time=27.603 ms 64 bytes from 216.58.215.67: icmp_seq=5 ttl=120 time=27.781 ms 64 bytes from 216.58.215.67: icmp_seq=6 ttl=120 time=27.562 ms ^C --- google.com.ua ping statistics --- 7 packets transmitted, 7 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 27.562/27.684/27.781/0.077 ms Как такое может быть? Куда копать?
      При этом, если на компе юзера включить какой-нибудь "впн", с туннелем через Киев или Берлин, доступ к любым сайтам есть, как положено...
    • By Максим97
      После установки FreeBSD на виртуал бокс по инструкции с данного видео, не устанавливается пакет pkg и не могу зайти в режим супер юзера, что делать?
    • By KGroup
      Всем привет!
      Подскажите плиз: Как очистить содержимое всех файлов в каталоге на системе linux без удаления самих файлов?
      Может скрипт какой есть для примера?
       
      зы.
      sudo cat /dev/null > file.txt работает только с одним файлом...
       
    • By a_n_h
      Всем доброго дня!
      в чем разница между созданием vlan:
       
      1-й способ:
      cloned_interfaces="vlan101 vlan102 vlan103 vlan104"
      ifconfig_igb0="up"
      ifconfig_igb1="up"
      ifconfig_igb2="up"
      ifconfig_igb3="up"
      ifconfig_vlan101="vlan 101 vlandev igb0 up"
      ifconfig_vlan102="vlan 102 vlandev igb1 up"
      ifconfig_vlan103="vlan 103 vlandev igb2 up"
      ifconfig_vlan104="vlan 104 vlandev igb3 up"
       
       
      и 2-й способ:
      cloned_interfaces="igb0.101 igb0.102 igb2.103 igb2.104 up"
       
       
×