Как указать, что клиент подключается только из диапазона локальных портов к серверу на языке RPC - PullRequest
0 голосов
/ 05 мая 2011

У меня есть устаревший исходный файл, описывающий протокол, который будет использоваться для RPC, в файле с расширением .x, который подается в rpcgen для создания необходимых заглушек для протокола. Однако в настоящее время в созданных файлах-заглушках RPC-клиент может свободно подключаться к любому порту (или прослушивать его). потому что в сгенерированном файле я вижу следующее

transp = svctcp_create(RPC_ANYSOCK, 0, 0);

Я новичок в RPC и связанных с ним вещах, но все равно пытаюсь его изменить .... Поскольку я знаю, что сервер прослушивает определенный порт, я пришел к выводу, что приведенная выше строка вызывает то, что клиент подключается из произвольного порт. Теперь я вроде как это исправить .. Мне нужно будет попытаться открыть несколько сокетов, чей порт будет в заданном диапазоне портов, пока я не добьюсь успеха, и передать его в качестве первого аргумента svctcp_create ... Однако это должно быть в файлах, сгенерированных rpcgen, что не очень удобно для меня. Я хотел бы изменить файл ".x", чтобы сделать это раз и навсегда. Кто-нибудь может мне помочь с этим? Спасибо, Сунил

1 Ответ

0 голосов
/ 05 мая 2011

Зачем вам нужно ограничить локальные порты диапазоном? Это не поддерживается ни на одном уровне сетевых API-интерфейсов TCP. Диапазоны клиентских портов иногда задаются в качестве правил брандмауэра нетадминами, которые не знают о невозможности реализации и думают, что они добавляют безопасность, в чем они также ошибаются. В чем причина в вашем случае?

...