Cap. 6. Aplicații de rețea

# Cap. 6. Aplicații de rețea

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
Pentru un ghid modern specific Debian privind infrastructura de rețea, citiți Manualul administratorului Debian — Infrastructura de rețea.

| 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.

## 6.1. Navigatoare Web

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

Tabel 6.1. Lista navigatoarelor web

pachet | popcon(popularitate) | dimensiune | tipul | descrierea navigatorului web
--- | --- | --- | --- | ---
`chromium` | V:29, I:101 | 302260 | X | Chromium, (navigator cu codul-sursă deschis de la Google)
`firefox` | V:15, I:21 | 294905 | , , | Firefox, (navigator cu codul-sursă deschis de la Mozilla, disponibil numai în Debian Unstable)
`firefox-esr` | V:190, I:425 | 265874 | , , | Firefox ESR, (versiune Firefox cu suport extins)
`epiphany-browser` | V:2, I:11 | 6666 | , , | GNOME, conform cu liniile directoare privind interfața umanăHuman Interface Guidelines: HIG, Epiphany
`konqueror` | V:25, I:112 | 7982 | , , | KDE, Konqueror
`dillo` | V:0.5, I:4.1 | 1585 | , , | Dillo, (navigator de dimensiuni reduse, bazat pe FLTK)
`w3m` | V:11, I:137 | 2853 | text | w3m
`lynx` | V:28, I:449 | 2031 | , , | Lynx
`elinks` | V:3, I:16 | 1789 | , , | ELinks
`links` | V:2, I:21 | 2321 | , , | Links (text only)
`links2` | V:1, I:10 | 5466 | grafică | Linkuri (grafică de consolă fără X)

### 6.1.1. Falsificarea șirului User-Agent

Pentru a accesa unele situri web excesiv de restrictive, poate fi necesar să falsificați șirul User-Agent returnat de programul de navigare web. A se vedea:

- MDN Web Docs: userAgent -- Documentație web MDN: userAgent
- Chrome Developers: Override the user agent string -- Dezvoltatori Chrome: Suprascrieți șirul agentului de utilizator
- How to change your user agent -- Cum să schimbați agentul de utilizator
- How to Change User-Agent in Chrome, Firefox, Safari, and more -- Cum să schimbați User-Agent în Chrome, Firefox, Safari și altele
- How to Change Your Browser’s User Agent Without Installing Any Extensions -- Cum să schimbați agentul de utilizator al navigatorului fără a instala extensii
- How to change the User Agent in Gnome Web (epiphany) -- Cum se schimbă agentul de utilizator în Gnome Web (epiphany)

### 6.1.2. Extensie pentru navigator

Toate navigatoarele cu interfață grafică modernă acceptă extensii de navigator bazate pe cod sursă extensii de navigator și acestea sunt în curs de standardizare ca extensii web.

## 6.2. Sistemul de poștă electronică

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

| 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.

### 6.2.1. Noțiuni de bază despre poșta electronică

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.

Tabel 6.2. Lista agenților de utilizator de poștă electronică („Mail User Agent”: MUA)

pachet | popcon(popularitate) | dimensiune | tipul
--- | --- | --- | ---
`evolution` | V:26, I:228 | 488 | program cu interfață grafică X (GNOME, suită de programe de lucru în grup)
`thunderbird` | V:42, I:105 | 274189 | program cu interfață grafică X (GTK, Mozilla Thunderbird)
`kmail` | V:43, I:103 | 25270 | program cu interfață grafică X (KDE)
`mutt` | V:11, I:89 | 7332 | program terminal de caractere probabil utilizat cu `vim`
`mew` | V:0.02, I:0.15 | 2319 | program terminal de caractere sub `(x)emacs`

### 6.2.2. Limita serviciilor poștale moderne

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ă:

- Conexiunile SMTP (portul 25) de la gazdele deservite de rețeaua de uz casnic către Internet sunt blocate.

- Conexiunile la portul SMTP (25) către gazdele deservite de rețeaua publică de pe Internet sunt blocate.

- Mesajele trimise de la gazdele deservite de rețeaua de uz casnic către Internet pot fi trimise numai prin portul de trimitere a mesajelor (587).

- Tehnici anti-spam precum DomainKeys Identified Mail (DKIM), Sender_Policy_Framework (SPF) și Domain-based Message Authentication, Reporting and Conformance (DMARC) sunt utilizate pe scară largă pentru filtrarea mesajelor de poștă electronică.

- Serviciul DomainKeys Identified Mail poate fi furnizat pentru mesajele dvs. trimise prin intermediul smarthost.

- Smarthostul poate rescrie adresa de poștă electronică sursă din antetul mesajului cu adresa contului dvs. de poștă electronică de pe smarthost, pentru a preveni falsificarea adresei de poștă electronică.

### 6.2.3. Așteptări istorice privind serviciul poștal

Unele programe din Debian se așteaptă să acceseze comanda `/usr/sbin/sendmail` pentru a trimite mesaje de poștă electronică ca opțiune implicită sau personalizată, deoarece serviciul de poștă electronică pe un sistem UNIX funcționa în mod tradițional astfel:

- Un mesaj de poștă electronică este creat ca fișier text.

- Mesajul de poștă electronică este transmis comenzii `/usr/sbin/sendmail`.

- Pentru adresa de destinație de pe același gazdă, comanda `/usr/sbin/sendmail` efectuează livrarea locală a mesajului prin adăugarea acestuia la fișierul `/var/mail/$username`.

  - Comenzi care necesită această funcție: `apt-listchanges`, `cron`, `at`, ...

- Pentru adresa de destinație de pe gazda la distanță, comanda `/usr/sbin/sendmail` efectuează transferul la distanță al mesajului electronic către gazda de destinație găsită de înregistrarea DNS MX utilizând SMTP.

  - Comenzi care așteaptă această funcție: `popcon`, `reportbug`, `bts`, ...

### 6.2.4. Agentul de transport al poștei electronice („Mail transport agent”: MTA)

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

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ă.

Tabel 6.3. Lista pachetelor bazice legate de agentul de transport al poștei

pachet | popcon(popularitate) | dimensiune | descriere
--- | --- | --- | ---
`exim4-daemon-light` | V:211, I:218 | 1637 | agentul de transport de poștă Exim4 (MTA: implicit în Debian)
`exim4-daemon-heavy` | V:5.1, I:5.2 | 1802 | agentul de transport de poștă Exim4 (MTA: alternativă flexibilă)
`exim4-base` | V:216, I:224 | 1634 | documentația Exim4 (text) și fișiere comune
`exim4-doc-html` | I:0.96 | 3798 | documentația Exim4 (html)
`exim4-doc-info` | I:0.54 | 648 | documentația Exim4 (info)
`postfix` | V:107, I:112 | 4224 | agentul de transport de poștă Postfix (MTA: alternativă securizată)
`postfix-doc` | I:4.6 | 5022 | documentația Postfix (html+text)
`sasl2-bin` | V:5, I:10 | 381 | implementarea API-ului SASL Cyrus (supliment postfix pentru SMTP AUTH)
`cyrus-sasl2-doc` | I:0.68 | 2140 | Cyrus SASL - documentație
`msmtp` | V:8, I:14 | 811 | MTA cu o dimensiune foarte mică
`msmtp-mta` | V:6.5, I:8.5 | 136 | MTA cu o dimensiune foarte mică (extensie de compatibilitate cu sendmail pentru `msmtp`)
`nullmailer` | V:7.9, I:8.4 | 483 | dezactivează MTA, fără poștă locală
`ssmtp` | V:4.2, I:6.3 | 134 | dezactivează MTA, fără poștă locală
`sendmail-bin` | V:11, I:11 | 1954 | MTA cu funcții complete (numai dacă sunteți deja familiarizat cu acesta)
`git-email` | V:0.4, I:9.8 | 1204 | programul git-send-email(1) pentru trimiterea unei serii de mesaje electronice cu plasturi (corecții, așa numitele „patch”)

#### 6.2.4.1. Configurarea exim4

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
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
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.

#### 6.2.4.2. Configurarea postfix cu SASL

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

Tabel 6.4. Lista paginilor importante din manualul postfix

comandă | funcție
--- | ---
postfix(1) | Controlul programului postfix
postconf(1) | Instrumentul de configurare postfix
postconf(5) | Parametrii de configurare postfix
postmap(1) | Administrarea tabelului de căutare postfix
postalias(1) | Administrarea bazei de date de alias postfix

(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`”.

#### 6.2.4.3. Configurarea adresei de poștă electronică

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

Tabel 6.5. Lista fișierelor de configurare legate de adresele de poștă electronică

fișier | funcție | aplicație
--- | --- | ---
`/etc/mailname` | numele gazdei implicite pentru corespondența (expediată) | Specific Debian, mailname(5)
`/etc/email-addresses` | falsificarea numelui gazdei pentru corespondența trimisă | specific exim(8), exim4-config_files(5)
`/etc/postfix/generic` | falsificarea numelui gazdei pentru corespondența trimisă | specific postfix(1), activat după executarea comenzii postmap(1).
`/etc/aliases` | alias al numelui contului pentru mesajele primite | general, activat după executarea comenzii newaliases(1)

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
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

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
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.

#### 6.2.4.4. Operații MTA de bază

Există mai multe operații MTA de bază. Unele pot fi efectuate prin intermediul interfeței de compatibilitate sendmail(1).

Tabel 6.6. Lista operațiilor de bază ale MTA

comanda «exim» | comanda «postfix» | descriere
--- | --- | ---
`sendmail` | `sendmail` | citește mesajele din intrarea standard și organizează livrarea (`-bm`)
`mailq` | `mailq` | listează coada de mesaje cu starea și ID-ul cozii (`-bp`)
`newaliases` | `newaliases` | inițializează baza de date alias (`-I`)
`exim4 -q` | `postqueue -f` | elimină mesajele în așteptare (`-q`)
`exim4 -qf` | `postsuper -r ALL deferred; postqueue -f` | elimină toate mesajele
`exim4 -qff` | `postsuper -r ALL; postqueue -f` | elimină chiar și mesajele înghețate
`exim4 -Mg queue_id` | `postsuper -h queue_id` | îngheață un mesaj după ID-ul cozii sale
`exim4 -Mrm queue_id` | `postsuper -d queue_id` | elimină un mesaj după ID-ul cozii sale
N/D | `postsuper -d ALL` | elimină toate mesajele

| Indicație
Ar fi o idee bună să eliminați toate mesajele prin intermediul unui script din „`/etc/ppp/ip-up.d/*`”.

## 6.3. Serverul și instrumentele de acces la distanță (SSH)

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-]).

Tabel 6.7. Lista serverelor și instrumentelor de acces la distanță

pachet | popcon(popularitate) | dimensiune | instrument | descriere
--- | --- | --- | --- | ---
`openssh-client` | V:915, I:996 | 4210 | ssh(1) | client de shell securizat
`openssh-server` | V:768, I:819 | 3359 | sshd(8) | server de shell securizat
`ssh-askpass` | I:16 | 103 | ssh-askpass(1) | solicită utilizatorului o frază de acces pentru ssh-add (X simplu)
`ssh-askpass-gnome` | V:0.4, I:3.0 | 207 | ssh-askpass-gnome(1) | solicită utilizatorului o frază de acces pentru ssh-add (GNOME)
`ssh-askpass-fullscreen` | V:0.11, I:0.45 | 41 | ssh-askpass-fullscreen(1) | solicită utilizatorului o frază de acces pentru ssh-add (GNOME) cu un plus de atracție vizuală
`shellinabox` | V:0.7, I:1.1 | 528 | shellinaboxd(1) | server web pentru emulator terminal VT100 accesibil din navigator

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
Consultați Secțiune 4.6.3, „Măsuri suplimentare de securitate pentru Internet” dacă SSH-ul dvs. este accesibil din Internet.

| 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»”).

### 6.3.1. Noțiuni de bază despre SSH

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
„`/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`).

Tabel 6.8. Lista fișierelor de configurare SSH

fișier de configurare | descrierea fișierului de configurare
--- | ---
`/etc/ssh/ssh_config` | valorile implicite ale clientului SSH, consultați ssh_config(5)
`/etc/ssh/sshd_config` | valorile implicite ale serverului SSH, consultați sshd_config(5)
`~/.ssh/authorized_keys` | cheile SSH publice implicite pe care clienții le utilizează pentru a se conecta la acest cont pe acest server SSH
`~/.ssh/id_rsa` | cheia secretă SSH-2 RSA a utilizatorului
`~/.ssh/id_key-type-name` | cheie secretă SSH-2 key-type-name precum `ecdsa`, `ed25519`, ... a utilizatorului

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

Tabel 6.9. Listă de exemple de pornire a clientului SSH

comandă | descriere
--- | ---
`ssh username@hostname.domain.ext` | se conectează cu modul implicit
`ssh -v username@hostname.domain.ext` | se conectează cu modul implicit cu mesaje de depanare
`ssh -o PreferredAuthentications=password username@hostname.domain.ext` | forțează utilizarea parolei cu SSH versiunea 2
`ssh -t username@hostname.domain.ext passwd` | rulează programul `passwd` pentru a actualiza parola pe o gazdă la distanță

### 6.3.2. Numele de utilizator pe gazda la distanță

Dacă utilizați același nume de utilizator pe gazda locală și pe cea la distanță, puteți elimina introducerea „`username@`”.

Chiar dacă utilizați nume de utilizator diferite pe gazda locală și pe cea la distanță, puteți elimina acest lucru utilizând „`~/.ssh/config`”. Pentru serviciul Debian Salsa cu numele de cont „`foo-guest`”, modificați „`~/.ssh/config`” astfel încât să conțină următoarele.

    Host salsa.debian.org people.debian.org
    User foo-guest

### 6.3.3. Connectarea fără parole la distanță

Se poate evita memorarea parolelor pentru sistemele la distanță utilizând „`PubkeyAuthentication`” (protocolul SSH-2).

Pe sistemul la distanță, definiți intrările respective, „`PubkeyAuthentication yes`”, în „`/etc/ssh/sshd_config`”.

Generați cheile de autentificare local și instalați cheia publică pe sistemul la distanță, urmând pașii de mai jos.

    $ ssh-keygen -t rsa
    $ cat .ssh/id_rsa.pub | ssh user1@remote "cat - >>.ssh/authorized_keys"

Puteți adăuga opțiuni la intrările din „`~/.ssh/authorized_keys`” pentru a limita gazdele și pentru a rula comenzi specifice. Consultați sshd(8) „FORMATUL FIȘIERULUI AUTHORIZED_KEYS”.

### 6.3.4. Gestionarea clienților SSH străini

Există câțiva clienți SSH liberi disponibili pentru alte platforme.

Tabel 6.10. Lista clienților SSH liberi pentru alte platforme

mediu | program SSH liber
--- | ---
Windows | puTTY (PuTTY: un client SSH și Telnet liber) (GPL)
Windows (cygwin) | SSH în cygwin (Cygwin: Simțiți atmosfera Linux - pe Windows) (GPL)
Mac OS X | OpenSSH; utilizează `ssh` în aplicația Terminal (GPL)

### 6.3.5. Configurarea ssh-agent

Este mai sigur să vă protejați cheile secrete de autentificare SSH cu o frază de acces. Dacă nu a fost stabilită o frază de acces, utilizați „`ssh-keygen -p`” pentru a o stabili.

Plasați cheia SSH publică (de exemplu, „`~/.ssh/id_rsa.pub`”) în „`~/.ssh/authorized_keys`” pe un host la distanță, utilizând o conexiune bazată pe parolă la hostul la distanță, așa cum este descris mai sus.

    $ ssh-agent bash
    $ ssh-add ~/.ssh/id_rsa
    Enter passphrase for /home/username/.ssh/id_rsa:
    Identity added: /home/username/.ssh/id_rsa (/home/username/.ssh/id_rsa)

De aici înainte nu mai este necesară o parolă de la distanță pentru următoarea comandă.

    $ scp foo username@remote.host:foo

Apăsați ^D pentru a încheia sesiunea ssh-agent.

Pentru serverul X, scriptul normal de pornire Debian execută `ssh-agent` ca proces părinte. Deci, trebuie să executați `ssh-add` o singură dată. Pentru mai multe informații, citiți ssh-agent(1) și ssh-add(1).

### 6.3.6. Trimiterea unui mesaj de la o gazdă de la distanță

Dacă aveți un cont shell SSH pe un server cu setări DNS corespunzătoare, puteți trimite un mesaj generat pe stația dvs. de lucru ca un mesaj electronic trimis efectiv de pe serverul la distanță.

    $ ssh username@example.org /usr/sbin/sendmail -bm -ti -f "username@example.org" < mail_data.txt

### 6.3.7. Redirecționarea porturilor pentru tunelarea SMTP/POP3

Pentru a stabili o conexiune la portul 25 al serverului de la distanță `remote-server` de la portul 4025 al `localhost` și la portul 110 al serverului de la distanță `remote-server` de la portul 4110 al `localhost` prin `ssh`, executați pe gazda locală următoarea comandă.

    # ssh -q -L 4025:remote-server:25 4110:remote-server:110 username@remote-server

Aceasta este o metodă sigură de a stabili conexiuni la serverele SMTP/POP3 prin Internet. Stabiliți intrarea „`AllowTcpForwarding`” la „`yes`” în fișierul „`/etc/ssh/sshd_config`” al gazdei de la distanță.

### 6.3.8. Cum să opriți sistemul de la distanță pe SSH

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.

### 6.3.9. Soluționarea problemelor SSH

Dacă aveți probleme, verificați permisiunile fișierelor de configurare și rulați `ssh` cu opțiunea „`-v`”.

Utilizați opțiunea „`-p`” dacă sunteți root și aveți probleme cu un paravan de protecție; aceasta evită utilizarea porturilor serverului 1 — 1023.

Dacă conexiunile `ssh` la un sit la distanță încetează brusc să funcționeze, este posibil ca acest lucru să fie rezultatul unei intervenții a administratorului de sistem, cel mai probabil o modificare a „`host_key`” în timpul întreținerii sistemului. După ce vă asigurați că acesta este cazul și că nimeni nu încearcă să falsifice gazda la distanță printr-un truc inteligent, puteți restabili conexiunea eliminând intrarea „`host_key`” din „`~/.ssh/known_hosts`” de pe gazda locală.

## 6.4. Serverul de imprimare și utilitățile

Î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.

Tabel 6.11. Lista serverelor de imprimare și a utilităților

pachet | popcon(popularitate) | dimensiune | port | descriere
--- | --- | --- | --- | ---
`lpr` | V:2.1, I:2.5 | 378 | imprimantă (515) | BSD lpr/lpd (Demonul de imprimare în linie)
`cups` | V:98, I:446 | 1088 | IPP (631) | Serverul CUPS pentru imprimare prin Internet
`cups-client` | V:118, I:458 | 429 | , , | Comenzi imprimare System V pentru CUPS: lp(1), lpstat(1), lpoptions(1), cancel(1), lpmove(8), lpinfo(8), lpadmin(8), …
`cups-bsd` | V:34, I:186 | 131 | , , | Comenzi BSD pentru imprimare pentru CUPS: lpr(1), lpq(1), lprm(1), lpc(8)
`printer-driver-gutenprint` | V:11, I:56 | 1117 | Nu este aplicabil | controlori de imprimantă pentru CUPS

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

## 6.5. Alte servere de aplicații de rețea

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

Tabel 6.12. Lista altor servere de aplicații de rețea

pachet | popcon(popularitate) | dimensiune | protocol | descriere
--- | --- | --- | --- | ---
`telnetd` | V:0.3, I:1.6 | 55 | TELNET | server TELNET
`nfs-kernel-server` | V:47, I:55 | 830 | NFS | partajarea fișierelor Unix
`samba` | V:109, I:123 | 5053 | SMB | partajarea fișierelor și imprimantelor Windows
`netatalk` | V:0.74, I:0.97 | 933 | ATP | partajarea fișierelor și imprimantelor Apple/Mac (AppleTalk)
`proftpd-basic` | V:3.9, I:9.2 | 452 | FTP | descărcare fișier general
`apache2` | V:178, I:218 | 586 | HTTP | server web general
`squid` | V:9.3, I:9.9 | 9358 | , , | server proxy web general
`bind9` | V:35, I:37 | 885 | DNS | adresa IP pentru alte gazde
`kea` | I:0.57 | 244 | DHCP | adresa IP a clientului însuși

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
Consultați Secțiune 4.5.2, „Sistemul modern de gestionare centralizată” pentru integrarea sistemelor de servere.

| 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
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.

## 6.6. Alți clienți de aplicații de rețea

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

Tabel 6.13. Lista clienților de aplicații de rețea

pachet | popcon(popularitate) | dimensiune | protocol | descriere
--- | --- | --- | --- | ---
`netcat-traditional` | V:50, I:904 | 139 | TCP/IP | cuțitul elvețian TCP/IP
`netcat-openbsd` | V:22, I:120 | 105 | TCP/IP | cuțitul elvețian TCP/IP cu suport pentru IPv6, proxy-uri și socluri Unix
`openssl` | V:847, I:996 | 2532 | SSL | binare Secure Socket Layer (SSL) și instrumente criptografice asociate
`stunnel4` | V:6.2, I:9.3 | 24 | , , | învăluitor SSL universal
`telnet` | V:11, I:215 | 55 | TELNET | client TELNET
`nfs-common` | V:150, I:197 | 1139 | NFS | partajarea fișierelor Unix
`smbclient` | V:26, I:206 | 2088 | SMB | client de partajare a fișierelor și imprimantelor MS Windows
`cifs-utils` | V:33, I:119 | 351 | , , | comenzile de montare și demontare pentru fișiere MS Windows la distanță
`wget` | V:185, I:982 | 3784 | HTTP și FTP | program de descărcare din rețea
`curl` | V:244, I:716 | 512 | , , | , ,
`transmission-gtk` | V:11, I:156 | 6259 | BitTorrent | client BitTorrent (GTK)
`transmission-qt` | V:0.7, I:2.5 | 6213 | , , | client BitTorrent (Qt)
`ktorrent` | V:1.4, I:5.1 | 5031 | , , | client BitTorrent (Qt)
`qbittorrent` | V:8, I:22 | 15261 | , , | client BitTorrent (Qt)
`bind9-host` | V:128, I:940 | 137 | DNS | host(1)din bind9, "`Priority: standard`"
`dnsutils` | V:5, I:161 | 23 | , , | dig(1) din bind, "`Priority: standard`"
`ldap-utils` | V:10, I:58 | 782 | LDAP | obține date de la serverul LDAP

## 6.7. Diagnosticul demonilor sistemului

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.

Tabel 6.14. Lista RFC-urilor populare

RFC | descriere
--- | ---
rfc1939 și rfc2449 | POP3 service
rfc3501 | serviciul IMAP4
rfc2821 (rfc821) | serviciul SMTP
rfc2822 (rfc822) | formatul fișierului de poștă electronică
rfc2045 | Multipurpose Internet Mail Extensions (MIME)
rfc819 | serviciul DNS
rfc2616 | serviciul HTTP
rfc2396 | definiție URI

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

Cap. 5. Configurarea rețelei |  | Cap. 7. Sistemul de interfață grafică