Jak na Internet server ? (5)
Oba protokoly jsou si jednou vlastností podobné: mají klasické slovní příkazy a poslat protokolem SMTP popř. přijmout protokolem POP3 můžete zprávu i bez jakéhokoli speciálního klienta, stačí obyčejný Telnet. Protokol SMTP pracuje na bázi TCP protokolu, protokol POP3 (i POP2) využívají jak TCP, tak i protokolu UDP. Protokoly POP jsou ještě relativně bezpečné - vyžadují pro přihlášení jméno a heslo (i když se vše přenáší po síti v nekryptované podobě) - ale u POP relací se jaksi nepočítá s tím, že by šly přes celý svět, spíše jen po vaší lokální síti, popř. po síti vašeho providera. TCP a UDP socket pro POP2 je 109, pro POP3 je 110. Protokol SMTP nelze nazvat bezpečným ani náhodou. Přes SMTP může poslat kdokoli komukoli mail jako kdokoli jiný. Existují sice různá rozšíření SMTP protokolu, od povinného HELO příkazu až po ESMTP (Enhanced SMTP), ale bezpečnost protokolu to v žádném případě neřeší (jen to případného mail-spoofera o pár sekund zdrží). Určitým řešením - mnohem bezpečnějším - (ale určitě nikoli naprosto bezpečným) by bylo jen něco na způsob POP3, ale to by si vyžádalo rozsáhlá opatření routování mailu, jednotný strom pro routování pošty atd., čímž by se síť ještě více zahltila a správci by měli navíc na starosti horu administrativy. Celý systém by pak silně připomínal routování pošty ve FidoNetu. Pokud chcete mít jistotu, že zprávu opravdu poslal ten, kdo je u ní podepsaný, používejte digitální podpis třeba z PGP. Základní příkazy protokolu SMTP jsou: HELO, EHLO, MAIL, RCPT, DATA, RSET, NOOP, QUIT, HELP, VRFY, EXPN a VERB. Nejdůležitější jsou příkazy MAIL, RCPT a DATA - MAIL FROM: specifikuje odesilatele zprávy (bez jakékoli další kontroly), RCPT TO: definuje příjemce zprávy a může se v hlavičce přenášené zprávy vyskytovat naprosto bez omezení (v podstatě jde o funkce CC: a BCC:). Příkaz DATA uvozuje tělo zprávy, které musí končit tečkou na samostatné řádce. Příkaz HELO sdělí sendmailu na přijímající straně, s kterým sendmailem na jakém počítači se baví (a ověřuje se to podle DNS záznamu), EHLO dělá totéž, jen s tím rozdílem, že také zapíná ESMTP režim (který nám dává k dispozici další sadu příkazů). VRFY a EXPN umožňují zjistit informaci o případné existenci adresáta a případné další informace o něm (jméno, příjmení, uživatelské jméno, na které ukazuje mail alias). VERB zapíná verbose mód (viz RFC821), RSET resetuje status dané mailové relace, NOOP nedělá nic, HELP poskytuje informace o příkazech a QUIT ukončuje relaci. Dodatkovými příkazy ESMTP jsou: 8BITMIME, SIZE, DSN, ONEX, ETRN a XUSR, oproti SMTP jsou v ESMTP pozměněny příkazy EXPN, VERB a HELP. Protokol ESMTP dále definuje určitá rozšíření přenosu pošty (přenos osmibitových dat MIME atd.), ale to už bychom se zbytečně vzdalovali od tématu. Protokol POP3 má také určitou množinu příkazů. Při spuštění relace je však nutné se přihlásit, nejprve příkaz USER s uvedením jména uživatele a pak příkaz PASS s heslem. Množina příkazů základní specifikace POP3 je: DELE, HOST, LAST, LIST, MBOX, NOOP, RETR, RSET, STAT, TOP or QUIT. Příkaz DELE vymaže zprávu z mailboxu, příkaz HOST mění uživatelský mailbox na hostitelském systému (což je pěkná security hole, naštěstí ve většině unixových systémů díky chybě v implicitní konfiguraci pop3d nepoužitelná). Příkaz LAST vrací číslo naposledy přečtené zprávy (tzv. lastread pointer), LIST vypisuje seznam zpráv ve vašem mailboxu atd. Dalším důležitým příkazem je RETR pro odeslání zprávy na klietskou stanici. Ostatní příkazy již nejsou tak důležité. Kromě těchto příkazů ještě existuje v některých implementacích pop3d serveru sada implementací pro příjem zprávy. Tato možnost však ještě nebyla standardizována. - pokračování příště - Zbyněk Pospíchal
|