Capitolo 6. Applicazioni per la rete

Indice

6.1. Browser web
6.1.1. Configurazione del browser
6.2. Il sistema di posta
6.2.1. Nozioni di base sulla posta elettronica
6.2.2. Modern mail service limitation
6.2.3. Historic mail service expectation
6.2.4. Agente di trasporto della posta (MTA)
6.2.4.1. La configurazione di exim4
6.2.4.2. La configurazione di Postfix con SASL
6.2.4.3. La configurazione dell'indirizzo di posta
6.2.4.4. Operazioni di base degli MTA
6.3. Il server e le utilità per l'accesso remoto (SSH)
6.3.1. Nozioni di base su SSH
6.3.2. User name on the remote host
6.3.3. Connettersi senza password remote
6.3.4. Gestire client SSH estranei
6.3.5. Impostare ssh-agent
6.3.6. Sending a mail from a remote host
6.3.7. Forwarding della porta per tunnel SMTP/POP3
6.3.8. Spegnere il sistema remoto su SSH
6.3.9. Risolvere il problemi con SSH
6.4. Server ed utilità per la stampa
6.5. Altri server di rete
6.6. Altri client di rete
6.7. Diagnosi dei demoni di sistema

Dopo aver stabilito la connessione di rete (vedere Capitolo 5, Impostazione della rete), si possono eseguire svariate applicazioni per la rete.

[Suggerimento] Suggerimento

Per una guida moderna sull'infrastruttura di rete specifica per Debian leggere The Debian Administrator's Handbook — Network Infrastructure.

[Suggerimento] Suggerimento

Se si abilita la "Verifica in 2 passaggi" con alcuni ISP è necessario ottenere una password di applicazione per accedere ai servizi POP e SMTP dal proprio programma. Può essere necessario approvare l'IP del proprio host in anticipo.

Ci sono molti pacchetti per browser web per accedere a contenuti remoti tramite HTTP (Hypertext Transfer Protocol).


Per alcuni browser si può accedere alle loro impostazioni usando le seguenti stringhe URL speciali.

  • "about:"

  • "about:config"

  • "about:plugins"

Debian offre, nell'area main dell'archivio, molti pacchetti liberi con plugin per browser che possono gestire non soltanto Java (piattaforma software) e Flash, ma anche file MPEG, MPEG2, MPEG4, DivX, Windows Media Video (.wmv), QuickTime (.mov), MP3 (.mp3), file Ogg/Vorbis, DVD, VCD, ecc. Debian offre anche, nell'aree contrib o non-free dell'archivio, programmi di aiuto per installare pacchetti con plugin non liberi per il browser.


[Suggerimento] Suggerimento

Benché l'uso dei pacchetti Debian elencati sopra sia molto più facile, è sempre possibile abilitare i plugin manualmente installando i file "*.so" nelle directory dei plugin (ad esempio, "/usr/lib/iceweasel/plugins/") e riavviando il browser.

Alcuni siti web rifiutano la connessione in base alla stringa user-agent del browser. Si può aggirare questa situazione mimando la stringa user-agent. Per esempio, può essere fatto aggiungendo nei file di configurazione, come "~/.gnome2/epiphany/mozilla/epiphany/user.js" o "~/.mozilla/firefox/*.default/user.js", la riga seguente.

user_pref{"general.useragent.override","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"};

In alternativa si può aggiungere e reimpostare questa variabile digitando "about:config" al posto dell'URL e cliccando con il pulsante destro sul suo contenuto.

[Attenzione] Attenzione

La stringa user-agent falsificata può causare dei brutti effetti collaterali con Java.

This section focuses on typical mobile workstations on consumer grade Internet connections.

[Attenzione] Attenzione

Se si desidera impostare il server di posta per scambiare la posta direttamente con Internet, si dovrebbe leggere una documentazione più dettagliata di questo documentazione base.

Un messaggio email è formato da tre componenti: la busta del messaggio, l'intestazione del messaggio e il corpo del messaggio.

  • Le informazioni "To" e "From" nella busta del messaggio vengono usate dall'SMTP per consegnare l'email. (L'informazione "From" nella busta del messaggio è anche chiamata indirizzo di bounce, From_, ecc.)

  • Le informazioni "To" e "From" nell'intestazione del messaggio vengono visualizzate dal programma di posta. (Benché nella maggior parte dei casi questi sono identici a quelli nella busta del messaggio, può non essere sempre così.)

  • The email message format covering header and body data is extended by Multipurpose Internet Mail Extensions (MIME) from the plain ASCII text to other character encodings, as well as attachments of audio, video, images, and application programs.

Full featured GUI based email clients offer all the following functions using the GUI based intuitive configuration.

  • It creates and interprets the message header and body data using Multipurpose Internet Mail Extensions (MIME) to deal the content data type and encoding.

  • It authenticates itself to the ISP's SMTP and IMAP servers using the legacy basic access authentication or modern OAuth 2.0. (For OAuth 2.0, set it via Desktop environment settings. E.g., "Settings" -> "Online Accounts".)

  • It sends the message to the ISP's smarthost SMTP server listening to the message submission port (587).

  • It receives the stored message on the ISP's server from the TLS/IMAP4 port (993).

  • It can filter mails by their attributes.

  • It may offer additional functionalities: Contacts, Calendar, Tasks, Memos.


In principle, mobile workstations should function without the /usr/sbin/sendmail command provided by the mail transfer agent (MTA) program.

The Debian system usually installs MTA to cope with Sezione 6.2.2, «Modern mail service limitation» and Sezione 6.2.3, «Historic mail service expectation» even if mobile workstations installed full featured GUI based email clients.

For mobile workstations, the typical choice of MTA is either exim4-daemon-light or postfix with its installation option such as "Mail sent by smarthost; received via SMTP or fetchmail" selected. These are light weight MTAs that respect "/etc/aliases".

[Suggerimento] Suggerimento

Configuring exim4 to send the Internet mail via multiple corresponding smarthosts for multiple source email addresses is non-trivial. If you need such capability for some programs, set them up to use msmtp which is easy to set up for multiple source email addresses. Then leave main MTA only for a single email address.


Per la posta di Internet attraverso uno smarthost, riconfigurare i pacchetti exim4-* nel modo seguente.

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

Selezionare "posta inviata tramite «uno smarthost», ricevuta via SMTP o fetchmail" per "Tipo di configurazione del sistema di posta".

Impostare "Mail name del sistema:" al suo valore predefinito come FQDN (vedere Sezione 5.1.1, «Risoluzione dei nomi di host»).

Impostare "indirizzi IP sui quali attendere connessioni SMTP in ingresso:" al suo valore predefinito "127.0.0.1 ; ::1".

Svuotare il contenuto di "Altre destinazioni per conto delle quali accettare posta:".

Svuotare il contenuto di "Sistemi per i quali fare il "relay":".

Impostare l'"Indirizzo IP o nome host dello smarthost per la posta in uscita:" a "smtp.hostname.dom:587".

Select "No" for "Hide local mail name in outgoing mail?". (Use "/etc/email-addresses" as in Sezione 6.2.4.3, «La configurazione dell'indirizzo di posta», instead.)

Rispondere a "Mantenere al minimo il numero di richieste DNS (Dial-on-Demand)?" in uno dei modi seguenti.

  • "No", se il sistema è connesso ad Internet durante l'avvio.

  • "Sì", se il sistema non è connesso ad Internet durante l'avvio.

Impostare "Modalità di consegna per la posta locale:" a "Formato mbox in /var/mail/".

Select "Yes" for "Split configuration into small files?:".

Creare voci per la password dello smarthost modificando il file "/etc/exim4/passwd.client".

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

Configure exim4(8) with "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'", etc. in "/etc/default/exim4" to minimize system resource usages. (optional)

Avviare exim4 con il comando seguente.

$ sudo systemctl start exim4

Il nome host in "/etc/exim4/passwd.client" non dovrebbe essere l'alias. Si può controllare il vero nome host nel modo seguente.

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

Per aggirare il problema degli alias, io uso espressioni regolari nel file "/etc/exim4/passwd.client" SMTP AUTH probabilmente funziona anche se il fornitore di servizi Internte sposta l'host a cui punta l'alias.

Si può aggiornare manualmente la configurazione di exim4 facendo quanto segue:

  • Aggiornare i file di configurazione di exim4 in "/etc/exim4/".

    • Creare "/etc/exim4/exim4.conf.localmacros" per impostare le MACRO e modificare "/etc/exim4/exim4.conf.template". (Configurazione non suddivisa.)

    • Creare nuovi file o modificare quelli esistenti nelle sottodirectory "/etc/exim4/exim4.conf.d". (Configurazione suddivisa.)

  • Run "systemctl reload exim4".

[Attenzione] Attenzione

Se si è scelta la ripsosta "No" (risposta predefinita) per la domanda di debconf "Mantenere al minino il numero di richieste DNS (Dial-on-Demand)?" ed il sistema non è connesso ad Internet, l'avvio di exim4 può richiedere un tempo molto lungo.

Leggere la guida ufficiale in "/usr/share/doc/exim4-base/README.Debian.gz" e update-exim4.conf(8).

[Avvertimento] Avvertimento

For all practical consideration, use SMTP with STARTTLS on port 587 or SMTPS SSL (SMTPS) on port 465, instead of plain SMTP on port 25.

Per la posta Internet via smarthost, si dovrebbe come prima cosa leggere la documentazione di Postfix e le pagine man principali.


Si possono (ri)configurare i pacchetti postfix e sasl2-bin nel modo seguente.

$ sudo systemctl stop postfix
$ sudo dpkg-reconfigure postfix

Scegliere "Internet con smarthost".

Impostare "relay host SMTP (vuoto per nessuno):" a "[smtp.hostname.dom]:587" e configurarlo nel modo seguente.

$ 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

Creare le voci con le password per lo smarthost.

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

Avviare postfix con il comando seguente.

$ sudo systemctl start postfix

In questo caso l'uso di "[" e "]" nel dialogo di dpkg-reconfigure e in "/etc/postfix/sasl_passwd" assocura che non venga controllato il record MX, ma usato direttamente l'esatto nome host specificato. Vedere "Abilitare l'autenticazione SASL nel client SMTP di Postfix" in "/usr/share/doc/postfix/html/SASL_README.html".

Ci sono diversi file di configurazione dell'indirizzo di posta per gli strumenti di trasporto della posta, di consegna e per i programma di posta.


Il nomeposta nel file "/etc/mailname" è solitamente un nome di dominio pienamente qualificato (FQDN) che è risolto ad uno degli indirizzi IP dell'host. Per le postazioni mobili che non hanno un nome host con un indirizzo IP risolvibile, impostare questo nomemail al valore di "hostname -f". (Questa è una scelta sicura e funziona sia per exim4-* sia per postfix.)

[Suggerimento] Suggerimento

Il contenuto di "/etc/mailname" è usato da molti programmi non MTA per determinare il loro comportamento predefinito. Per mutt, impostare le variabili "hostname" e from" nel file ~/muttrc per sovrascrivere il valore di mailname. Per i programmi nel pacchetto devscripts, come bts(1) e dch(1), esportare le variabili d'ambiente "$DEBFULLNAME" e "$DEBEMAIL" per sovrascriverlo.

[Suggerimento] Suggerimento

Il pacchetto popularity-contest normalmente invia posta dall'account di root con FQDN. È necessario impostare MAILFROM in /etc/popularity-contest.conf come descritto nel file /usr/share/popularity-contest/default.conf. In caso contrario la posta verrà rigettata dal server SMTP dello smarthost. Sebbene sia una scocciatura, questo approccio è più sicuro della riscrittura dell'indirizzo sorgente di tutta la posta di root da parte dell'MTA e dovrebbe essere usato per altri demoni e script cron.

Qunado si imposta mailname al valore di "hostname -f", la modifica dell'indirizzo di posta d'origine con il MTA può essere fatta nel modo seguente.

  • Usando il file "/etc/email-addresses" per exim4(8), come spiegato in exim4-config_files(5).

  • Usando il file "/etc/postfix/generic" per postfix(8), come spiegato in generic(5).

Per postfix sono necessarie, in aggiunta, le azioni seguenti.

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

Si può testare la configurazione dell'indirizzo di posta nel modo seguente.

  • per exim(8) con le opzioni -brw, -bf, -bF, -bV, …

  • per postmap(1) con l'opzione -q.

[Suggerimento] Suggerimento

Exim viene fornito con svariati programmi di utilità, come exiqgrep(8) e exipick(8). Per conoscere i comandi disponibili vedere "dpkg -L exim4-base|grep man8/".

SSH (Secure SHell) è il metodo sicuro per connettersi in Internet. Una versione libera di SSH chiamata OpenSSH è disponibile nei pacchetti Debian openssh-client e openssh-server.

Per l'utente ssh(1) funziona come un telnet(1) più intelligente e più sicuro. A differenza del comando telnet, ssh non si interrompe a seguito del carattere di escape di telnet (impostazione predefinita iniziale CTRL-]).


Although shellinabox is not a SSH program, it is listed here as an interesting alternative for the remote terminal access.

See also Sezione 7.8, «X server connection» for connecting to remote X client programs.

[Attenzione] Attenzione

Se il proprio SSH è accessibile da Internet, vedere Sezione 4.6.3, «Misure aggiuntive di sicurezza per Internet».

[Suggerimento] Suggerimento

Per permettere al processo della shell remota di sopravvivere all'interruzione della connessione, usare il programma screen(1) (vedere Sezione 9.1.2, «Il programma screen»).

The OpenSSH SSH daemon supports SSH protocol 2 only.

Please read "/usr/share/doc/openssh-client/README.Debian.gz", ssh(1), sshd(8), ssh-agent(1), and ssh-keygen(1), ssh-add(1) and ssh-agent(1).

[Avvertimento] Avvertimento

Se si desidera eseguire il server OpenSSH, non deve esistere il file "/etc/ssh/sshd_not_to_be_run".

Don't enable rhost based authentication (HostbasedAuthentication in /etc/ssh/sshd_config).


I comandi seguenti avviano una connessione ssh(1) da un client.


È necessario proteggere il processo che esegue "shutdown -h now" (vedere Sezione 1.1.8, «Come spegnere il sistema») dalla terminazione di SSH usando il comando at(1) (vedere Sezione 9.4.13, «Pianificare compiti da eseguire una volta sola») nel modo seguente.

# echo "shutdown -h now" | at now

Eseguire "shutdown -h now" in una sessione screen(1) (vedere Sezione 9.1.2, «Il programma screen») è un altro modo di ottenere lo stesso risultato.

In the old Unix-like system, the BSD Line printer daemon (lpd) was the standard and the standard print out format of the classic free software was PostScript (PS). Some filter system was used along with Ghostscript to enable printing to the non-PostScript printer. See Sezione 11.4.1, «Ghostscript».

In the modern Debian system, the Common UNIX Printing System (CUPS) is the de facto standard and the standard print out format of the modern free software is Portable Document Format (PDF).

The CUPS uses Internet Printing Protocol (IPP). The IPP is now supported by other OSs such as Windows XP and Mac OS X and has became new cross-platform de facto standard for remote printing with bi-directional communication capability.

Grazie alla funzionalità di auto-conversione in base al formato dei file del sistema CUPS, il semplice passaggio di qualsiasi tipo di dati al comando lpr dovrebbe generare l'output di stampa atteso. (In CUPS, il comando lpr può essere abilitato installando il pacchetto cups-bsd.)

Il sistema Debian ha alcuni pacchetti degni di nota per ciò che riguarda i server e le utilità di stampa


[Suggerimento] Suggerimento

Si può configurare il sistema CUPS indirizzando il proprio browser web all'indirizzo "http://localhost:631/".

Ecco un elenco di altri server applicativi di rete.


CIFS (Common Internet File System Protocol) è lo stesso protocollo di SMB (Server Message Block) ed è ampiamente usato da Microsoft Windows.

[Suggerimento] Suggerimento

Vedere Sezione 4.5.2, «La moderna gestione centralizzata del sistema» per l'integrazione di sistemi server.

[Suggerimento] Suggerimento

La risoluzione del nome di host è solitamente fornita dal server DNS. Per l'indirizzo IP dell'host assegnato dinamicamente da DHCP, può essere impostato un DNS dinamico per la risoluzione del nome host, usando bind9 e isc-dhcp-server come descritto nella pagina del Wiki Debian sui DDNS.

[Suggerimento] Suggerimento

L'uso di server proxy come squid è molti più efficiente per risparmiare banda rispetto all'uso di server mirror locali con il completo contenuto dell'archivio Debian.

Ecco un elenco di altri client applicativi di rete.


Il programma telnet permette la connessione manuale ai demoni di sistema e la loro diagnosi.

Per testare il semplice servizio POP3 provare il comando seguente.

$ telnet mail.ispname.net pop3

Per testare il servizio POP3 con TLS/SSL abilitato di alcuni fornitori di servizi Internet, è necessario un client telnet con TLS/SSL abilitato fornito dal pacchdetto telnet-ssl o openssl.

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

Le seguenti RFC forniscono le conoscenze necessarie per ciascun demone di sistema.


L'uso delle porte è descritto in "/etc/services".