Kapitel 6. Nätverkstillämpningar

Innehållsförteckning

6.1. Webbläsare
6.1.1. Förfalskning av User-Agent-strängen
6.1.2. Tillägg till webbläsare
6.2. E-postsystemet
6.2.1. Grunderna i e-post
6.2.2. Begränsning av modern postservice
6.2.3. Historisk förväntan på postservice
6.2.4. Transportagent för post (MTA)
6.2.4.1. Konfigurationen av exim4
6.2.4.2. Konfiguration av postfix med SASL
6.2.4.3. Konfiguration av e-postadresser
6.2.4.4. Grundläggande MTA-verksamhet
6.3. Server och verktyg för fjärråtkomst (SSH)
6.3.1. Grunderna i SSH
6.3.2. Användarnamn på fjärrvärden
6.3.3. Anslutning utan fjärrlösenord
6.3.4. Hantering av främmande SSH-klienter
6.3.5. Konfigurera ssh-agent
6.3.6. Skicka ett e-postmeddelande från en fjärrvärd
6.3.7. Portvidarebefordran för SMTP/POP3-tunnel
6.3.8. Hur man stänger av fjärrsystemet på SSH
6.3.9. Felsökning av SSH
6.4. Skrivarserver och verktyg
6.5. Andra nätverksapplikationsservrar
6.6. Andra klienter för nätverksapplikationer
6.7. Diagnos av systemets daemons

När du har upprättat en nätverksanslutning (se Kapitel 5, Nätverkskonfiguration) kan du köra olika nätverksprogram.

[Tips] Tips

För en modern Debian-specifik guide till nätverksinfrastrukturen, läs The Debian Administrator's Handbook - Network Infrastructure.

[Tips] Tips

Om du har aktiverat "2-stegsverifiering" hos någon Internetleverantör måste du skaffa ett programlösenord för att få tillgång till POP- och SMTP-tjänster från ditt program. Du kan behöva godkänna din värd-IP i förväg.

Det finns många webbläsarpaket för att komma åt fjärrinnehåll med Hypertext Transfer Protocol (HTTP).


Detta avsnitt fokuserar på typiska mobila arbetsstationer med Internetanslutningar av konsumentkvalitet.

[Observera] Observera

Om du ska konfigurera e-postservern så att den kan utbyta e-post direkt med Internet, bör du läsa detta elementära dokument.

Ett e-postmeddelande består av tre komponenter: kuvertet, meddelandehuvudet och meddelandetexten.

  • Informationen "To" och "From" i meddelandekuvertet används av SMTP för att leverera e-postmeddelandet. (Informationen "From" i meddelandekuvertet kallas även avvisningsadress, From_, etc.).

  • Informationen "Till" och "Från" i meddelanderubriken visas av e-postklienten. (Det är vanligast att dessa är desamma som i meddelandekuvertet, men så är inte alltid fallet)

  • E-postmeddelandets format, som omfattar rubrik- och brödtextdata, utökas med MIME (Multipurpose Internet Mail Extensions) från vanlig ASCII-text till andra teckenkodningar, samt bilagor med ljud, video, bilder och applikationsprogram.

GUI-baserade e-postklienter med full funktionalitet erbjuder alla följande funktioner med hjälp av GUI-baserad intuitiv konfiguration.

  • Den skapar och tolkar meddelandets rubrik- och brödtextdata med hjälp av MIME (Multipurpose Internet Mail Extensions) för att hantera innehållets datatyp och kodning.

  • Den autentiserar sig mot ISP:s SMTP- och IMAP-servrar med hjälp av äldre grundläggande åtkomstautentisering eller modern OAuth 2.0. (För OAuth 2.0 ställer du in det via inställningarna för skrivbordsmiljön. T.ex. "Inställningar" -> "Onlinekonton")

  • Den skickar meddelandet till ISP:s smarthost SMTP-server som lyssnar på porten för meddelandeinlämning (587).

  • Den tar emot det lagrade meddelandet på ISP:s server från TLS/IMAP4-porten (993).

  • Det kan filtrera e-postmeddelanden efter deras attribut.

  • Det kan erbjuda ytterligare funktioner: Kontakter, Kalender, Uppgifter, Memon.


Debians mobila arbetsstationer kan konfigureras med GUI-baserade e-postklienter med fullständiga funktioner utan MTA-program (Mail Transfer Agent) efter Debian 12 Bookworm.

Debian installerade traditionellt något MTA-program för att stödja program som förväntar sig kommandot /usr/sbin/sendmail. Sådana MTA på mobila arbetsstationer måste klara av Avsnitt 6.2.2, ”Begränsning av modern postservice” och Avsnitt 6.2.3, ”Historisk förväntan på postservice”.

För mobila arbetsstationer är det typiska valet av MTA antingen exim4-daemon-light eller postfix med installationsalternativet "Mail sent by smarthost; received via SMTP or fetchmail" valt. Dessa är lätta MTA:er som respekterar "/etc/aliases".

[Tips] Tips

Att konfigurera exim4 för att skicka e-post via Internet via flera motsvarande smarthosts för flera e-postadresser är inte trivialt. Om du behöver en sådan funktion för vissa program kan du ställa in dem så att de använder msmtp, som är enkelt att ställa in för flera e-postadresser. Lämna sedan huvud-MTA endast för en enda e-postadress.


För Internet-post via smarthost (om)konfigurerar du exim4-*-paketen enligt följande.

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

Välj "mail skickas av smarthost; tas emot via SMTP eller fetchmail" för "Allmän typ av e-postkonfiguration".

Ställ in "System mail name:" på standardvärdet för FQDN (se Avsnitt 5.1.1, ”Upplösning av värdnamn”).

Ställ in "IP-adresser att lyssna på för inkommande SMTP-anslutningar:" till standardvärdet "127.0.0.1 ; ::1".

Innehållet i "Andra destinationer för vilka post accepteras:" har inte angetts.

Ej fastställt innehåll i "Maskiner att vidarebefordra e-post till:".

Ställ in "IP-adress eller värdnamn för utgående smarthost:" till "smtp.hostname.dom:587".

Välj "No" för "Hide local mail name in outgoing mail?". (Använd "/etc/email-addresses" som i Avsnitt 6.2.4.3, ”Konfiguration av e-postadresser”, istället)

Svara på "Håll antalet DNS-förfrågningar minimalt (Dial-on-Demand)?" med något av följande.

  • "Nej" om systemet är anslutet till Internet under uppstart.

  • "Yes" om systemet inte är anslutet till Internet när det startas.

Ställ in "Leveransmetod för lokal e-post:" till "mbox-format i /var/mail/".

Välj "Yes" för "Split configuration into small files?:".

Skapa lösenordsinmatningar för smarthost genom att redigera "/etc/exim4/passwd.client".

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

Konfigurera exim4(8) med "QUEUERUNNER='queueonly'", "QUEUERUNNER='nodaemon'", etc. i "/etc/default/exim4" för att minimera användningen av systemresurser. (valfritt)

Starta exim4 på följande sätt.

$ sudo systemctl start exim4

Värdnamnet i "/etc/exim4/passwd.client" ska inte vara aliaset. Du kontrollerar det riktiga värdnamnet med följande.

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

Jag använder regex i "/etc/exim4/passwd.client" för att komma runt aliasproblemet. SMTP AUTH fungerar förmodligen även om ISP:n flyttar värden som pekas ut av aliaset.

Du kan uppdatera exim4-konfigurationen manuellt på följande sätt:

  • Uppdatera exim4-konfigurationsfilerna i "/etc/exim4/".

    • skapa "/etc/exim4/exim4.conf.localmacros" för att ställa in MACROs och redigera "/etc/exim4/exim4.conf.template". (icke-splitad konfiguration)

    • skapa nya filer eller redigera befintliga filer i underkatalogerna "/etc/exim4/exim4.conf.d". (delad konfiguration)

  • Kör "systemctl reload exim4".

[Observera] Observera

Det tar lång tid att starta exim4 om "No" (standardvärde) valdes för debconf-frågan "Keep number of DNSqueries minimal (Dial-on-Demand)?" och systemet inte är anslutet till Internet under uppstarten.

Vänligen läs den officiella guiden på: "/usr/share/doc/exim4-base/README.Debian.gz" och update-exim4.conf(8).

[Varning] Varning

Av praktiska skäl bör du använda SMTP med STARTTLS på port 587 eller SMTPS (SMTP over SSL) på port 465 i stället för vanlig SMTP på port 25.

För internetpost via smarthost bör du först läsa postfix-dokumentationen och viktiga manualer.


Du (om)konfigurerar postfix- och sasl2-bin-paketen enligt följande.

$ sudo systemctl stop postfix
$ sudo dpkg-reconfigure postfix

Välj "Internet med smarthost".

Ställ in "SMTP relay host (blank for none):" till "[smtp.hostname.dom]:587" och konfigurera den enligt följande.

$ 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

Skapa lösenordsinmatningar för smarthost.

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

Starta postfixet genom att göra följande.

$ sudo systemctl start postfix

Här säkerställer användningen av "[" och "]" i dialogrutan dpkg-reconfigure och "/etc/postfix/sasl_passwd" att MX-poster inte kontrolleras utan att det exakta angivna värdnamnet används direkt. Se "Aktivering av SASL-autentisering i Postfix SMTP-klient" i "/usr/share/doc/postfix/html/SASL_README.html".

Det finns några konfigurationsfiler för postadresser för posttransport, leverans och användaragenter.


E-postnamnet i filen "/etc/mailname" är vanligtvis ett fullständigt kvalificerat domännamn (FQDN) som kan härledas till en av värdens IP-adresser. För den mobila arbetsstationen som inte har ett värdnamn med en IP-adress som går att koppla till, ställer du in det här e-postnamnet till värdet i "hostname-f". (Detta är ett säkert val och fungerar för både exim4-* och postfix)

[Tips] Tips

Innehållet i "/etc/mailname" används av många icke-MTA-program för deras standardbeteende. För mutt, ställ in variablerna "hostname" och "from" i filen ~/muttrc för att åsidosätta mailname-värdet. För program i devscripts-paketet, till exempel bts(1) och dch(1), exportera miljövariablerna "$DEBFULLNAME" och "$DEBEMAIL" för att åsidosätta det.

[Tips] Tips

Paketet popularity-contest skickar normalt e-post från rotkontot med FQDN. Du måste ställa in MAILFROM i /etc/popularity-contest.conf enligt beskrivningen i filen /usr/share/popularity-contest/default.conf. Annars kommer din e-post att avvisas av SMTP-servern hos smarthost. Även om det här är tråkigt är det här tillvägagångssättet säkrare än att skriva om källadressen för alla e-postmeddelanden från root av MTA och bör användas för andra daemoner och cron-skript.

När du ställer in e-postnamnet till "hostname -f" kan förfalskningen av källpostadressen via MTA realiseras på följande sätt.

  • filen "/etc/email-addresses" för exim4(8) enligt förklaring i exim4-config_files(5)

  • "/etc/postfix/generic" fil för postfix(1) enligt förklaring i generic(5)

För postfix krävs följande extra steg.

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

Du kan testa konfigurationen av e-postadresser på följande sätt.

  • exim(8) med alternativen -brw, -bf, -bF, -bV, ..

  • postmap(1) med alternativet -q.

[Tips] Tips

Exim levereras med flera verktygsprogram, t.ex. exiqgrep(8) och exipick(8). Se "dpkg -L exim4-base|grep man8/" för tillgängliga kommandon.

Secure SHell (SSH) är ett säkert sätt att ansluta via Internet. En gratisversion av SSH som heter OpenSSH finns som paketen openssh-client och openssh-server i Debian.

För användaren fungerar ssh(1) som ett smartare och säkrare telnet(1). Till skillnad från telnet-kommandot stoppas inte ssh-kommandot av telnets escape-tecken (standardinställning CTRL-]).


Även om shellinabox inte är ett SSH-program, listas det här som ett intressant alternativ för fjärråtkomst till terminaler.

Se även Avsnitt 7.9, ”Anslutning till X-server” för anslutning till fjärrstyrda X-klientprogram.

[Observera] Observera

Se Avsnitt 4.6.3, ”Extra säkerhetsåtgärder för Internet” om din SSH är tillgänglig från Internet.

[Tips] Tips

Använd programmet screen(1) för att göra det möjligt för fjärrskalprocessen att överleva den avbrutna anslutningen (se Avsnitt 9.1.2, ”Skärmprogrammet”).

Du måste skydda processen som gör "shutdown -h now" (se Avsnitt 1.1.8, ”Så här stänger du av systemet”) från avslutningen av SSH med kommandot at(1) (se Avsnitt 9.4.13, ”Schemaläggning av uppgifter en gång”) på följande sätt.

# echo "shutdown -h now" | at now

Att köra "shutdown -h now" i en screen(1)-session (se Avsnitt 9.1.2, ”Skärmprogrammet”) är ett annat sätt att göra samma sak.

I det gamla Unix-liknande systemet var BSD Line printer daemon (lpd) standard och standardutskriftsformatet för den klassiska fria programvaran var PostScript (PS). Något filtersystem användes tillsammans med Ghostscript för att möjliggöra utskrift till en icke-PostScript-skrivare. Se Avsnitt 11.4.1, ”Ghostscript”.

I det moderna Debian-systemet är CUPS ( Common UNIX Printing System ) de facto-standard och standardutskriftsformatet för modern fri programvara är PDF (Portable Document Format).

CUPS använder IPP ( Internet Printing Protocol ). IPP stöds nu av andra operativsystem som Windows XP och Mac OS X och har blivit en ny plattformsoberoende de facto-standard för fjärrutskrift med möjlighet till dubbelriktad kommunikation.

Tack vare den automatiska konverteringen av filformat i CUPS-systemet kan du helt enkelt mata in data i lpr-kommandot och få fram den förväntade utskriften. (I CUPS kan lpr aktiveras genom att installera paketet cups-bsd )

Debian-systemet har några anmärkningsvärda paket för skrivarservrar och verktyg.


[Tips] Tips

Du kan konfigurera CUPS-systemet genom att rikta din webbläsare mot"http://localhost:631/".

Här finns andra nätverksapplikationsservrar.


Common Internet File System Protocol (CIFS) är samma protokoll som Server Message Block (SMB) och används i stor utsträckning av Microsoft Windows.

[Tips] Tips

Se Avsnitt 4.5.2, ”Den moderna centraliserade systemhanteringen” för integration av serversystem.

[Tips] Tips

Värdnamnsupplösningen tillhandahålls vanligtvis av DNS-servern. För värd-IP-adressen som dynamiskt tilldelas av DHCP kan dynamisk DNS konfigureras för värdnamnsupplösning med bind9 och isc-dhcp-server enligt beskrivningen på DDNS-sidan på Debian-wikin.

[Tips] Tips

Att använda en proxyserver som squid är mycket effektivare för att spara bandbredd än att använda en lokal spegelserver med hela Debian-arkivets innehåll.

Här finns andra klienter för nätverksapplikationer.


Programmet telnet möjliggör manuell anslutning till systemets daemons och dess diagnos.

Om du vill testa en vanlig POP3-tjänst kan du prova följande

$ telnet mail.ispname.net pop3

För att testa den TLS/SSL-aktiverade POP3-tjänsten hos vissa Internetleverantörer behöver du en TLS/SSL-aktiverad telnet-klient med paketen telnet-ssl eller openssl.

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

Följande RFC: er ger nödvändig kunskap för varje systemdaemon.


Portanvändningen beskrivs i "/etc/services".