Проблема с Аськой

Автор: Alx Дата: 18.07.2003 14:24 Имеем ASPLinux 7.3 на шлюзе в И-нет, iptables, squid. Аська ходит по https через squid. Сообщения проходят, а передача файлов нет, ругается на peer-to-peer connection. Где нужно копать?
Re: Проблема с Аськой 18.07.2003 16:21Woodoo Alx писал(а):

> Имеем ASPLinux 7.3 на шлюзе в И-нет, iptables, squid. Аська
> ходит по https через squid. Сообщения проходят, а передача
> файлов нет, ругается на peer-to-peer connection. Где нужно
> копать?

В сторону direct connection между конечными пользователями icq.
Т.е. проброс/проксирование портов "снаружи вовнутрь". Что, само по себе, тем более с учетом нескольких пользователей за проксом, весьма нетривиальная задача.
Имхо, файлы проще пересылать почтой.
Re: Проблема с Аськой 18.07.2003 20:02Alx Ну, то что почтой проще, это понятно. Но клиент желает пересылать через аську, а его желание - закон ;-) Тогда, если можно в двух словах - по какому протоколу и через какие порты это прямое соединение осуществляется, или ткните в url, где про это написано. Заранее благодарен.
Re: Проблема с Аськой 18.07.2003 21:18Woodoo Alx писал(а):

> Ну, то что почтой проще, это понятно. Но клиент желает
> пересылать через аську, а его желание - закон ;-) Тогда, если
> можно в двух словах - по какому протоколу и через какие порты
> это прямое соединение осуществляется,

Протокол Oscar. Насколько я знаю - модуля conttrack для iptables для него не существует.

или ткните в url, где про
> это написано. Заранее благодарен.

Не спеши. ;-)

Проблема вот в чем:
- когда говорится "direct connection" - это означает ptp связь между клиентами. Клиент "по ту сторону" может быть на каком угодно ip и порту. Клиент с этой стороны тоже: их может быть несколько в локалке и выходить с любого порта.
- клиент по ту сторону может сам инициализировать соединение, без предварительного уведомления о портах через сервер.
- и если один порт еще можно было пробросить снаружи вовнутрь, то пробросить *все* - затруднительно.
- нет гарантии, что эти же действия выполнены с "той" стороны.

Давай договоримся:
клиент А - с нашей стороны
клиент Б - по ту сторону
шлюз - машина
сервер - сервер icq.

Конфигурация клиента А (для каждого из возможных клиентов):
1. Прописать диапазон портов, используемых для приема ptp коннектов (например 10000-10010), если это позволяет сделать программа-клиент. Для другого клиента А1 - он должен быть другой.
2. Этот диапазон станет известен клиенту Б и он попытается инициализировать ptp. Уже сейчас Oscar благополучно сообщает локальный адрес в подсети и внешний ip шлюза (через сервер).
3. Таким образом, по идее, должны быть разрешены новые *входящие* соединения на шлюз со стороны клиента Б (так как их может быть очень много - значит, со всех адресов -s 0/0) по диапазону портов из п. 1.1. (как по tcp, так и udp) и форвард их клиенту А по этому же диапазону портов. По идее еще нужен snat|masq на "внутренний" интерфейс.
4. Роуты на шлюзе.

А вот теперь вопрос - как работает Oscar? Он будет считать на клиенте Б, что при установке ptp соединения c клиентом А - ip назначения - внутренний ip клиента А, а gateway - реальный ip шлюза клиента А?

Вот, гарантий нет. Точнее не скажу.
Можно поискать на гугле что-нить "icq iptables nat"
Re: Проблема с Аськой 19.07.2003 13:20Alx Спасибо, теперь буду много думать ;-)
P.S. ну и гадость эта тетя Ася Смущенный
RSS-материал