Introduksjon
Forutsetninger
Trinn 1: Opprett en standard brukerkonto
Trinn 2: Ikke tillat rotpålogging og passordautentisering
Trinn 3: Konfigurer tidssonen
Trinn 4: Aktiver IPTables-brannmuren
Trinn 5: Tillat ekstra trafikk gjennom brannmuren
Introduksjon
En nylig aktivert CentOS 7-server må tilpasses før den kan tas i bruk som et produksjonssystem. I denne artikkelen er de viktigste tilpasningene du må gjøre gitt på en lettfattelig måte.
Forutsetninger
En nylig aktivert CentOS 7-server, fortrinnsvis oppsett med SSH-nøkler. Logg inn på serveren som root.
ssh -l root server-ip-address
Trinn 1: Opprett en standard brukerkonto
Av sikkerhetsgrunner er det ikke tilrådelig å utføre daglige databehandlingsoppgaver ved å bruke root-kontoen. I stedet anbefales det å opprette en standard brukerkonto som skal brukes for sudoå få administrative rettigheter. For denne opplæringen, anta at vi oppretter en bruker som heter joe . For å opprette brukerkontoen, skriv inn:
adduser joe
Angi et passord for den nye brukeren. Du vil bli bedt om å skrive inn og bekrefte et passord.
passwd joe
Legg til den nye brukeren i hjulgruppen slik at den kan anta root-privilegier ved å bruke sudo.
gpasswd -a joe wheel
Til slutt åpner du en annen terminal på din lokale maskin og bruker følgende kommando for å legge til SSH-nøkkelen til den nye brukerens hjemmekatalog på den eksterne serveren. Du vil bli bedt om å autentisere før SSH-nøkkelen installeres.
ssh-copy-id joe@server-ip-address
Etter at nøkkelen er installert, logger du på serveren med den nye brukerkontoen.
ssh -l joe server-ip-address
Hvis påloggingen er vellykket, kan du lukke den andre terminalen. Fra nå av vil alle kommandoer innledes med sudo.
Trinn 2: Ikke tillat rotpålogging og passordautentisering
Siden du nå kan logge på som en standardbruker ved hjelp av SSH-nøkler, er en god sikkerhetspraksis å konfigurere SSH slik at både rotpålogging og passordautentisering ikke er tillatt. Begge innstillingene må konfigureres i SSH-demonens konfigurasjonsfil. Så åpne den med nano.
sudo nano /etc/ssh/sshd_config
Se etter PermitRootLogin- linjen, avkommenter den og sett verdien til no .
PermitRootLogin no
Gjør det samme for PasswordAuthenticationlinjen, som allerede skal være ukommentert:
PasswordAuthentication no
Lagre og lukk filen. For å bruke de nye innstillingene, last inn SSH på nytt.
sudo systemctl reload sshd
Som standard er tiden på serveren gitt i UTC. Det er best å konfigurere den til å vise den lokale tidssonen. For å oppnå det, finn sonefilen for ditt land/geografiske område i /usr/share/zoneinfokatalogen og lag en symbolsk lenke fra den til /etc/localtimekatalogen. For eksempel, hvis du er i den østlige delen av USA, oppretter du den symbolske lenken ved å bruke:
sudo ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime
Etterpå, kontroller at tiden nå er gitt i lokal tid ved å kjøre datekommandoen. Utgangen skal være lik:
Tue Jun 16 15:35:34 EDT 2015
Den EDT i utgangs bekrefter at det er lokaltid.
Trinn 4: Aktiver IPTables-brannmuren
Som standard er den aktive brannmurapplikasjonen på en nylig aktivert CentOS 7-server FirewallD. Selv om det er en god erstatning for IPTables, har mange sikkerhetsapplikasjoner fortsatt ikke støtte for det. Så hvis du skal bruke noen av disse programmene, som OSSEC HIDS, er det best å deaktivere/avinstallere FirewallD.
La oss starte med å deaktivere/avinstallere FirewallD:
sudo yum remove -y firewalld
La oss nå installere/aktivere IPTables.
sudo yum install -y iptables-services
sudo systemctl start iptables
Konfigurer IPTables til å starte automatisk ved oppstart.
sudo systemctl enable iptables
IPTables på CentOS 7 kommer med et standardsett med regler, som du kan se med følgende kommando.
sudo iptables -L -n
Utgangen vil ligne:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Du kan se at en av disse reglene tillater SSH-trafikk, så SSH-økten din er trygg.
Fordi disse reglene er kjøretidsregler og vil gå tapt ved omstart, er det best å lagre dem i en fil ved å bruke:
sudo /usr/libexec/iptables/iptables.init save
Den kommandoen vil lagre reglene i /etc/sysconfig/iptablesfilen. Du kan redigere reglene når som helst ved å endre denne filen med din favoritt tekstredigerer.
Trinn 5: Tillat ekstra trafikk gjennom brannmuren
Siden du mest sannsynlig kommer til å bruke den nye serveren din til å være vert for noen nettsteder på et tidspunkt, må du legge til nye regler i brannmuren for å tillate HTTP- og HTTPS-trafikk. For å oppnå det, åpne IPTables-filen:
sudo nano /etc/sysconfig/iptables
Rett etter eller før SSH-regelen legger du til reglene for HTTP (port 80) og HTTPS (port 443) trafikk, slik at den delen av filen vises som vist i kodeblokken nedenfor.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Lagre og lukk filen, og last deretter inn IPTables på nytt.
sudo systemctl reload iptables
Når trinnet ovenfor er fullført, bør CentOS 7-serveren din nå være rimelig sikker og klar til bruk i produksjon.