Introducere
Un server CentOS 7 recent activat trebuie personalizat înainte de a putea fi folosit ca sistem de producție. În acest articol, cele mai importante personalizări pe care va trebui să le faceți sunt date într-un mod ușor de înțeles.
Cerințe preliminare
Un server CentOS 7 recent activat, de preferință configurat cu tastele SSH. Conectați-vă la server ca root.
ssh -l root server-ip-address
Pasul 1: Creați un cont de utilizator standard
Din motive de securitate, nu este recomandabil să efectuați sarcini de calcul zilnic folosind contul root. În schimb, se recomandă crearea unui cont de utilizator standard care va folosi sudopentru a obține privilegii de administrare. Pentru acest tutorial, presupunem că creăm un utilizator numit joe . Pentru a crea contul de utilizator, tastați:
adduser joe
Setați o parolă pentru noul utilizator. Vi se va solicita introducerea și confirmarea unei parole.
passwd joe
Adăugați noul utilizator la roata grupului , astfel încât acesta își poate asuma privilegii de root folosind sudo.
gpasswd -a joe wheel
În cele din urmă, deschideți un alt terminal pe mașina dvs. locală și utilizați următoarea comandă pentru a adăuga cheia SSH la directorul principal al utilizatorului de pe serverul de la distanță. Vi se va solicita autentificarea înainte de instalarea cheii SSH.
ssh-copy-id joe@server-ip-address
După instalarea cheii, conectați-vă la server folosind noul cont de utilizator.
ssh -l joe server-ip-address
Dacă autentificarea este reușită, puteți închide celălalt terminal. De acum înainte, toate comenzile vor fi precedate sudo.
Pasul 2: Începeți autentificarea rădăcină și autentificarea cu parolă
Deoarece acum vă puteți conecta ca utilizator standard folosind tastele SSH, o bună practică de securitate este să configurați SSH astfel încât autentificarea root și autentificarea cu parolă să fie ambele interzise. Ambele setări trebuie configurate în fișierul de configurare al demonului SSH. Deci, deschideți-l folosind nano.
sudo nano /etc/ssh/sshd_config
Căutați linia PermitRootLogin , decomandați-o și setați valoarea pe nr .
PermitRootLogin no
Faceți același lucru pentru PasswordAuthenticationlinia, care ar trebui să fie deja necomentată:
PasswordAuthentication no
Salvați și închideți fișierul. Pentru a aplica noile setări, reîncărcați SSH.
sudo systemctl reload sshd
În mod implicit, timpul pe server este dat în UTC. Cel mai bine este să îl configurați pentru a afișa fusul orar local. Pentru a realiza acest lucru, localizați fișierul de zonă din țara dvs. / zona geografică în /usr/share/zoneinfodirector și creați o legătură simbolică de la acesta la /etc/localtimedirector. De exemplu, dacă vă aflați în partea de est a SUA, veți crea legătura simbolică folosind:
sudo ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime
După aceea, verificați dacă ora este dată la timp, executând datecomanda. Producția ar trebui să fie similară cu:
Tue Jun 16 15:35:34 EDT 2015
EDT în Confirma ieșire că este localtime.
Pasul 4: Activați firewall-ul IPTables
În mod implicit, aplicația firewall activă pe un server CentOS 7 recent activat este FirewallD. Deși este un înlocuitor bun pentru IPTables, multe aplicații de securitate încă nu au suport pentru aceasta. Așadar, dacă veți utiliza oricare dintre aceste aplicații, cum ar fi OSSEC HIDS, cel mai bine este să dezactivați / dezinstalați FirewallD.
Să începem prin dezactivarea / dezinstalarea FirewallD:
sudo yum remove -y firewalld
Acum, hai să instalăm / activăm IPTables.
sudo yum install -y iptables-services
sudo systemctl start iptables
Configurați IPTables pentru a porni automat la momentul de pornire.
sudo systemctl enable iptables
IPTables pe CentOS 7 are un set de reguli implicit, pe care îl puteți vizualiza cu următoarea comandă.
sudo iptables -L -n
Rezultatul va fi asemănător cu:
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
Puteți vedea că una dintre aceste reguli permite traficul SSH, astfel încât sesiunea dvs. SSH este în siguranță.
Deoarece regulile respective sunt reguli de rulare și se vor pierde la repornire, cel mai bine este să le salvați într-un fișier folosind:
sudo /usr/libexec/iptables/iptables.init save
Această comandă va salva regulile în /etc/sysconfig/iptablesfișier. Puteți edita regulile oricând modificând acest fișier cu editorul de text preferat.
Pasul 5: Permiteți trafic suplimentar prin firewall
Întrucât cel mai probabil veți folosi noul dvs. server pentru a găzdui unele site-uri web la un moment dat, va trebui să adăugați reguli noi la firewall pentru a permite traficul HTTP și HTTPS. Pentru a realiza acest lucru, deschideți fișierul IPTables:
sudo nano /etc/sysconfig/iptables
Chiar după sau înainte de regula SSH, adăugați regulile pentru traficul HTTP (port 80) și HTTPS (port 443), astfel încât acea porțiune a fișierului să apară așa cum se arată în blocul de cod de mai jos.
-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
Salvați și închideți fișierul, apoi reîncărcați IPTables.
sudo systemctl reload iptables
Cu pasul de mai sus finalizat, serverul dvs. CentOS 7 ar trebui să fie acum sigur și să fie gata de utilizare în producție.