[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]

Файл: shen_he.jpeg -(214 KB, 1400x893, shen_he.jpeg)
214 No.206615  

Подобно многим программистам до меня, написал несложную программку для отправки текстовых сообщений через TCP/IP.
Домашний компьютер под Windows XP со статическим внешним IP служит сервером, к которому я пытаюсь подключиться с работы.
На одном компьютере и по локальной сети (нескольким разным) клиент и сервер видят друг друга прекрасно.
А вот снаружи подключиться не выходит - клиент выдаёт ошибку 10060 - таймаут при попытке установить соединение.

Домашний компьютер при этом пингуется и трейсрутится извне.
В запущенном на нём сетевом экране сделано исключение для сервера - поэтому он и работает через LAN.
IP адрес и порт сервера в клиенте проверены и перепроверены многократно.
Никаких очевидных ограничений со стороны провайдера, похоже, нет, ибо к тому же DosBox'у на 213-й порт я подключаюсь снаружи без каких-либо дополнительных телодвижений.

Какие могут быть ещё подводные камни, неочевидные для новичка?

Есть программы для прозвона портов на удалённых компьютерах, но какие-то стрёмные.
Будучи профаном в плане безопасности, связываться с ними пока не хочу.

>> No.206617  
>Никаких очевидных ограничений со стороны провайдера, похоже, нет

В интернете есть многочисленные веб-сервисы, подобные canyouseeme.org, позволяющие определить видимость сервиса (открытого порта) на каком-либо айпи.
Это чтобы не гадать на кофейной гуще.

>Какие могут быть ещё подводные камни, неочевидные для новичка?

Для детальной диагностики сетепроблем существуют специальные инструменты, например wireshark (сниффер + анализатор трафика)

>Есть программы для прозвона портов на удалённых компьютерах, но какие-то стрёмные.

nmap - не "стрёмная" программа, если что. Одобряю лично и со Штульманом вместе, лол.

>> No.206620  
>В интернете есть многочисленные веб-сервисы, подобные canyouseeme.org, позволяющие определить видимость сервиса (открытого порта) на каком-либо айпи.

После скачивания какой-то приблуды с сайта National Instruments, выработал сильное недоверие к сервисам, требующим вводить какую-либо информацию о себе и своём компьютере.

>nmap - не "стрёмная" программа, если что.

Его первым и скачал. Посмотрел на command-line исполняемый файл на 2.6 Mb, подумал, что в него могли напихать, и решил, что ну его нафиг.

За советы спасибо.
Пока что изучаю в сети ту информацию, что доступна не в виде скомпилированного кода.

>> No.206621  
> Есть программы для прозвона портов на удалённых компьютерах, но какие-то стрёмные.

Ничего, кроме штатных ping и pathping (под Виндой) или tracepath или mtr (Линух) тебе не надо. Вообще, если мнишь себя Одмином, что либо кроме инструментов разработчика ОС используй только для оче специфических задач, которые иначе не выполнить.

> Какие могут быть ещё подводные камни, неочевидные для новичка?

Не провесил мост между соединениями.
Вообще использовать Хрюшу в качестве роутерной ОС не самая умная идея. Рикаменую OpenWrt, благо ставится хоть на кофеварку (вобщем-то, х86 для роутера оверкилл) Если уж у тебя аллергия на Линух - тогда какую-нибудь старую серверную Винду - там есть удобные инструменты для таких задач. Просто добавляешь серверу "роли" и дело с концом. 2008 - не сильно требовательнее к железу чем XP.

>> No.206622  

>>206615
Попробуй подключиться telnet'ом, если не хочется устанавливать сторонние программы.

>> No.206623  
>Вообще, если мнишь себя Одмином …

Мню себя программистом-самоучкой, пытающимся разобраться с сетевыми протоколами.

>Не провесил мост между соединениями.

Я уже упоминал, что я здесь новичок?

Ни сервер, ни рутер я из своего домашнего компьютера делать не собираюсь.
Я просто хочу научиться управлять той же кофеваркой удалённо через самописную программу.

>> No.206624  

>>206622
Пробовал, на используемый сервером порт. Таймаут.

>> No.206625  

P.S. Похоже, что мой самописный сервер не поддерживает протокол telnet.

>> No.206626  

>>206623

> Я уже упоминал, что я здесь новичок?

Правой кнопкой по внешнему соединению -> "Свойства" -> вкладка "Дополнительно" -> "Разрешить общий доступ к этому соединению".

>> No.206627  

>>206626
Если речь про Bridge Connection, то я отключил второй сетевой адаптер для LAN просто на всякий случай.
Серверная часть программы всё равно живёт на компьютере с прямым выходом в интернет.

>> No.206628  

>>206627
Поменяй в своей программе номер порта, чтобы проверить, что внешние подключения на слушаемый сейчас порт не запрещены по какой-либо причине провайдером.

>> No.206629  

>>206627
Тьфу ты! Почему-то подумал, что сервер крутится на другой машине. Проблема явно в исключениях фаервола. Ну или провайдер тебя дурит, и это нифига не статический адрес.

>> No.206630  

>>206628
Делал и это.
Сейчас сервер настроен на 213-й порт через который, как я проверял, снаружи доступен псевдо-IPX сервер в DosBox.
Сам DosBox использует не TCP, а UDP, но это, я надеюсь, не принципиально.
Предвидя очевидный вопрос про глупую ошибку: нет, DosBox во время работы программы-сервера не был запущен.

>> No.206631  

>>206629
Статический и внешний.
Что внутри, что снаружи.
Проверял через сервисы, показывающие внешний IP.

Firewall настроен так же, как и для DosBox.
В XP он с сюрпризами, так что я подстраховался и проверил.

>> No.206632  

>>206620

>После скачивания какой-то приблуды с сайта National Instruments, выработал сильное недоверие к сервисам, требующим вводить какую-либо информацию о себе и своём компьютере.

Это разумно. У тебя нет никаких причин доверять рандомным ребятам с интернета.
Но тебе стоит понимать, какому риску ты себя подвергаешь, говоря этому парню айпи и порт сервиса (о котором он больше не знает ничего). И я считаю, что без знания о конкретной программе, стоящей за портом, эта информация довольно бесполезна для атакующего. Следует понимать, что просто подключиться к порту для того, чтобы кого-то заовнить - мало, нужно знать, что сказать программе, чтобы ее угнать, лол. Вряд ли простой рандомный чатик будет настолько полон дыр и настолько ценен, чтобы вкладываться в подборку payload'a.
К тому же, ты можешь попросту прикрыть фаерволом соединения со всех айпи, кроме нужных, если это возможно в твоей модели использования (чисто в теории, это можно сделать всегда лол: даже если заранее неизвестно, откуда ты будешь подключаться, можно подключаться через промежуточный доверенный хост).
Кстати, ничего кроме айпи и порта подобному сервису не нужно.

>Посмотрел на command-line исполняемый файл на 2.6 Mb, подумал, что в него могли напихать, и решил, что ну его нафиг.

Конкретным бинарникам, возможно, и не стоит доверять, но если ты хочешь аудита кода, то ты можешь почитать его, лол. Или там скомпелять.
https://github.com/nmap/nmap
Хотя, если целью является скорее обучение, то имеет смысл и правда изучать инструменты ОС для работы с протоколом TCP и саму документацию на протокол. Со знанием дела написать простой тестер порта не должно составить труда.
Или, опять же, с помощью инструмента вроде wireshark ты можешь просто посмотреть в пакеты и увидеть хотя бы, скажем, приходит ли syn на сервер, доходит ли syn-ack обратно на клиент, и тому подобное. Но если ты не будешь доверять инструменту, как в случае выше, то у нас проблема, лол.
Хотя, я условно опростоволосился с элементарным предложением использовать telnet, но ПОГОДИ, кто сказал что ты МОЖЕШЬ ДОВЕРЯТЬ telnet, м? Лол.

>> No.206633  

>>206630

> Сам DosBox использует не TCP, а UDP, но это, я надеюсь, не принципиально.

Принципиально, 213/tcp и 213/udp — разные порты.

> трейсрутится извне.

По TCP тоже?

>> No.206635  

>>206621

>Ничего, кроме штатных ping и pathping (под Виндой) или tracepath или mtr (Линух) тебе не надо

А они разве умеют прозванивать порты? Насколько мне известно, нет.

>>206629

>Проблема явно в исключениях фаервола.

Тоже ничего, кроме этого, на ум не приходит. Но я вообще не вендоадмин, хотя вроде все проблемы на самой винде с невидимостью сервиса всегда сводились именно к вендовому фаерволу ака брандмауэру.

>> No.206636  

>>206635

> А они разве умеют прозванивать порты? Насколько мне известно, нет.

Для начала надо бы проверить локально, слушает ли кто-нибудь выделенный порт на внешнем адресе: netstat -ab
Потом можно пробить телнетом снаружи. Даже если сервер не поддерживает телнет, соединение все равно откроется.

>> No.206637  

>>206632
Пиша свою первую программу для работы с TCP/IP, я следую путём, которым до меня прошли минимум тысячи.
Моё поведение на этом пути должно быть шаблонно и легко предсказуемо для тех, кто видел идущих по нему раньше.
Даже не зная практически ничего о работе протоколов, я могу предположить два очевидных способа атаки на свой компьютер через такую программу.

По поводу открытого исходного кода чужих программ: у меня нет ни времени, ни знаний, необходимых для проверки их безопасности.
К тому же, я прекрасно знаю, что для нанесения вреда, программе вовсе не обязательно быть намеренно вредоносной.
Особенно, в руках неопытного пользователя, неспособного оценить риски от её использования, включая отложенные.

Я создал эту тему в надежде, что мне смогут указать на очевидную ошибку в моих действиях, которую я не заметил по неопытности.
В чём мне помогают быстро и охотно, за что я крайне благодарен пользователям этой доски.
Если таковой не найдётся, то тогда я уже буду вынужден идти на больший риск и пользоваться тем, в чём пока не разбираюсь.

>По TCP тоже?

Пока что не придумал, как проверить.

>>206635
Firewall настроен одинаково для LAN и внешней сети.
По LAN мои программы находят друг друга.

>> No.206638  
>Для начала надо бы проверить локально, слушает ли кто-нибудь выделенный порт на внешнем адресе: netstat -ab

Проверил.
Либо никого, либо мой сервер, когда запущен.
Спасибо за новую утилиту.

>> No.206639  
>Принципиально, 213/tcp и 213/udp — разные порты.

UDP я тоже пробовал использовать, но пока не преуспел.
Даже локально.

>> No.206640  

>>206637

>Даже не зная практически ничего о работе протоколов, я могу предположить два очевидных способа атаки на свой компьютер через такую программу.

Я говорил не о протоколах, а о том, как, собственно, атаковать с помощью конкретной датаграммы, которую примет твоя программа (ибо больше ничего она не увидит).
Если же твоя система уязвима на уровне ПРОТОКОЛА TCP, то я бы сказал, что у тебя потенциальные проблемы со всеми соединениями, лол.
Но это так, растекаясь мыслью.
Выше уже выяснили, что твой клиент не видит твой сервер в интернете (telnet не подключается на порт, что является классикой теста на открытый порт, и протокол telnet тут ни при чем).
Обычно при прочих равных это связано с настройками локального фаервола. В каких-то конкретных случаях это связано с ограничениями провайдера, но их не так много и пров не блокирует все порты подряд, по крайней мере как правило.
Вообще, фаервол в общем случае настраивается как на входящие соединения, так и на исходящие, так что, возможно, имеет смысл настроить его и на клиенте тоже, лол, just to be sure.

>> No.206641  

>>206636
Этот совет разумен, но это не те программы, что процитировал я, лол.

>>206639
Тебе сказали, что ты должен разрешить порт tcp в фаерволе, если ты используешь tcp в программе.
То есть, иными словами, это принципиально, какой порт для какого протокола, как сказали выше.

>> No.206642  

>>206638
Отлично. А вот дальше потребуется специальная утилита: https://support.microsoft.com/en-us/help/310099/description-of-the-portqry-exe-command-line-utility
Она позволит пробить порт снаружи. Если окажется, что снаружи порт выглядит "закрытым", то виноват провайдер.

>> No.206643  

>>206640
Согласен, я неверно выразился. Я действительно имел в виду угрозу от определённым образом составленного пакета данных, приходящих на шаблонную программу-сервер TCP/IP.

По поводу фаервола - завтра включу сохранение логов и попытаюсь понять по ним, что происходит.

>> No.206644  

>>206642
Почему на основании данных netstat (что дает информацию о программах, слушающих по адрес/порт) и последующей инфе о состоянии порта на сервере от portqry с клиента ты делаешь вывод, будто провайдер однозначно виноват (в случае неоткрытого порта по данным portqry)? Или ты думаешь, что он правильно настроил фаервол? Беспанятия, поэтому спрашиваю.

>> No.206645  
>Тебе сказали, что ты должен разрешить порт tcp в фаерволе, если ты используешь tcp в программе.

Когда стандартный фаерволл в XP SP3 делает исключение для программы, он, судя по всему, открывает для неё все порты.
По крайней мере, я не нашёл в нём настроек для индивидуальных портов для конкретной программы.

Под эквивалентностью TCP и UDP я имел в виду то, что провайдер, закрывающий определённый порт TCP, скорее всего закроет его и для UDP.
Правда, это всего лишь моё предположение.

>>206642
Спасибо, попробую.

>> No.206646  

Кстати, для моего сервера, netstat показывает Local Address: 0.0.0.0:213
Могу предположить, что это означает, что он слушает данный порт на всех IP, доступных на данном компьютере.

>> No.206647  

А вообще, меня только что осенило, лол.

>win xp
>фаервол
>вся эта сетевая паранойя

Меня затролели.

>> No.206648  

>>206645
Хотя бы для теста, попробуй вообще прибить фаервол и посмотреть, как оно повлияет на процэсс.

>> No.206649  

>>206644

> Или ты думаешь, что он правильно настроил фаервол?

Вот на основании этого и думаю. Доступ из локальной сети есть. Не думаю, что ОП пропустил настройку области, из которой возможен доступ (да там и по умолчанию стоит доступ из Интернета). А значит не пускает провайдер.

>> No.206650  

>>206648
Если на его XP не установлено самое последнее обновление, то червь через открытый 445 порт через некоторое время к нему придёт.

>> No.206651  

>>206649

>Вот на основании этого и думаю.

ОК

ОП, попробуй поставить порт выше 50000.

>> No.206652  

>>206646

> Кстати, для моего сервера, netstat показывает Local Address: 0.0.0.0:213

Это означает, что адрес прослушивается на всех IP, выданных компьютеру. А вот если в графе Foreign Address стоит то же самое, значит соединение возможно со всех IP.

>> No.206653  

>>206650
Даже из-за NAT'a? Хотя вэйт, эта машина смотрит голой жепой в интернет лол.
Anyway, никто не предлагал снести его навсегда. Просто для проверки, что это точно не фаервол мешается.

>> No.206654  
Файл: Clipboard01.png -(4 KB, 642x200, Clipboard01.png)
4
>Не думаю, что ОП пропустил настройку области, из которой возможен доступ (да там и по умолчанию стоит доступ из Интернета).

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

>Если на его XP не установлено самое последнее обновление, то червь через открытый 445 порт через некоторое время к нему придёт.

Эти порты у меня открыты только для LAN.

>ОП, попробуй поставить порт выше 50000.

Спасибо, попробую.

>А вот если в графе Foreign Address стоит то же самое, значит соединение возможно со всех IP.

На приложенной картинке - один запущенный сервер с двумя подключёнными клиентами: на том же компьютере и через LAN.

>> No.206655  

>>206654
Всё правильно настроено. Проверь до кучи portqry или telnet снаружи, и долби службу поддержки провайдера.

>> No.206656  

>>206655
Telnet выдавал таймаут. Попробую порт выше 50000.
Качать что-либо с серверов Microsoft пока стремаюсь.
К провайдеру - когда буду уверен, что дело в нём.

>> No.206657  

>>206656

> Качать что-либо с серверов Microsoft пока стремаюсь.

Вот это зря. Майки много плюшек раздают. Ты знал, что в XP нативный эмулятор CD-ROM есть? А он есть, да такой, что любую защиту обманывает. Только панель управления не положили. Но ее можно скачать у Майков.

>> No.206658  

>>206657
Конкретно, после выхода Windows 10.

>> No.206659  
Файл: Screenshot_2019-01-19 Download PortQry C(...).png -(9 KB, 709x220, Screenshot_2019-01-19 Download PortQry C(...).png)
9

>>206658
Ну, конкретно эта утилита еще Билла застала.

>> No.206660  

>>206625
У телнета нету протокола, пиши, что хочешь (с учётом кодировки).

>> No.206662  

>>206625

>не поддерживает протокол telnet

Простите, но телнета достаточно для проверки возможности соединения для любого tcp/ip.

>> No.206663  
>Посмотрел на command-line исполняемый файл на 2.6 Mb, подумал, что в него могли напихать, и решил, что ну его нафиг.

Экспертиза уровня опеннета^W бога.

>> No.206670  

>>206663
Если у них не полностью детерминированный процесс сборки, то теоретически возможно, скомпрометировав этот процесс, внедрить в бинарник уязвимость, которую пару лет не найдут, если вообще обнаружат. Потому что никто не подвергает такие исполняемые файлы аудиту, кроме эвристических модулей антивирусов, которые ищут только явно злонамеренное поведение.
мимо не ОП

>> No.206671  

>>206670
Причем тут экспертиза чисто по размеру файла. 2.6 килобайт не защитит от написанного тобой.

>> No.206672  
Файл: 1290239796123.jpg -(57 KB, 640x480, 1290239796123.jpg)

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

>> No.206673  
Файл: fo~do - 90bf27797079747965d1e79e390338a3.jpg -(215 KB, 900x636, fo~do - 90bf27797079747965d1e79e390338a3.jpg)
215

>>206660
>>206662
Это было чем-то вроде шутки.

По поводу размера исполняемого файла: имея дело с чужими программными продуктами, я научился различать два подхода к их созданию: «энтузиастский» и «коммерческий».
В «энтузиастский» продукт, его создатель помещает то, что необходимо для получения декларируемого функционала, с ограниченным количеством дополнительных опций.
В «коммерческий» пихают всё что можно и нельзя, включая много из того, что не является желанным и полезным для его пользователя.
Размер исполняемого файла той консольной утилиты вызвал у меня сомнения относительно её классификации.

Пробовал соединяться через порт >50000. Локально работает, удалённо - нет. Через телнет тоже.
В логах фаервола эти попытки не отразились, так что похоже, что порты действительно заткнуты где-то снаружи.
Буду пытаться использовать UDP, потом задавать глупые вопросы провайдеру.

Спасибо всем, кто отвечал мне в этом треде.

>> No.206674  

>>206673

>Размер исполняемого файла той консольной утилиты вызвал у меня сомнения относительно её классификации.

nmap это большой проэкт просто.
Много весят скрипты, которые, надо полагать, в каком-то виде включаются в установочный бинарь.
nmap нифига не минималистичный проект, но навалить кучу скриптов для специфических задач - много "коммерциализации" не надо.
Да и вообще, не думаю, что ты прав с такой классификацией. "Коммерческий" по определению значит - ориентированный на продажи, и, хотя есть бизнес-модели, ориентированные на создание комбинированного софта (что не значит, что для какой-то задачи это неправильно), это не значит, что для бизнеса на них свет клином сошелся.
Ровно как и "энтузиасткий" продукт не обязан быть минимальным. Возьми, например, youtube-dl, ffmpeg или mpv.

>В логах фаервола эти попытки не отразились, так что похоже, что порты действительно заткнуты где-то снаружи.

Ну ок, это выглядит достаточно достоверно.

>>206672
Есть утилиты тестирования соединения вроде iperf, но в случае рутера я бы гонял ее по нескольку часов или даже сутки, ибо обычно они козлят тупо потому, что перегреваются.

>> No.206675  

>>206674
Коммерческие проекты ориентированы не только на продажи, но и на соревнование с соперниками за долю рынка.
Поэтому, они обычно создаются по принципу «всё, что только есть у других и ещё сверху виноградина».
Плюс реклама, плюс всякий мусор, зараза и прочие непотребства. За примерами ходить далеко не нужно.

>> No.206676  

>>206673

>В логах фаервола эти попытки не отразились, так что похоже, что порты действительно заткнуты где-то снаружи.

Можешь начинать писать провайдеру уже сейчас.

>> No.206683  

>>206676
Пока пытаюсь обойти это программно.

>> No.206690  

Тратишь время впустую.

>> No.206693  

>>206690
Завтра с работы увижу.

>> No.206698  
Файл: 1461491106253.jpg -(387 KB, 1215x810, 1461491106253.jpg)
387

Ну и, собственно, обошёл. Через UDP. Всё работает.
Приходится писать свой протокол поверх, но это уже детали.

Спасибо ещё раз всем, кто помогал.

>> No.206710  

>>206698

> Приходится писать свой протокол поверх, но это уже детали.

Используй VPN, Люк.

>> No.206718  

>>206710
Но зачем?




[d | an-b-bro-fr-gf-hr-l-m-maid-med-mi-mu-ne-o-old_o-p-ph-r-s-sci-sp-t-tran-tv-w-x | bg-vg | au-mo-tr | a-aa-abe-azu-c-dn-fi-hau-jp-ls-ma-me-rm-sos-tan-to-vn | misc-tenma-vndev | dev-stat]
[Burichan] [Futaba] [Gurochan] [Tomorrow] [Архив-Каталог-RSS] [Главная]