Dotaz na pridelovani portu v IP

Martin Mačok martin.macok na underground.cz
Neděle Listopad 12 19:34:20 CET 2000


On Fri, Nov 10, 2000 at 03:26:18PM +0100, Ing. Pavel PaJaSoft Janousek wrote:
> Mam ciste najety system a na nem bezi rekneme pouze 1 demon
> poslouchajici na portu XYZ (rekneme, ze je privilegovany => port je
> pravdepodobne < 1024).
> 
> 	Tak a ja se nyni zvenku pripojim na tento port. Co se stane - Linux
> prideli port ABC a dalsi komunikace s venkem probiha na tomto portu do
> uzavreni portu.

Pokud to probehne normalne pres

fd=socket();
bind(fd);
listen(fd);
fd2=accept(fd);  <---> connect();
    ...

Tak ta komunikace s daemonem bude probihat porad na stejnem portu.
(Pokud je 200 uzivatelu pripojeno na server pres ssh, veskera komunikace
se vede pres port 22 ...).

Pokud chcete, aby se na kazde spojeni alokoval dalsi port, tak si ho
musite bindnout a uz je na vas, zda si nechate port pridelit systemem,
anebo si predvyplnite sockaddr_in a pokusite se systemu rict, o jaky
port konkretne mate zajem ... (kazdopadne ho budete muset explicitne
sdelit klientu, aby vedel, kam se ma connectnout pro dalsi komunikaci).

> 	A mne prave zajima, jak (zda-li) je definovan port, od ktereho se takto
> ABC 'dynamicky' prideluje. 

AFAIK ne. System ma nejaky algoritmus, kterym si nejaky volny port
najde, ale AFAIK tento algoritmus neni nijak standardizovan.

> Je to zavisle na OS nebo je std. hodnota? 

Byva to od 1024 vys. Ale troufnu si odhadnout (doufam, ze me kdyztak
nekdo opravi), ze RFC by neodporoval zadny port (samozrejme v ramci
2^32).

(MS Windows 9x s oblibou pouzivaji porty <1024 pro odchozi
'neprivilegovana' spojeni ...).

> V Linuxu jsem akorat v /usr/include/netinet/in.h nasel
> IPPORT_USERRESERVED = 5000. Zajimave ale je, ze napr. zname IRC ma dle
> /etc/services pridelen port 6667 a i nektere dalsi well-known services
> maji porty nad 4999:-(. Trochu gulas, ne? 

Je to gulas, ale na svete existuje prilis mnoho
standardnich/nestandardich sluzeb a je docela problem to standardizovat
(http://www.iana.org/numbers.html).

Takove ty nejpouzivanejsi sluzby jsou na portech <1024, aby nemohl
normalni uzivatel predstirat, ze bezi telnet (pop3, ftp ...) server a
nechytal si takto hesla.

> Vzhledem k tomu, ze je to dosti kriticke pro nastaveni firewallu, rad
> bych si v tomto udelal jasno... Co tedy na to normy, RFC atd... (Hledal
> jsem, ale nic jsem krome rozumnejsiho udaje v src. linuxu nenasel)

Rekl bych, ze ohledne staveni firewallu je prehrsel dostupne literatury
a dokumentace ... a velka cast z toho je "dobra". Proti cemu konkretnimu
se chcete firewallem chranit? Jakym firewallem? ipchains?

> PS: Pokud nekdo provozuje cokoli odporujici RFC, je to jeho problem a
> nezajima mne to, mne zajima, co je definovano, co je standard atd...

Rekl bych, ze zde je pomerne malo prostoru pro porusovani RFC.

bye

P.S. Mam takove tuseni, ono <1024 je spise jenom unixismus ...

-- 
< Martin Mačok    .-=  martin.macok na underground.cz  =-.   < iso-8859-2 > 
  \\. http://kocour.ms.mff.cuni.cz/~macok/  http://underground.cz/ .//
    \\\..         `-=    t.r.u.s.t   n.0  o.n.e     =-'        ..///


Další informace o konferenci Linux