Cap. 6. Aplicații de rețea

Cuprins

6.1. Navigatoare Web
6.1.1. Falsificarea șirului User-Agent
6.1.2. Extensie pentru navigator
6.2. Sistemul de poștă electronică
6.2.1. Noțiuni de bază despre poșta electronică
6.2.2. Limita serviciilor poștale moderne
6.2.3. Așteptări istorice privind serviciul poștal
6.2.4. Agentul de transport al poștei electronice („Mail transport agent”: MTA)
6.2.4.1. Configurarea exim4
6.2.4.2. Configurarea postfix cu SASL
6.2.4.3. Configurarea adresei de poștă electronică
6.2.4.4. Operații MTA de bază
6.3. Serverul și instrumentele de acces la distanță (SSH)
6.3.1. Noțiuni de bază despre SSH
6.3.2. Numele de utilizator pe gazda la distanță
6.3.3. Connectarea fără parole la distanță
6.3.4. Gestionarea clienților SSH străini
6.3.5. Configurarea ssh-agent
6.3.6. Trimiterea unui mesaj de la o gazdă de la distanță
6.3.7. Redirecționarea porturilor pentru tunelarea SMTP/POP3
6.3.8. Cum să opriți sistemul de la distanță pe SSH
6.3.9. Soluționarea problemelor SSH
6.4. Serverul de imprimare și utilitățile
6.5. Alte servere de aplicații de rețea
6.6. Alți clienți de aplicații de rețea
6.7. Diagnosticul demonilor sistemului

După stabilirea conexiunii la rețea (a se vedea Cap. 5, Configurarea rețelei), puteți rula diverse aplicații de rețea.

[Indicație] Indicație

Pentru un ghid modern specific Debian privind infrastructura de rețea, citiți Manualul administratorului Debian — Infrastructura de rețea.

[Indicație] Indicație

Dacă ați activat „Verificarea în doi pași” cu un anumit ISP, trebuie să obțineți o parolă de aplicație pentru a accesa serviciile POP și SMTP din programul dvs. Este posibil să fie necesar să aprobați în prealabil adresa IP a gazdei.

Există multe pachete de navigatoare web pentru accesarea conținutului la distanță cu ajutorul Protocolului de transfer hipertext (HTTP).


Această secțiune se concentrează pe stațiile de lucru mobile tipice cu conexiuni la internet la nivel de utilizator casnic.

[Atenție] Atenție

Dacă doriți să configurați serverul de poștă electronică pentru a schimba mesaje direct cu Internetul, ar fi bine să citiți acest document elementar.

Un mesaj de poștă electronică este format din trei componente: plicul mesajului, antetul mesajului și corpul mesajului.

  • Informațiile „Către (To)” și „De la (From)” din plicul mesajului sunt utilizate de SMTP pentru a livra mesajul electronic; (informațiile „De la” din plicul mesajului sunt denumite și adresă de returnare , From_ etc.).

  • Informațiile „Către” și „De la” din antetul mesajului sunt afișate de clientul de poștă electronică; (deși cel mai frecvent aceste informații sunt identice cu cele din plicul mesajului, nu întotdeauna este așa).

  • Formatul mesajului de poștă electronică care acoperă datele din antet și corp este extins de („Multipurpose Internet Mail Extensions”: MIME) -- extensiile cu scopuri multiple pentru poșta electronică din Internet, de la text ASCII simplu la alte codificări de caractere, precum și atașamente de fișiere audio, video, imagini și programe de aplicații.

Clienții de poștă electronică cu interfață grafică completă oferă toate funcțiile următoare, utilizând configurația intuitivă bazată pe interfața grafică.

  • Acesta creează și interpretează antetul mesajului și datele din corp folosind Multipurpose Internet Mail Extensions (MIME) pentru a gestiona tipul de date și codificarea conținutului.

  • Acesta se autentifică pe serverele SMTP și IMAP ale ISP-ului utilizând autentificarea de acces de bază învechită sau autentificarea OAuth 2.0 modernă; (pentru OAuth 2.0, configurați-l prin intermediul opțiunilor de configurare ale mediului de birou. De exemplu, „Configurări” -> „Conturi online”).

  • Acesta trimite mesajul către serverul SMTP „smarthost” al ISP-ului care ascultă pe portul de trimitere a mesajelor (587).

  • Primește mesajul stocat pe serverul ISP de la portul TLS/IMAP4 (993).

  • Poate filtra mesajele după atributele lor.

  • Poate oferi funcționalități suplimentare: Contacte, Calendar, Sarcini, Notițe.


Serviciile poștale moderne sunt supuse unor restricții pentru a minimiza expunerea la problemele legate de spam (mesaje electronice nedorite și nesolicitate).

  • Nu este realist să rulezi un server SMTP pe o rețea de uz casnic pentru a trimite mesaje în mod fiabil direct către gazda la distanță.

  • Un mesaj poate fi respins în mod discret de orice gazdă pe traseul către destinație, cu excepția cazului în care pare cât mai autentic posibil.

  • Nu este realist să ne așteptăm ca un singur smarthost să trimită în mod fiabil mesaje de la adrese de poștă electronică fără legătură cu gazda la distanță.

Acest lucru se datorează faptului că:

Stațiile de lucru mobile Debian pot fi configurate doar cu clienți de poștă electronică cu interfață grafică completă clienți de poștă electronică fără programul agent de transfer de poștă electronică (MTA) după Debian 12 Bookworm.

Debian instala în mod tradițional un program MTA pentru a oferi suport programelor care așteptau comanda /usr/sbin/sendmail. Un astfel de MTA pe stațiile de lucru mobile trebuie să facă față Secțiune 6.2.2, „Limita serviciilor poștale moderne” și Secțiune 6.2.3, „Așteptări istorice privind serviciul poștal”.

Pentru stațiile de lucru mobile, alegerea tipică pentru MTA este fie exim4-daemon-light, fie postfix, cu opțiunea de instalare „Mail sent by smarthost; received via SMTP or fetchmail” (Mesaj trimis de smarthost; primit prin SMTP sau fetchmail) selectată. Acestea sunt MTA-uri de dimensiuni reduse, care respectă „/etc/aliases”.

[Indicație] Indicație

Configurarea exim4 pentru a trimite corespondența electronică prin intermediul mai multor smarthosturi corespunzătoare pentru mai multe adrese de poștă electronică sursă nu este o operațiune simplă. Dacă aveți nevoie de această funcționalitate pentru anumite programe, configurați-le să utilizeze msmtp, care este ușor de configurat pentru mai multe adrese de poștă electronică sursă. Apoi, lăsați MTA principal doar pentru o singură adresă de poștă electronică.


Pentru poșta electronică prin intermediul smarthost, (re)configurați pachetele exim4-* după cum urmează.

$ sudo systemctl stop exim4
$ sudo dpkg-reconfigure exim4-config

Selectați „e-mail trimis prin smarthost; primit prin SMTP sau fetchmail” pentru „Tipul general de configurare a poștei”.

Definiți „Numele de poștă al sistemului:” la valoarea implicită ca FQDN (consultați Secțiune 5.1.1, „Rezoluția numelui de gazdă”).

Definiți „Adresele IP pe care să le monitorizeze pentru conexiunile SMTP primite:” la valoarea implicită „127.0.0.1 ; ::1”.

Eliminați conținutul din „Alte destinații pentru care se acceptă corespondența:”.

Eliminați conținutul din „Mașini pentru redirecționarea mesajelor către:”.

Definiți „Adresa IP sau numele gazdei smarthost-ului de ieșire:” la „smtp.hostname.dom:587”.

Selectați „Nu” pentru „Ascundeți numele adresei locale în mesajele trimise?”; (utilizați „/etc/email-addresses” ca în Secțiune 6.2.4.3, „Configurarea adresei de poștă electronică”, în schimb).

Răspundeți la „Mențineți numărul de interogări DNS la un nivel minim (Dial-on-Demand)?” cu una dintre următoarele opțiuni.

  • „Nu” dacă sistemul este conectat la Internet în timpul pornirii.

  • „Da” dacă sistemul nu este conectat la Internet în timpul pornirii.

Stabiliți „Metoda de livrare pentru poșta locală:” la „format mbox în /var/mail/”.

Selectați „Da” pentru „Împărțiți configurația în fișiere mici?:”.

Creați intrări de parolă pentru smarthost editând „/etc/exim4/passwd.client”.

$ sudo vim /etc/exim4/passwd.client
 ...
$ cat /etc/exim4/passwd.client
^smtp.*\.hostname\.dom:username@hostname.dom:password

Configurați exim4(8) cu „QUEUERUNNER='queueonly'”, „QUEUERUNNER='nodaemon'”, etc. în „/etc/default/exim4” pentru a minimiza utilizarea resurselor sistemului. (opțional)

Porniți exim4 prin următoarea comandă.

$ sudo systemctl start exim4

Numele gazdei din „/etc/exim4/passwd.client” nu trebuie să fie cel al alias. Verificați numele real al gazdei folosind următoarea comandă.

$ host smtp.hostname.dom
smtp.hostname.dom is an alias for smtp99.hostname.dom.
smtp99.hostname.dom has address 123.234.123.89

Folosesc expresii regulate în „/etc/exim4/passwd.client” pentru a rezolva problema cu numele-alias. SMTP AUTH funcționează probabil chiar dacă ISP mută gazda indicată de numele-alias.

Puteți actualiza manual configurația exim4 urmând pașii de mai jos:

  • Actualizați fișierele de configurare exim4 din „/etc/exim4/”.

    • creând fișierul „/etc/exim4/exim4.conf.localmacros” pentru a defini MACRO-urile și editând fișierul „/etc/exim4/exim4.conf.template”. (configurație nedivizată)

    • creând fișiere noi sau editând fișierele existente în subdirectoarele „/etc/exim4/exim4.conf.d”. (configurație divizată)

  • Rulați „systemctl reload exim4”.

[Atenție] Atenție

Pornirea exim4 durează mult timp dacă s-a ales „Nu” (valoare implicită) pentru întrebarea debconf „Păstrați numărul de interogări DNS la minimum (Dial-on-Demand)?” și sistemul nu este conectat la Internet în timpul pornirii.

Vă rugăm să citiți ghidul oficial la: „/usr/share/doc/exim4-base/README.Debian.gz” și update-exim4.conf(8).

[Avertisment] Avertisment

Din considerente practice, utilizați SMTP cu STARTTLS pe portul 587 sau SMTPS (SMTP peste SSL) pe portul 465, în loc de SMTP simplu pe portul 25.

Pentru poșta electronică prin intermediul smarthost, ar trebui să citiți mai întâi documentația postfix și paginile cheie ale manualului.


(Re)configurați pachetele postfix și sasl2-bin după cum urmează.

$ sudo systemctl stop postfix
$ sudo dpkg-reconfigure postfix

Alegeți „Internet cu smarthost”.

Definiți „Numele-gazdei de releu SMTP (în alb pentru niciunul):” la „[smtp.hostname.dom]:587” și configurați-l după cum urmează.

$ sudo postconf -e 'smtp_sender_dependent_authentication = yes'
$ sudo postconf -e 'smtp_sasl_auth_enable = yes'
$ sudo postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
$ sudo postconf -e 'smtp_sasl_type = cyrus'
$ sudo vim /etc/postfix/sasl_passwd

Creați intrări de parolă pentru smarthost.

$ cat /etc/postfix/sasl_passwd
[smtp.hostname.dom]:587     username:password
$ sudo postmap hush:/etc/postfix/sasl_passwd

Porniți postfix cu următoarele.

$ sudo systemctl start postfix

Aici, utilizarea „[” și „]” în dialogul dpkg-reconfigure și „/etc/postfix/sasl_passwd” asigură că nu se verifică înregistrarea MX, ci se utilizează direct numele exact al gazdei specificat. Consultați „Activarea autentificării SASL în clientul SMTP Postfix” în „/usr/share/doc/postfix/html/SASL_README.html”.

Există câteva fișiere de configurare a adreselor de poștă pentru transportul, livrarea și agenții utilizatorilor de poștă electronică.


mailname din fișierul „/etc/mailname” este de obicei un nume de domeniu complet calificat (FQDN) care se rezolvă la una dintre adresele IP ale gazdei. Pentru stația de lucru mobilă care nu are un nume de gazdă cu adresă IP rezolvabilă, stabiliți acest mailname la valoarea „hostname -f”. (Aceasta este o alegere sigură și funcționează atât pentru exim4-*, cât și pentru postfix.)

[Indicație] Indicație

Conținutul fișierului „/etc/mailname” este utilizat de multe programe non-MTA pentru comportamentul lor implicit. Pentru mutt, definiți variabilele „hostname” și „from” în fișierul ~/muttrc pentru a suprascrie valoarea mailname. Pentru programele din pachetul devscripts, cum ar fi bts(1) și dch(1), exportați variabilele de mediu „$DEBFULLNAME” și „$DEBEMAIL” pentru a le suprascrie.

[Indicație] Indicație

Pachetul popularity-contest trimite în mod normal mesaje de poștă electronică din contul root cu FQDN. Trebuie să definiți MAILFROM în /etc/popularity-contest.conf așa cum este descris în fișierul /usr/share/popularity-contest/default.conf. În caz contrar, mesajul dvs. va fi respins de serverul SMTP smarthost. Deși este un proces tedios, această abordare este mai sigură decât rescrierea adresei sursă pentru toate mesajele de la root de către MTA și ar trebui utilizată pentru alți demoni și scripturi cron.

Când se definește mailname ca „hostname -f”, falsificarea adresei de poștă electronică sursă prin MTA poate fi realizată după cum urmează.

  • Fișierul „/etc/email-addresses” pentru exim4(8), așa cum se explică în exim4-config_files(5)

  • Fișierul „/etc/postfix/generic” pentru postfix(1), așa cum se explică în generic(5)

Pentru postfix, sunt necesare următoarele etape suplimentare.

# postmap hash:/etc/postfix/generic
# postconf -e 'smtp_generic_maps = hash:/etc/postfix/generic'
# postfix reload

Puteți testa configurația adresei de poștă electronică utilizând următoarele comenzi.

  • exim(8) cu opțiunile -brw, -bf, -bF, -bV, …

  • postmap(1) cu opțiunea -q.

[Indicație] Indicație

Exim vine cu mai multe programe auxiliare, cum ar fi exiqgrep(8) și exipick(8). Consultați „dpkg -L exim4-base|grep man8/” pentru comenzile disponibile.

Secure SHell (SSH) este modalitatea sigură de conectare la Internet. O versiune gratuită a SSH numită OpenSSH este disponibilă sub forma pachetelor openssh-client și openssh-server în Debian.

Pentru utilizator, ssh(1) funcționează ca un telnet(1) mai inteligent și mai sigur. Spre deosebire de comanda telnet, comanda ssh nu se oprește la caracterul de eludare telnet (implicit CTRL-]).


Deși shellinabox nu este un program SSH, este menționat aici ca o alternativă interesantă pentru accesul la terminalul la distanță.

A se vedea de asemenea Secțiune 7.9, „Conexiune la serverul X” pentru conectarea la programe client X la distanță.

[Atenție] Atenție

Consultați Secțiune 4.6.3, „Măsuri suplimentare de securitate pentru Internet” dacă SSH-ul dvs. este accesibil din Internet.

[Indicație] Indicație

Vă rugăm să utilizați programul screen(1) pentru a permite procesului shell la distanță să supraviețuiască conexiunii întrerupte (consultați Secțiune 9.1.2, „Programul «screen»”).

Demonul SSH al OpenSSH acceptă numai protocolul SSH 2.

Vă rugăm să citiți „/usr/share/doc/openssh-client/README. Debian.gz”, ssh(1), sshd(8), ssh-keygen(1), ssh-add(1) și ssh-agent(1).

[Avertisment] Avertisment

/etc/ssh/sshd_not_to_be_run” nu trebuie să fie prezent dacă se dorește rularea serverului OpenSSH.

Nu activați autentificarea bazată pe rhost (HostbasedAuthentication în /etc/ssh/sshd_config).


Următorul cod inițializează o conexiune ssh(1) de la un client.


Trebuie să protejați procesul care execută „shutdown -h now” (consultați Secțiune 1.1.8, „Cum să opriți sistemul”) împotriva terminării SSH utilizând comanda at(1) (consultați Secțiune 9.4.13, „Programarea sarcinilor o singură dată”) prin următoarele.

# echo "shutdown -h now" | at now

Executarea comenzii „shutdown -h now” în sesiunea screen(1) (vezi Secțiune 9.1.2, „Programul «screen»”) este o altă modalitate de a face același lucru.

În vechiul sistem de tip Unix, BSD Line printer daemon (lpd) era standardul, iar formatul standard de imprimare al software-ului liber clasic era PostScript (PS). Unele sisteme de filtrare erau utilizate împreună cu Ghostscript pentru a permite imprimarea pe imprimante non-PostScript. A se vedea Secțiune 11.4.1, „Ghostscript”.

În sistemul Debian modern, Common UNIX Printing System (CUPS) este standardul de facto, iar formatul standard de imprimare al software-ului liber modern este Portable Document Format (PDF).

CUPS utilizează Internet Printing Protocol (IPP). IPP este standardul de facto multiplatformă pentru imprimarea la distanță cu capacitate de comunicare bidirecțională.

Datorită funcției de conversie automată dependentă de formatul fișierului din sistemul CUPS, introducerea oricăror date în comanda lpr ar trebui să genereze rezultatul de imprimare așteptat; (în CUPS, lpr poate fi activat prin instalarea pachetului cups-bsd).

Sistemul Debian dispune de câteva pachete importante pentru serverele de imprimare și utilități.


[Indicație] Indicație

Puteți configura sistemul CUPS accesând adresa „http://localhost:631/” în navigatorul web.

Iată alte servere de aplicații de rețea.


Protocolul CIFS (Common Internet File System Protocol) este același protocol ca Server Message Block (SMB) și este utilizat pe scară largă de Microsoft Windows.

[Indicație] Indicație

Consultați Secțiune 4.5.2, „Sistemul modern de gestionare centralizată” pentru integrarea sistemelor de servere.

[Indicație] Indicație

Rezoluția numelui de gazdă este furnizată de obicei de serverul DNS. Pentru adresa IP a gazdei atribuită dinamic de DHCP, Dynamic DNS poate fi configurat pentru rezolvarea numelui de gazdă utilizând bind9 și kea, așa cum este descris în pagina DDNS din wiki-ul Debian.

[Indicație] Indicație

Utilizarea unui server proxy precum squid este mult mai eficientă pentru economisirea lățimii de bandă decât utilizarea unui server oglindă local cu conținutul complet al arhivei Debian.

Iată alți clienți de aplicații de rețea.


Programul telnet permite conectarea manuală la demonii sistemului și diagnosticarea acestora.

Pentru a testa serviciul simplu POP3, încercați următoarele

$ telnet mail.ispname.net pop3

Pentru a testa serviciul TLS/SSL activat POP3 de către unii furnizori de servicii Internet, aveți nevoie de un client telnet cu TLS/SSL activat prin pachetele telnet-ssl sau openssl.

$ telnet -z ssl pop.gmail.com 995
$ openssl s_client -connect pop.gmail.com:995

Următoarele RFC-uri furnizează cunoștințele necesare pentru fiecare demon de sistem.


Utilizarea porturilor este descrisă în „/etc/services”.