Ubuntu 18.04

Installer apache på ubuntu topp 10.Topp 10 Bionic Beaver Linux

Installer apache på ubuntu topp 10.Topp 10 Bionic Beaver Linux

Objektiv

Lær hvordan installer apache på Ubuntu 18.04, hvordan konfigurere virtuelle verter, konfigurer brannmuren og bruk SSL -sertifikater for en sikker tilkobling

Krav

Konvensjoner

Introduksjon

Apache -webserveren trenger ikke store presentasjoner: open source -programvare, utgitt av Apache Foundation, er en av de mest brukte webserverne i verden. I denne opplæringen vil vi se hvordan du installerer den, justerer brannmurkonfigurasjonen for å tillate HTTP- og HTTPS -trafikk, og oppsett virtuelle verter på Ubuntu 18.04.

Installasjon

Installere Apache -webserveren på Ubuntu 18.04 Bionic Beaver er en virkelig grei prosess:

$ sudo apt-get update && apt-get installer apache2

Ubuntu installasjonsskript vil ta seg av å starte og aktivere Apache2 service på oppstart.

Brannmuroppsett

For å få tilgang til standardinnholdet som serveres av Apache, på samme maskin som serveren kjører på, må vi bare skyte opp en nettleser og navigere til lokal vert I adressefeltet. Hvis alt er konfigurert riktig, bør en side ønske oss velkommen med “Det fungerer!" beskjed:

Apache velkomstside

Hvis en brannmur er aktivert på systemet vårt (som det skal), for å gjøre innholdet tilgjengelig utenfra maskinen vår, må vi tillate innkommende trafikk på havnen 80. Kommandoen om å kjøre avhenger av brannmurlederen som er i bruk. For eksempel når du bruker ufw (Ubuntus standard), må vi kjøre:

$ sudo ufw tillater http

Tilsvarende, hvis du bruker Firewalld, Vi kan løpe:

$ SUDO FIREWALL-CMD-PERMANENT-ADD-SERVICE = HTTP && FIREWALL-CMD-RELOAD

Legg merke til at kommandoen ovenfor vil ha sin innvirkning på standard Firewalld Zone. Hvis vi vil operere på en annen, må vi spesifisere det med --sone alternativ.



Konfigurere en virtuell vert

Apache -webserveren har muligheten til å kjøre mer enn ett nettsted på samme maskin. Hvert nettsted (en virtuell vert i Apache -terminologien) som bør serveres, må ha sin egen konfigurasjon. En virtuell vert kan være IP eller navngitt basert.

I denne opplæringen vil vi fokusere på den andre typen, siden det er lettere å konfigurere og ikke krever flere IP-adresser (navnebaserte virtuelle verter lar mange nettsteder dele den samme adressen).

Standard virtuell vert

På Ubuntu er standard virtuell vert definert i /etc/apache2/nettsteder tilgjengelig katalog, inne i 000-default.konf fil. La oss se på det:

 [.. .] Serveradmin webmaster@localhost documentroot/var/www/html [.. .] Errorlog $ apache_log_dir/feil.Logg CustomLog $ apache_log_dir/tilgang.logg kombinert [.. .]  
Kopiere

De Direktiv på linje 1 brukes til å gruppere innstillingene som brukes av Apache for en bestemt virtuell vert. Det første vi så definert i den, er *: 80 instruksjon. Dette indikerer IP -adressen og porten som brukes av den virtuelle verten.

Flere virtuelle verter kan defineres i samme fil eller ved å følge "One Virtual Host Definition Per File". I begge tilfeller anses den første definisjonen for å være standard, hvis ingen annen virtuell vert samsvarer med klientforespørselen.

De ServerAdmin Direktiv på linje 3 er valgfritt, og det brukes til å spesifisere kontaktadressen som webserveren vil vise i tilfelle feilmeldinger. Normalt ønsker vi å oppgi en gyldig e -postadresse som argument for dette direktivet, siden webserveren vil bruke Mailto: på det, for å gjøre kontakt for administratoren enklere.

Documentroot På linje 4 er obligatorisk og det er viktig for den virtuelle vertskonfigurasjonen. Argumentet til denne instruksjonen må være en gyldig filsystemsti. Katalogen som er gitt vil bli betraktet som rotkatalogen til den virtuelle verten, og må ikke inneholde en etterfølgende '/'. I dette tilfellet er dokumentrotkatalogen det /var/www/html. Hvis vi tar en titt på innholdet, ser vi at det inneholder indeks.html Side brukt som serverens velkomstside vi så før.

De to siste instruksjonene på linje 8 - 9 ga i denne virtualhost er Feil logg og Customlog. Ved å bruke den første, angir vi filen som serveren vil logge opp forekommende feil. Det andre brukes i stedet til å logge forespørslene som er sendt til serveren i det spesifiserte formatet (du kan bruke dette som en referanse for en grundig kunnskap om loggformater).



Lag en ny virtuell vert

Vi så hvordan standard virtualhost er definert; Anta nå at vi ønsker å tjene et annet nettsted ved hjelp av vår webserver: vi må definere en ny virtuell vert for å kunne oppnå målet vårt.

Som sagt ovenfor, må virtuelle vertsfiler defineres i /etc/apache2/nettsteder tilgjengelig Katalog (i det minste i Debian-baserte distribusjoner): Derfor oppretter vi filen vår der. Før vi gjør det, ønsker vi å lage katalogen som skal brukes som vår Dokumentrot, og opprette en grunnleggende side som skal vises når vi kommer til nettstedet:

$ sudo mkdir/var/www/eksempel && ekko "Velkommen til eksempel!">/var/www/eksempel/indeks.html 

Vi kan nå fortsette med å konfigurere vår virtuelle vert:

 Documentroot/var/www/eksempel servernavn www.eksempel.lokal 

Dette er den minimale konfigurasjonen som trengs for å kjøre en virtuell vert. Her kan vi se et nytt direktiv, Server navn: Dette er det som definerer vår virtuelle vert. La oss lagre denne filen som eksempel.konf. For å aktivere vår virtualhost bruker vi a2ensite Kommando: All denne kommandoen gjør er å opprette en symlink av filen i /etc/Apache2/Sites-aktivert Katalog:

$ sudo a2ensite eksempel.konf

Etter det må vi laste inn serverkonfigurasjonen på nytt:

$ sudo SystemCTL Reload Apache2.service

Vi definerte vår virtualhost, men siden dette er en test og vi ikke har en DNS -oppføring tilknyttet det, for å bekrefte at konfigurasjonen fungerer, må vi legge til en oppføring i /etc/verter filen til maskinen vi prøver å nå nettstedet fra.

$ sudo ekko "192.168.122.241 www.eksempel.Lokal ">> /etc /verter

Uten denne linjen ville (og uten en DNS -oppføring) være umulig å knytte adressen til serveren til navnet på VirtualHost, og å bruke serveren IP direkte, ville i stedet "utløse" den standard virtuelle verten.

Fra klientmaskinen, hvis vi nå navigerer til “www.eksempel.Lokal ”Vi bør se den minimale siden vi konfigurerer ovenfor:

Eksempel VirtualHost Index

Sette opp SSL

SSL, forkortelse for Sikre stikkontakter Det er teknologien som lar oss kryptere dataene som er involvert i forbindelsen mellom klienten og serveren. Når SSL -sertifikater brukes, https (Hyper Text Transfer Protocol Secure) erstatter HTTP i URL -en.

SSL -sertifikater utstedes av en sertifikatmyndighet, som som en tillitsfull tredjepart forsikrer at noen virkelig er som hevder å være på internett. SSL -sertifikater kan være veldig dyre, men det er to hovedalternativer for å få et sertifikat: Opprett et selvsignert sertifikat eller få en fra La oss kryptere.

Generere et selvsignert SSL-sertifikat

Selv om det å generere et selvsignert sertifikat er det ikke en vanskelig oppgave og kan være nyttig når du bare vil oppnå kryptering, er det ikke brukbart i sammenhenger der sertifikatet i seg selv må signeres av en pålitelig tredjepart. Vi kan generere et selvsignert sertifikat ved å bruke OpenSSL nytte:

$ sudo OpenSSL Req -X509 \ -Days 365 \ -Sha256 \ -NewKey RSA: 2048 \ -nodes \ -Keyout Eksempel.Key \ -out Eksempel -cert.Pem 

La oss se hva denne kommandoen gjør. Det første alternativet vi møter, -x509, Endrer oppførselen til kommandoen slik at den genererer et selvsignert sertifikat i stedet for en sertifikatforespørsel.

Med -dager, Vi setter gyldigheten, i dager, for sertifikatet. Neste alternativet er alternativ -NewKey: med det oppretter vi en ny nøkkel, i dette tilfellet en RSA nøkkel, med størrelsen på 2048 biter. For vår testsak ønsker vi ikke å kryptere den private nøkkelfilen, så vi brukte -noder. Hvis dette alternativet er utelatt, vil filen som nøkkelen er lagret, beskyttes av et passord, som vi blir bedt om å sette inn hver gang webserveren startes på nytt.

Med -Keyout og -ute Vi spesifiserer filen for å skrive henholdsvis den genererte tasten og sertifikatet. Når vi starter kommandoen, blir vi bedt om å svare på noen spørsmål, og deretter vil nøkkelen og sertifikatet bli generert.

Du er i ferd med å bli bedt om å legge inn informasjon som vil bli integrert i sertifikatforespørselen din. Det du skal inn i er det som kalles et utmerket navn eller en DN. Det er ganske mange felt, men du kan legge igjen noen tomme for noen felt, det vil være en standardverdi, hvis du skriver inn '.', vil feltet bli tomt. ----- Landsnavn (2 bokstavkode) [AU]: It State eller Province Name (Full Name) [Some-State]: Lokalitetsnavn (f.eks. City) []: Milanorganisasjonsnavn (f.eks. Company) [Internet Widgits Pty Ltd] : Skade inkl. Organisasjonsenhetsnavn (f.eks. Seksjon) []: Vanlig navn (e.g. server fqdn eller navnet ditt) []: www.eksempel.Lokal e -postadresse []: 

Neste trinn er å kopiere vår genererte nøkkel og sertifikat i /etc/ssl/privat og /etc/ssl/ssl-certs Kataloger: henholdsvis:

$ sudo mv eksempel-cert.pem/etc/ssl/certs

Sertifikatet er offentlig, så trenger ingen spesiell tillatelse. Nå, nøkkelen:

$ sudo mv eksempel.nøkkel/etc/ssl/privat

Det er viktig at vi justerer nøkkelfiltillatelsene. Hvis vi undersøker /etc/ssl/privat mappe, vi kan se at den tilhører rot bruker og SSL-CERT gruppe, og det har 710 Som tillatelser, noe som betyr at selv om eieren har fulle privilegier på den, kan gruppeeieren bare få tilgang til det og liste opp innholdet, og ingen tillatelse er tillatt for andre:

$ ls -ld/etc/ssl/privat drwx-x --- 2 root ssl-cert 4096 mars 16 11:57/etc/ssl/privat 

La oss endre nøkkelfiltillatelser deretter, og gi eieren lese og skrive tillatelser, og skrivebeskyttede privilegier for gruppen:

$ sudo chown root: ssl-cert/etc/ssl/privat/eksempel.Key $ sudo chmod 640/etc/ssl/privat/eksempel.nøkkel 

For å bruke sertifikatet vårt, må vi nå aktivere SSL Apache -modulen. Vi gjør det ved å bruke a2enmod kommando:

$ sudo a2enmod ssl

Vi er nesten der. Nå er det på tide å endre vår virtuelle vert og sette den på denne måten:

 Documentroot/var/www/eksempel servernavn www.eksempel.Lokal # Aktiver SSL-motor SSLengine på SSLCertificateFile/etc/SSL/Certs/Eksempel-cert.PEM SSLCertificateKeyFile/etc/SSL/Privat/Eksempel.nøkkel 
Kopiere

Havnen 443 På linje 1 er porten brukt til HTTPS (i stedet for port 80 brukt til HTTP). Vi la også til Sslengine på instruksjon på linje 6, som er ganske selvforklarende.

Endelig på linje 8 - 9 har vi spesifisert banene for vårt sertifikat og nøkkelfiler, ved hjelp av SSLCertificateFile og SSLCertificateKeyFile bruksanvisning.

Følg nå instruksjonene for å åpne brannmurporter som ble brukt i begynnelsen av opplæringen, men denne gangen for å tillate https service:

$ sudo ufw tillater https

Til slutt, last inn Apache -konfigurasjon:

$ sudo SystemCTL Reload Apache2

Ferdig. Nå, hvis fra klienten, navigerer vi til https: // www.eksempel.lokal Adresse, vi bør se webserveren varsle oss om at det brukte sertifikatet ikke er sikkert (siden det er selvtillitet). Dette er, men skiltet vårt oppsett fungerer og trafikken mellom klienten og serveren vil bli kryptert (du må legge til et unntak for at sertifikatet skal bruke det).

SSL nettleservarsel

Sette opp la oss kryptere

Alternativet til kommersielle og selvsignerte sertifikater det er representert av “Let’s Encrypt”. La oss kryptere er en gratis, automatisert og åpen sertifikatmyndighet; Målet er å gjøre mulig å automatisk skaffe et sertifikat som er klarert av nettleseren uten menneskelig innblanding.

Dette kan oppnås ved bruk av Acme protokoll og a Certificate Management Agent som kjører på serveren.

For å få et sertifikat må vi demonstrere at vi har kontroll over domenet vi ønsker å bruke sertifikatet til. Hvis vi ikke har skalltilgang på serveren, bør vi kontakte tjenesteleverandøren vår for å aktivere Let's Krypt på våre vegne, men sannsynligvis er det en dedikert seksjon i servicekonfigurasjonspanelet.

Hvis vi i stedet har skalltilgang til den aktuelle serveren, må vi først installere certbot ACME -klient. Installere certbot på Ubuntu 18.04 Det er bare spørsmål om å løpe:

$ sudo apt-get update && apt-get install certbot python-certbot-apache

Certbot -pakken kommer med en Systemd Timer Enhet som kjører Certbot to ganger om dagen for å holde sertifikatet oppdatert. Å skaffe et sertifikat er ganske enkelt:

$ sudo certbot --apache -m -d 

Åpenbart for at dette skal fungere, må domenet peke riktig på vår offentlig tilgjengelige server -IP. CertBot vil be deg om noen spørsmål om å finpusse konfigurasjonen, og hvis alt går bra, bør sertifikatet og nøkkelen lagres i /etc/letsencrypt/live/ katalog. Bare finjuster din virtuelle vertsfil for å peke på dem, og du er ferdig!

Linuxcareers.com - Linux jobbportal
Utvalgte Linux Jobs Floss Technical Writer Vi leter etter en teknisk forfatter (e) rettet mot GNU/Linux og Floss Technologies. Artiklene dine vil......
Hvordan våkne på LAN støttet vert over nettverket ved hjelp av Linux
Hvordan våkne på LAN støttet vert over nettverket ved hjelp av Linux...
Bruk OpenCV for å skille RGB -bilde i rødgrønne og blå komponenter
Dette lille OpenCV -programmet demonstrerer hvordan du kan skille RGB -bilde i R-, G- og B -komponenter. Programmet er skrevet i programmering av lavt...