Câteva idei pentru a configura un server Linux

CREDIT Ș https://www.ubuntufree.com/cheap-linux-vps-web-hosting-companies/

In aceste zile conexiunea la rețea este ceva ce trebuie avut la orice tip de terminal electronic. Ca un ajutor vine Linux-ul ce poate fi considerat regele unei rețele, atat în ceea ce privește ușurința de administrare cât și în ceea ce privește securitatea unei rețele configurate cu acest sistem de operare. Totuși, asta nu înseamnă că este obligatoriu sau ca nu exista și alte moduri de a configura și administra o rețea. Ma refer aici totuși la Linux care chiar dacă a făcut progrese semnificative de-a lungul anilor, se pot întâlni totuși situații cand depanarea sau optimizarea nu va funcționa daca nu sunt implementate corespunzător. Câteva idei pentru a configura un server cu Linux gasesc ca ar fi binevenite și sper ca vă vor ajuta în configurarea, optimizarea și depanarea unor probleme ce pot aparea într-o rețea în care se află și un astfel de server.

1: Folosiți-vă de fișierul /etc/hosts pentru a menționa acolo gazdele

Fișierul este utilizat pentru nume statice gazdă și oferă o modalitate rapidă de a crea comenzi rapide de rețea. Unul dintre primele lucruri pe care le fac pe o mașină Linux sunt adăugarea de mașini diferite în fișierul /etc/hosts. Acest lucru mă salvează de a avea pentru a introduce o mulțime de adrese IP. Formatul unei adrese pentru acest fișier este:

IP_ADDRESS NUME_MAȘINA

De exemplu, dacă folosesc o mașină pentru o locație de rezervă la adresa IP 192.168.1.101, aș putea introduce:

192.168.1.101 calculator_backup

Acum, dacă trebuie să mă conectez la mașina respectivă, să spunem folosind SSH cu “shell” sigur, pot să aduc în consolă mașina respectivă folosind comanda:

ssh -v -l nume_utilizator calculator_backup pentru a face conexiunea și nu

ssh -v -l nume_utilizator 192.168.1.101 modalitate în care se apelează mașina folosind direct IP-ul acesteia.

2: Evitați clienții nedoriți folosind /etc/hosts.deny

Mai există un fișier de configurare a gazdelor folosit pentru restricționare – hosts.deny.
Acest fișier vă permite să aveți controlul accesului bazat pe client sau pe nume de server. Acest lucru este util în multe feluri. Puteți bloca domenii din lista neagră de la accesarea site-ului dvs. sau puteți împiedica anumiți utilizatori să obțină acces la anumite mașini. Dar indiferent de modul în care o utilizați acesta, formatul este același.
Să presupunem că doriți să blocați domeniul:

nume.nedorit.com

de la accesul către o mașină. Pentru a face acest lucru, deschideți pentru editare fișierul /etc/hosts.deny (veți avea nevoie de privilegii root sau sudo) și adăugați aceasta linie în partea de jos a fișierului:

ALL: nume.nedorit.com

Salvează-l și vei fi protejat împotriva conexiunilor ce folosesc acest nume de domeniu.

3: Descărcați și instalați interfață pentru iptables

Nu puteți presupune că doar pentru că utilizați Linux, sunteți sigur. Sunteți mai sigur cu el spre deosebire de alte sisteme de operare însă nu există prea multă siguranța și pentru asta mai puteți adăuga elemente de siguranță. Si cea mai bună securitate pe care o puteți avea cu Linux este prin folosirea iptables (tabelele de IP-uri folosite de un FireWall). Singura problemă cu iptables este că poate fi o provocare (în special pentru noul utilizator). Din fericire, există interfețe grafice pentru iptables. Una dintre este cele mai bune interfețe ce poate fi folosită cu succes și de

Lista de verificari a serverului Linux și altele – 2

Lista de verificari a serverului Linux și altele

Continuarea articolului de aici: Lista de verificari a serverului Linux și altele

# 11: Închiderea conturilor de utilizator după erorile de conectare

Sub Linux puteți folosi comanda faillog pentru a afișa înregistrările faillog sau pentru a seta limitele de eșec la conectare. Faillog formatează conținutul jurnalului de erori din /var/log/faillog bază de date / fișier jurnal. De asemenea, poate fi folosit pentru a menține contoarele și limitele defecțiunilor. Pentru a vedea încercările de conectare eșuate, introduceți:
faillog

Pentru a debloca un cont după eșecuri de conectare, executați:
faillog -r -u userName

Rețineți că puteți utiliza comanda passwd pentru a bloca și debloca conturi:

# blocare cont
passwd -l userName

# deblocare cont
passwd -u userName

 

# 12: Cum pot verifica dacă nici un cont nu are parole goale?

Tastați următoarea comandă
# awk -F: '($ 2 == "") {print}'/etc/shadow

Blocați toate conturile cu parole goale:
# passwd -l AccountName

# 13: Asigurați-vă că nici un cont non-root nu au UID setat la 0

Numai contul root are UID 0 cu permisiuni complete pentru a accesa sistemul. Tastați următoarea comandă pentru a afișa toate conturile cu UID setat la 0:

# awk -F: '($ 3 == "0") {print}'/etc/passwd

Ar trebui să vedeți numai o linie după cum urmează:

root:x:0:0:root:/root:/bin/bash

Dacă vedeți alte linii, ștergeți-le sau asigurați-vă că alte conturi sunt autorizate de dvs. pentru a utiliza UID 0.

# 14: Dezactivați conectarea la root

Nu vă conectați niciodată ca utilizator root. Ar trebui să utilizați sudo pentru a executa comenzile de nivel rădăcină atunci când este necesar. Comanda sudo îmbunătățește considerabil securitatea sistemului fără a partaja parola de root cu alți utilizatori și administratori. De asemenea comanda sudo oferă și simulare simplă și caracteristici de urmarire.

# 15: Securitatea serverului fizic

Trebuie să protejați accesul la consola fizică a serverelor Linux. Configurați BIOS și dezactivați pornirea de la dispozitive externe, cum ar fi DVD-uri / CD-uri / USB Pen. Setați parola de încărcare BIOS și grubboot pentru a proteja aceste setări. Toate sesiunile de producție trebuie să fie blocate în IDC (Internet Data Center) și toate persoanele trebuie să treacă un fel de verificări de securitate înainte de a accesa serverul.

# 16: Dezactivați serviciile nedorite

Dezactivați toate serviciile și daemoanele inutile (servicii care rulează în fundal). Trebuie să eliminați toate serviciile nedorite de la pornirea sistemului. Introduceți următoarele comenzi pentru a afișa toate serviciile care sunt pornite în momentul încărcării în nivelul de execuție #3:

# chkconfig --list | grep '3: pe'

Pentru a dezactiva serviciul, introduceți:

# service serviceName stop
# chkconfig serviceName off

# 17: Găsiți porturi de rețea de ascultare

Utilizați următoarea comandă pentru a afișa toate porturile deschise și programele asociate:

netstat -tulpn

SAU utilizați comanda aceasta după cum urmează:

$ ss -tulpn

SAU

nmap -sT -O localhost
nmap -sT -O server.example.com

Puteti gasi exemple de comenzi Nmap pentru Administratorii System / Network pentru mai multe informații. Utilizați iptables pentru a închide porturile deschise sau a opri toate serviciile de rețea nedorite utilizând comenzile de mai sus și comenzile chkconfig.

update-rc.d – comanda pe Redhat Enterprise / CentOS Linux.

Ubuntu / Debian Linux: Instrumentul de configurare a serviciilor pentru a porni/opri serviciile de sistem.

Obțineți informații detaliate despre conexiunile IP specifice folosind comanda netstat.

# 18: Ștergeți X Windows

X Windows pe server nu este necesar. Nu există niciun motiv pentru a rula X Windows pe e-mail-ul dedicat și serverul web Apache. Puteți licita și elimina X Windows pentru pentru a îmbunătăți securitatea și performanța serverului. Editați /etc/inittab si setați nivelul de execuție la 3. În final, eliminați sistemul X Windows, introduceți:

#yum groupremove "X Window System"

Pe serverul CentOS 7 / RHEL 7 utilizați următoarele comenzi:

# yum group remove "GNOME Desktop"
# yum group remove "KDE Plasma Workspaces"
# yum group remove "Server with GUI"
# yum group remove "MATE Desktop"

# 19: Configurați modulele Iptables și TCPWrappers

Iptables este un program de aplicații pentru spațiul de utilizator care vă permite să configurați firewall-ul (Netfilter) furnizat de kernel-ul Linux. Utilizați firele pentru a filtra traficul și permiteti doar traficul necesar. Utilizați de asemenea TCP Wrappers, un sistem ACL bazat pe gazdă pentru a filtra accesul la rețea în Internet. Puteți preveni multe atacuri de negare a serviciilor (denial of service) cu ajutorul Iptables:

# 20: Întărirea Kernel Linux folosind /etc/sysctl.conf

Fișierul /etc/sysctl.conf este folosit pentru a configura parametrii kernelului în timpul rulării. Linux citește și aplică setările din /etc/sysctl.conf la momentul încărcării. Exemplu de /etc/sysctl.conf:

# Turn on execshield

kernel.exec-shield=1

kernel.randomize_va_space=1

# Enable IP spoofing protection

net.ipv4.conf.all.rp_filter=1

# Disable IP source routing

net.ipv4.conf.all.accept_source_route=0

# Ignoring broadcasts request

net.ipv4.icmp_echo_ignore_broadcasts=1

net.ipv4.icmp_ignore_bogus_error_messages=1

# Make sure spoofed packets get logged

net.ipv4.conf.all.log_martians = 1

Mai multe in materiale urmatoare…

Credit Imagine https://Hangar.Hosting

Lista de verificari a serverului Linux și altele

Lista de verificari a serverului Linux și altele

Următoarele instrucțiuni presupun că utilizați o distribuție Linux bazată pe CentOS / RHEL sau Ubuntu / Debian.

# 1: Criptarea comunicațiilor de date

Toate datele transmise prin intermediul unei rețele sunt deschise monitorizării. Criptați datele transmise ori de câte ori este posibil cu parolă sau folosind chei / certificate.

Folositi scp, ssh, rsync sau sftp pentru transferul de fișiere. Puteți, de asemenea, să montati (mount) de la distanță sistemul de fișiere de pe server sau directorul /home folosind functii speciale sshfs și unelte de siguranță.

GnuPG va permite să criptați și să semnați datele din comunicațiile dvs. pentru ca dispune de un sistem versatil de gestionare a cheilor, precum și de module de acces pentru toate tipurile de directoare de chei publice.

Lighttpd SSL (Secure Server Layer) = Https – Protocol criptat pentru transmitere date in WEB – www

Apache SSL (Secure Server Layer) = Https (mod_ssl) – Protocol criptat pentru transmitere date in WEB – www

# 2: Evitați utilizarea serviciilor FTP, Telnet și Rlogin / Rsh

În majoritatea configurațiilor de rețea, numele utilizatorilor, parolele, comenzile FTP / telnet / rsh și fișierele transferate pot fi capturate de oricine din aceeași rețea utilizând un sniffer de pachete. Soluția obișnuită la această problemă este folosirea fie OpenSSH, SFTP, fie FTPS (FTP over SSL), care adaugă criptare SSL sau TLS la FTP.

Introduceți următoarea comandă pentru a șterge NIS, rsh și alte servicii învechite:

# yum erase xinetd ypserv tftp-server telnet-server rsh-server

Dacă utilizați un server bazat pe Debian / Ubuntu Linux, încercați tryapt-get command / apt pentru a elimina serviciile nesigure:

$ sudo apt-get --purge șterge xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server

# 3: Minimizați software-ul folosit pentru a minimiza vulnerabilitatea

Chiar aveți nevoie de tot felul de servicii web instalate?
Evitați instalarea de software inutil pentru a evita vulnerabilitățile software. Utilizați managerul de pachete RPM ca yum sau apt-get și / sau dpkg pentru a revizui setul de pachete software instalate pe un sistem. Ștergeți toate pachetele nedorite.

# yum list installed
# yum list packageName
# yum remove packageName

SAU

# dpkg --list
# dpkg --info packageName
# apt-get remove packageName

# 4: Un serviciu de rețea pe sistem sau instanță VM

Executați diferite servicii de rețea pe servere separate sau instanțe VM. Acest lucru limitează numărul de alte servicii care pot fi compromise. De exemplu, dacă un atacator este capabil să exploateze cu succes un software cum ar fi fluxul Apache, el sau ea va avea acces la întregul server, inclusiv alte servicii, cum ar fi MySQL / MariaDB / PGSql, server de e-mail și așa mai departe.

# 5: Păstrați kernel-ul și software-ul Linux actualizate

Aplicarea de patch-uri de securitate este o parte importantă a menținerii serverului Linux. Linux oferă toate instrumentele necesare pentru a vă menține sistemul actualizat și permite, de asemenea, actualizări ușoare între versiuni. Toate actualizările de securitate trebuie revizuite și aplicate cât mai curând posibil. Din nou, utilizați managerul de pachete RPM, cum ar fi yum si/sau apt-get și/sau dpkg, pentru a aplica toate actualizările de securitate.

# update yum

SAU

# apt-get update && apt-get upgrade

Aveți posibilitatea să configurați Red Hat / CentOS / Fedora Linux pentru a trimite notificarea pachetului de timp yum prin e-mail. O altă opțiune este de a aplica toate actualizările de securitate de la o activitate cron. Sub Debian / Ubuntu Linux puteți folosi apticron pentru a trimite notificări de securitate. Este de asemenea posibil să configurați actualizări nesupravegheate pentru comanda apt (apt-get/apt) pentru serverul Debian / Ubuntu Linux:

$ sudo apt-get install unattended-upgrades apt-listchanges bsd-mailx

# 6: Utilizați extensiile de securitate Linux (Linux Security Extensions)

Linux vine cu diferite patch-uri de securitate care pot fi utilizate pentru a proteja programele greșite sau compromise. Dacă este posibil, utilizați SELinux și alte extensii de securitate Linux pentru a impune limitări ale rețelelor și altor programe. De exemplu, SELinux oferă o varietate de politici de securitate pentru kernel-ul Linux.

# 7: SELinux

Vă recomand cu insistență să folosiți SELinux care oferă un control flexibil de acces flexibil (MAC). În conformitate cu standardul de control al accesului discreționar al Linux (DAC), o aplicație sau un proces care rulează ca utilizator (UID sau SUID) are permisiunile utilizatorului pentru obiecte, cum ar fi fișiere, prize și alte procese. Rularea unui kernel MAC protejează sistemul de aplicații dăunătoare sau defecte, care pot deteriora sau distruge sistemul. Vedeți documentația oficială Redhat care explică configurația SELinux.

# 8: Conturi de utilizator și politică de parole puternice

Utilizați comenzile useradd / usermod pentru a crea și întreține conturi de utilizator. Asigurați-vă că aveți o politică de parole bună și puternică. De exemplu, o parolă bună include cel puțin 8 caractere și un amestec de litere, numere, caractere special, alfabete superioare și inferioare etc. Este important să alegeți o parolă pe care să vă puteți aminti. Utilizați unelte precum “John the ripper” pentru a afla parolele utilizatorilor slabi pe serverul dvs. Configurați pam_cracklib.so pentru a forța politica de parole.

# 9: Îmbătrânirea parolei

Comanda change schimbă numărul de zile dintre modificările parolei și data ultimei modificări a parolei. Aceste informații sunt utilizate de sistem pentru a determina când un utilizator trebuie să-și schimbe parola. Fișierul /etc/login.defs definește configurația specifică site-ului pentru suita de parole umbra (shadow), inclusiv configurația de îmbătrânire a parolei. Pentru a dezactiva îmbătrânirea parolei, introduceți:

# change -M 99999 userName

Pentru a obține informații despre expirarea parolei, introduceți:

# change -l userName

În final, puteți să editați fișierul /etc/shadow în următoarele câmpuri:

{userName}:{password}:{lastpasswdchanged}:{Minimum_days}:{Maximum_days}:{Warn}:{Inactive}:{Expire}:

Unde,
Zile minime: Numărul minim de zile necesar între modificările parolei, adică numărul de zile rămase înainte ca utilizatorul să-și poată schimba parola.
Numărul maxim de zile: Numărul maxim de zile în care parola este validă (după care utilizatorul este nevoit să-și schimbe parola).
Avertizare: Numărul de zile înainte ca parola să expire necesar pentru ca acel utilizator este avertizat că parola lui trebuie schimbată.
Expiră: Zilele de la 1 ianuarie 1970, respectivul cont este dezactivat, adică o dată absolută care specifică momentul în care nu mai pot fi utilizate datele de conectare.

Vă recomand comanda chage în loc de a edita fișierul /etc/shadow folosind:

# change -M 60 -m 7 -W 7 userName

# 10: Restricționarea utilizării parolelor anterioare

Puteți împiedica toți utilizatorii să folosească sau să reutilizeze aceleași parole vechi sub Linux. Parametrul modulului memory_unix poate fi utilizat pentru a configura numărul de parole anterioare care nu pot fi refolosite.

Mai multe în  materiale urmatoare… Lista de verificari a serverului Linux și altele – 2

Credit Imagine https://Hangar.Hosting