Trinn 1 - Installere webserveren
Trinn 2 - Sikre hjemmekatalogene dine
Trinn 3 - Bruk en sikkerhetsoppdatering på Apache for separasjon av brukerrettigheter
Trinn 3 - Opprett din første virtuelle vert
Trinn 4 - Konfigurere Apache til å kjøre som en annen bruker
Trinn 5 - Skjuler Apaches versjon
Trinn 6 - Start Apache på nytt for å bruke endringene
Konklusjon
Det er enkelt å ta snarveier når du sikrer en server, men du vil risikere tap av data i tilfelle en angriper får root-tilgang til noen av serverne dine. Selv for enkle installasjoner må du sikre serveren din på forhånd. Sikring av servere er et bredt emne, og varierer avhengig av operativsystemet og applikasjonene som kjøres på dem.
Denne opplæringen fokuserer på å sikre Apache under CentOS 6. Det er noen få trinn etter installasjonen du kan ta for å beskytte deg mot privilegieeskalering, så vel som underprivilegerte angrep.
Uten videre, la oss komme i gang.
Trinn 1 - Installere webserveren
Selvfølgelig, hvis du ikke har Apache eller PHP installert, bør du gjøre det nå. Utfør denne kommandoen som root-bruker, eller bruk sudo:
yum install httpd php
Trinn 2 - Sikre hjemmekatalogene dine
Nå som Apache er installert, la oss gå videre og begynne å sikre den. For det første vil vi sørge for at andre brukeres kataloger ikke er synlige for noen bortsett fra eieren. Vi vil endre alle hjemmekataloger til 700, slik at bare de respektive eierne av hjemmekatalogene kan se sine egne filer. Kjør denne kommandoen som root, eller bruk sudo:
chmod 700 /home
chmod 700 /home/*
chmod 700 /home/*/*
Ved å bruke jokertegn dekker vi alle filene som for øyeblikket ligger i hjemmekatalogen.
Trinn 3 - Bruk en sikkerhetsoppdatering på Apache for separasjon av brukerrettigheter
Før vi patcher Apache, må vi først installere depotet som inneholder pakken med patchen. Kjør følgende kommandoer som root (eller sudo).
yum install epel-release
yum install httpd-itk
Med "apache2-mpm-itk" kan vi fortelle hvilken bruker PHP skal kjøres som basert på den virtuelle verten. Den legger til et nytt konfigurasjonsalternativ AssignUserId virtualhost-user virtualhost-user-group, som lar oss fortelle Apache/PHP å kjøre brukerkode under en spesifikk brukerkonto.
Hvis du deler denne serveren, antar jeg at du allerede har opprettet en virtuell vert for Apache før. I så fall kan du hoppe til trinn 4.
Trinn 3 - Opprett din første virtuelle vert
Du kan følge malen nedenfor for å opprette en virtuell vert i Apache.
NameVirtualHost mytest.website
<VirtualHost mytest.website>
DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
</VirtualHost>
Åpne favoritttekstredigeringsprogrammet, /etc/httpd/conf.d/example-virtualhost.confog legg deretter innholdet ovenfor inn i det. Her er kommandoen for bruk av nano:
nano /etc/httpd/conf.d/example-virtualhost.conf
La meg forklare konfigurasjonen her. Når vi spesifiserer "NameVirtualHost", forteller vi faktisk webserveren at vi er vert for flere domener på én IP . Nå, i dette eksemplet, brukte jeg mytest.websitesom et eksempeldomene. Endre det til ditt, eller et domene du ønsker. DocumentRooter det som forteller Apache hvor innholdet er plassert. ServerNameer et direktiv vi bruker for å fortelle Apache nettstedets domene. Og en siste kode, </VirtualHost>, som forteller Apache at det er slutten på den virtuelle vertskonfigurasjonen.
Trinn 4 - Konfigurere Apache til å kjøre som en annen bruker
Som nevnt tidligere inkluderer en del av sikringen av serveren din å kjøre Apache/PHP som en separat bruker for hver virtuelle vert. Å fortelle Apache å gjøre dette er enkelt etter at vi har brukt oppdateringen - alt du trenger å gjøre er å legge til:
AssignUserId vhost-user vhost-user-group
... til din konfigurasjon. Slik vil den virtuelle verten se ut etter at vi har lagt til dette alternativet:
NameVirtualHost mytest.website
<VirtualHost mytest.website>
DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
AssignUserId vhost-user vhost-user-group
</VirtualHost>
Magien er i linjen som begynner med AssignUserId. Med dette alternativet ber vi Apache/PHP å kjøre som følgende bruker/gruppe.
Trinn 5 - Skjuler Apaches versjon
Dette trinnet er ganske enkelt; bare åpne Apaches konfigurasjonsfil ved å utføre følgende kommando som root-bruker:
nano /etc/httpd/conf/httpd.conf
Finn "ServerTokens", og endre alternativet etter det til "ProductOnly". Dette forteller Apache å bare avsløre at det er "Apache", i stedet for "Apache/2.2" eller noe lignende.
Trinn 6 - Start Apache på nytt for å bruke endringene
Nå som vi har sikret serveren, må vi starte Apache-serveren på nytt. Gjør dette ved å kjøre følgende kommando som root eller med sudo:
service httpd restart
Konklusjon
Dette er bare noen få trinn du kan ta for å sikre serveren din. Nok en gang, selv om det er noen du stoler på som er vert for et nettsted på serveren din, bør du planlegge å beskytte det. I scenariene ovenfor, selv om en brukerkonto er kompromittert, vil ikke angriperen ha fått tilgang til hele serveren.