Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

16.04.2010, 19:26
|
|
Участник форума
Регистрация: 25.06.2006
Сообщений: 220
Провел на форуме: 2052669
Репутация:
178
|
|
Такой же глюк как и у всех.
При загрузке страницы выдает (в FF):
"Время ожидания соединения истекло"
Код:
C:\Perl\bin>perl.exe C:\sss.pl 127.0.0.1:80 http://site.ru/about/photo/xx.php -d
127.0.0.1:80 => 209.85.229.104:80
127.0.0.1:80 => 216.239.59.104:80
127.0.0.1:80 => 74.125.77.104:80
В папке /tmp/ создаются сессии.
Система:
FreeBSD 7.1
Apache/1.3.41 (Unix)
FrontPage/5.0.2.2623
PHP/5.2.9
mod_ssl/2.8.31
OpenSSL/0.9.8e rus/PL30.22
Код:
$fp = fsockopen("ya.ru", 80, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: ya.ru\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
Нормально обрабатывает.
---------------------------------
Добавлено:
Протестировал на другом сервере:
FreeBSD 6.4
PHP: 5.2.10
Все отлично работает. Но почему на том не хотело хз.
Заметил еще один глюк, иногда не до конца загружает страницу, или вообще выводит пустую белую, иногда бывает что вообще разрывает соединение.
Последний раз редактировалось GrAmOzEkA; 16.04.2010 в 20:23..
|
|
|

17.04.2010, 00:42
|
|
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме: 5749763
Репутация:
1680
|
|
GrAmOzEkA, если есть KIS или Outpost, ковыряй ихние настройки, полностью исключив пЭрл из правил проверки.
|
|
|

22.04.2010, 05:18
|
|
Пачка маргарина
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме: 4646474
Репутация:
1424
|
|
обновил, что-то исправил
|
|
|

22.04.2010, 17:12
|
|
Познающий
Регистрация: 16.05.2007
Сообщений: 70
Провел на форуме: 1904000
Репутация:
41
|
|
А каким способом можно шифровать траффик используя этот сокс, кроме как юзать Tor ?
|
|
|

22.04.2010, 18:03
|
|
Познающий
Регистрация: 07.05.2009
Сообщений: 54
Провел на форуме: 487201
Репутация:
80
|
|
Шанкар, поясни плиз - если сервак находится за гейтвэем, на котором осуществляется прокидывание портов, а так же фильтрование траффика (то есть внутрь и наружу проходят пакеты только по 80 TCP порту), получится ли использовать скрипт, чтобы получить доступ к другим портам на сервере?
В частности, интересует вопрос таймаутов - есть ли возможность с помощью этого скрипта прокинуть постоянное соединение? Если, например, нельзя изменить время выполнения PHP на сервере (запрещено политиками безопасности), то других вариантов я просто не вижу.
Последний раз редактировалось r00nix; 22.04.2010 в 18:11..
|
|
|

28.04.2010, 06:57
|
|
Пачка маргарина
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме: 4646474
Репутация:
1424
|
|
Сообщение от r00nix
Шанкар, поясни плиз - если сервак находится за гейтвэем, на котором осуществляется прокидывание портов, а так же фильтрование траффика (то есть внутрь и наружу проходят пакеты только по 80 TCP порту), получится ли использовать скрипт, чтобы получить доступ к другим портам на сервере?
ну это зависит как фаервол настроен уже на сервере, но так локальный трафик нет смысла рубить.
В частности, интересует вопрос таймаутов - есть ли возможность с помощью этого скрипта прокинуть постоянное соединение? Если, например, нельзя изменить время выполнения PHP на сервере (запрещено политиками безопасности), то других вариантов я просто не вижу.
через промежуточный процесс можно сделать- тоесть запускаем к примеру perl скрипт на сервере делаем fork и он висит сколько надо либо уже руководствуясь другими ограничениями. общается по tcp с тем чем надо и паралельно с php скриптом
Последний раз редактировалось ShAnKaR; 28.04.2010 в 08:05..
|
|
|

07.05.2010, 09:30
|
|
Познающий
Регистрация: 07.05.2009
Сообщений: 54
Провел на форуме: 487201
Репутация:
80
|
|
Сообщение от ShAnKaR
через промежуточный процесс можно сделать- тоесть запускаем к примеру perl скрипт на сервере делаем fork и он висит сколько надо либо уже руководствуясь другими ограничениями. общается по tcp с тем чем надо и паралельно с php скриптом
Понял твою идею, она хороша, но мне она, к сожалению, не подходит. Попробую объяснить, почему. Имеется такая схема:
A - клиентская машина.
B - файрволл.
C[1;n ] - кластер веб-серверов (для снижения нагрузки).
Файрволл B является шлюзом для кластера C. К нему у меня доступа нет.
Пытаюсь рассужать логически, как идет трафик от А к С(n). Судя по всему, на В две сетевые карты, В1 и В2. В1 смотрит во внешку, а В2 - во внутреннюю сеть, в которой помимо кластера С находятся еще кластер с базой данных и NFS-серверы. Внутри сети трафик не фильтруется никак, при попытке обратиться во внешку - пакеты попадают на В2, на котором режется все, кроме транзитного трафика на 80 порт ТСР в обе стороны (видимо, админы недоглядели), который свободно уходит из внутренней сети во внешку. На файрволле стоит прокси (судя по всему - сквид), который смотрит во внешку на интерфейсе В1 на 80 порту и прозрачно форвардит запросы на случайно выбранный сервер из кластера С. Наличие прокси проверено опытным путем. На В1 фильтруется весь входящий трафик, кроме того, что идет на 80 ТСР. Также есть такая вероятность, что сквид стоит на одной из машин во внутренней сети, а с В1 на него трафик просто натится.
Итак, я с машины А браузером обращаюсь на В и вижу страницу с C(n), где n - случайным образом выбранная машина из кластера С. Все машины в кластере настроены одинаково, DocumentRoot на всех - это примонтированная директория одного NFS-сервера. У меня есть доступ к С через веб-шелл, с правами пользователя виртуального хостинга. Допустим, мне необходимо проксировать все свои запросы во внутреннюю сеть (к примеру, я хочу подключиться по ssh на одну из машин) - для этого мне нужна постоянная сессия. Почему я не могу при этом воспользоваться твоим советом - ты, думаю, понял. Поднимать демона на perl на каждом сервере из кластера для общения с ним через php скрипт, который будет доступен через веб-морду - это не вариант, так как для постоянной сессии придется реализовывать довольно непростой интерфейс для общения демонов на разных машинах в кластере между собой - что-то вроде RPC с блэкджеком и печеньками.
Можно, конечно, поступить совсем просто - сделать бэкконнект с одной из машин кластера на 80 порт ТСР своей тачки, но вся проблема в том, что под рукой нет машин с белым ипом и свободным 80 портом. Отсюда вытекает еще одна идея - грубо говоря, на третьей стороне на веб-интерфейсе будет php скрипт, на который периодически будет стучать демон с оного из серверов кластера, оставлять свой out и получать задания. Php скрипт, в свою очередь, при каждом выполнении будет транслировать out на прослушиваемый на моем компе порт и брать задания с этого же порта. Но эта идея обречена на провал - скорость каждого "пакета" в такой "сессии" будет измеряться десятками секунд, и если попробовать завернуть в такую RPC (а это именно она) обычный tcp трафик (чего я и хочу первоначально добиться) - то это будет просто смешно.
В общем, у меня такое впечатление, что кроме бэкконнекта в моем случае ничего сделать не получится. Может, я где-то заблуждаюсь, и все-таки можно что-то придумать, используя те идеи, которые реализованы в топике?
|
|
|

07.05.2010, 16:22
|
|
Пачка маргарина
Регистрация: 14.07.2005
Сообщений: 964
Провел на форуме: 4646474
Репутация:
1424
|
|
бекконект возможно тоже не получится из за того что трафик будет обрабатыватся прокси сервером. можно попробовать использовать dns tunnel но тут тоже нужен сервер с белым ip и 53 портом.
твой предложенный вариант в принципе можно попробовать реализовать, задержки конечно будут значительные как ты и сказал.
а так еще если я правильно все понял, проблема использования этого скрипта в том что машины меняются постоянно и постоянной сессии не получается из за этого.
тут вариант - так как веб папка везде одна- на nfs находится, изменить настройки скрипта так чтоб unix сокет создавался в папке nfs а не /tmp/ тоесть на всех тачках он будет неизменен и один и ничто не помешает держать сессию я думаю.
это как с обычными сессиями php если тачка меняется то php уже не находит сессию. а если файлы сессий хранятся в общей папке то все работает.
Последний раз редактировалось ShAnKaR; 07.05.2010 в 16:24..
|
|
|

07.05.2010, 20:15
|
|
Познающий
Регистрация: 07.05.2009
Сообщений: 54
Провел на форуме: 487201
Репутация:
80
|
|
Сообщение от ShAnKaR
бекконект возможно тоже не получится из за того что трафик будет обрабатыватся прокси сервером. можно попробовать использовать dns tunnel но тут тоже нужен сервер с белым ip и 53 портом.
Бэкконнект вполне возможен - транзитный трафик на 80 ТСР пропускается свободно и напрямую. Проверял tcpdump'ом на удаленном хосте. DNS-туннель не получится - UDP режется, резолвинга во внутренней сети нет вообще.
А вот за идею с одним сокетом на нескольких машинах огромное спасибо.
|
|
|

20.05.2010, 15:53
|
|
Познающий
Регистрация: 06.01.2009
Сообщений: 60
Провел на форуме: 1191310
Репутация:
78
|
|
вопрос с разрывом соединения и перезапуском, кто-нить решил?
|
|
|
|
 |
|
TEST QR: []
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|