Contacte

Centos 7 firewall cmd port deschis. Setarea zonei implicite

Astăzi vă voi prezenta viziunea mea despre configurația inițială a unui server universal pe un sistem de operare popular. Vă voi spune cum să faceți o configurație de bază a serverului centos imediat după instalare pentru a-l folosi în orice capacitate doriți. A dat sfaturi practice crește securitatea și gradul de utilizare a serverului. Articolul va fi relevant pentru ultimele două versiuni ale Centos - 7 și 8.

  1. Listați setările inițiale centos pe care le efectuez pe un server proaspăt instalat.
  2. Afișați exemple de configurații pe care le folosesc într-o configurare tipică.
  3. Oferă sfaturi despre configurarea centos pe baza experienței tale cu sistemul.
  4. Furnizați o listă de programe și utilitare tipice care ajută la administrarea serverului.

Acest articol face parte dintr-o singură serie de articole despre server.

Introducere

După lansarea noii versiuni a Centos 8, a devenit dificil de descris într-un singur articol setare initiala ambele servere, dar nu am avut chef să împart articolul, deoarece există multe link-uri de intrare din diferite locuri către acesta. Este mai convenabil să mențin material comun pe ambele versiuni, ceea ce voi face. În același timp, diferențele dintre cele două versiuni vor fi clar vizibile, care la câțiva ani după lansarea lui centos 8 vor fi ambele relevante și va trebui să utilizați ambele versiuni, în funcție de situație.

Centos 7 folosește un manager de pachete yum, iar în Centos 8 - dnf... În același timp, am lăsat un link simbolic de la yum la dnf, astfel încât să puteți scrie atât prenumele, cât și al doilea. Pentru consecvență, voi folosi yum peste tot și vă avertizez, ca să înțelegeți de ce o fac așa. În realitate, dnf este folosit în CentOS 8, acesta este un manager de pachete diferit, mai modern, care vă permite să lucrați cu versiuni diferite ale aceluiași software. Pentru aceasta, sunt folosite depozite separate, care au apărut pentru centos 8.

Configurare inițială CentOS

Personal, după instalare, încep cu orice configurație de sistem, fie centos sau altfel, prin actualizarea completă a sistemului. Dacă imaginea de instalare a fost proaspătă sau instalarea a fost efectuată prin rețea, atunci cel mai probabil nu vor exista actualizări. Cel mai adesea sunt, din moment ce imagini de instalare nu întotdeauna actualizat în mod regulat.

Actualizarea sistemului

# yum actualizare

Pentru comoditatea administrației, instalez întotdeauna Midnight Commander sau doar mc:

# yum install mc

Și imediat pentru asta activez evidențierea sintaxei tuturor fișierelor care nu sunt indicate în mod explicit în fișier / usr / share / mc / syntax / Syntax sintaxă pentru scripturile sh și bash. Această sintaxă generică este bună pentru fișierele de configurare care sunt utilizate cel mai frecvent pe server. Suprascrieți fișierul necunoscut.sintaxă... Acesta este șablonul care va fi aplicat fișierelor .conf și .cf, deoarece nu există o sintaxă explicită atașată acestora.

# cp /usr/share/mc/syntax/sh.syntax /usr/share/mc/syntax/unknown.syntax

În continuare, utilitățile de rețea vor fi utile. În funcție de setul de pachete inițiale pe care îl alegeți la instalarea sistemului, veți avea unul sau altul set de utilități de rețea. Iată o listă cu cele cu care sunt obișnuit personal - ifconfig, netstat, nslookup și altele. Dacă aveți nevoie de el, la fel ca mine, atunci vă sugerez să le instalați separat, dacă nu sunt deja acolo. Dacă nu ai cu adevărat nevoie de ele și nu le folosești, poți sări peste instalarea lor. Să verificăm ce avem în sistem în acest moment

# ifconfig

Daca vezi raspunsul:

Bash: ifconfig: comanda nu a fost găsită

Aceasta înseamnă că utilitarul nu este instalat. În loc de ifconfig pe CentOS, acum un utilitar ip... Acest lucru este valabil nu numai pentru centos. Aceasta este imaginea în aproape toate distribuțiile Linux moderne populare. M-am obișnuit cu ifconfig de mult, totuși timpuri recente practic nu o folosesc. Întotdeauna mi-a plăcut că în diferite distribuții Linux totul este aproximativ la fel. Cu ifconfig, puteți configura rețeaua nu numai în linux, ci și în freebsd. Este confortabil. Și când fiecare distribuție are propriul său instrument, nu este convenabil. Deși acum acest lucru nu mai este foarte relevant, din moment ce nu mai lucrez cu Freebsd, iar utilitarul ip este în toate distribuțiile Linux. Cu toate acestea, dacă aveți nevoie de ifconfig, puteți instala pachetul net-instrumente, care include:

# yum instalează net-tools

Pentru ca noi să avem comenzi nslookup sau, de exemplu, host, trebuie să instalăm pachetul bind-utils... Dacă acest lucru nu se face, atunci la comanda:

# nslookup

Ieșirea va fi:

Bash: nslookup: comanda nu a fost găsită

Deci, instalați bind-utils:

# yum instalează bind-utils

Dezactivați SELinux

Dezactivați SELinux. Utilizarea sa și stabilirea unei conversații separate. Acum nu voi face asta. Deci oprim:

# mcedit / etc / sysconfig / selinux

modifica valoarea

SELINUX = dezactivat

Pentru ca modificările să intre în vigoare, puteți reporni:

# reporniți

Și dacă doriți să aplicați dezactivarea SELinux fără a reporni, atunci rulați comanda:

# setenforce 0

Primesc multe critici tot timpul cu privire la dezactivarea SELinux. Știu cum funcționează, îl pot personaliza. Într-adevăr, nu este foarte greu și nici greu de stăpânit. Aceasta este alegerea mea deliberată, deși uneori o acord. Formatul meu de lucru cu sistemul este de așa natură încât cel mai adesea nu am nevoie de SELinux, așa că nu pierd timpul cu el și dezactivez centos în configurația de bază. Securitatea sistemului este o muncă complexă, mai ales în lumea de astăzi dezvoltare web unde microservicii și containerele domnesc suprem. SELinux este un instrument de nișă care nu este necesar întotdeauna și oriunde. Prin urmare, acest articol nu îi aparține. Cine are nevoie de el va activa separat SELinux și va configura.

Specificarea parametrilor de rețea

Continuăm cu configurația de bază a centos după instalare. Acum o vom face, dacă din anumite motive nu am făcut-o în timpul instalării sau dacă trebuie să le schimbați. În general, rețeaua din Centos este configurată folosind Manager de rețeași utilitarul său de consolă nmtui... Vine în configurația de bază a sistemului. Este simplu și direct interfata grafica, deci nu este nimic de spus. Sunt mai obișnuit să configurez rețeaua prin fișierele de configurare a scripturilor de rețea. În versiunea a 7-a centos sunt scoase din cutie, în versiunea a 8-a au fost eliminate. Pentru a le utiliza pentru a configura rețeaua, trebuie să instalați separat pachetul scripturi-rețea.

# yum instalează scripturi de rețea

Acum puteți configura rețeaua. Pentru a face acest lucru, deschideți fișierul / etc / sysconfig / network-scripts / ifcfg-eth0

# mcedit / etc / sysconfig / network-scripts / ifcfg-eth0

Dacă obțineți setări de rețea prin dhcp, atunci setul minim de setări din fișierul de configurare va fi următorul.

TYPE = "Ethernet" BOOTPROTO = "dhcp" DEFROUTE = "da" IPV4_FAILURE_FATAL = "nu" NAME = "eth0" DEVICE = "eth0" ONBOOT = "da"

Pentru a configura o adresă IP statică, setările vor fi după cum urmează.

TYPE = „Ethernet” BOOTPROTO = „niciun” DEFROUTE = „da” IPV4_FAILURE_FATAL = „nu” NUME = „eth0” DISPOZITIV = „eth0” ONBOOT = „da” IPADDR = 192.168.167.117 DNS1 = 192.168.167.117 = 192.168.167.117 DNS1 = 192.1316. 192.168.167.113

În câmpul IPADDR, introduceți adresa dvs., în masca de rețea PREFIX, în gateway-ul GATEWAY, adresa DNS server dns. Salvați fișierul și reporniți rețeaua pentru a aplica setările:

# systemctl reporniți rețeaua

Configurarea unui firewall

Adăugarea de depozite

Când configurați centos, aveți adesea nevoie de software care nu este în napi standard. Pentru instalare pachete suplimentare necesar . Cel mai popular este EPEL. A fost rpmforge, dar a fost închis de câțiva ani. Toată lumea a uitat de el. Conectăm depozitul EPEL. Totul este simplu cu el, se adaugă din napul standard:

# yum install epel-release

De asemenea, pentru CentOS 7, depozitul REMI este extrem de util, ceea ce vă permite să instalați mai multe versiuni proaspete php, spre deosebire de cele din depozitul standard. Permiteți-mi să vă reamintesc că asta versiunea php 5.4, ​​care nu mai este bun la nimic și a fost scos din suport.

# rpm -Uhv http://rpms.remirepo.net/enterprise/remi-release-7.rpm

Pentru Centos 8 remi nu este încă relevant, dar cred că este temporar. În principiu, aceste două depozite în centos sunt de obicei suficiente pentru mine în cazul general. Alții sunt deja conectați pentru nevoi specifice de a instala diverse software.

Configurarea stocării istoricului în bash_history

Trecem la configurarea sistemului centos pe server. Va fi util să faceți unele modificări la mecanismul standard pentru salvarea istoricului comenzilor. El vă ajută adesea atunci când trebuie să vă amintiți una dintre comenzile introduse anterior. Setările implicite au unele limitări care sunt incomode. Iată o listă cu ele:

  1. În mod implicit, sunt salvate doar ultimele 1000 de comenzi. Dacă sunt mai multe, cele mai vechi vor fi șterse și înlocuite cu altele noi.
  2. Nu sunt specificate datele de executare a comenzilor, doar lista acestora în ordinea executării.
  3. Fișierul cu lista de comenzi este actualizat după încheierea sesiunii. În sesiunile paralele, unele dintre comenzi se pot pierde.
  4. Absolut toate comenzile sunt salvate, deși nu are rost să stocați unele.

Lista ultimelor comenzi executate este stocată în directorul principal al utilizatorului din fișier .bash_history(la punctul de început). Poate fi deschis de orice editor și vizualizat. Pentru o afișare mai convenabilă a listei, puteți introduce comanda în consolă:

# istorie

și vedeți o listă numerotată. Puteți găsi rapid o comandă specifică prin filtrarea numai a liniilor de care aveți nevoie, de exemplu, astfel:

# istorie | grep yum

Deci vom vedea toate opțiunile de rulare a comenzii yum care sunt stocate în istoric. Să remediam deficiențele enumerate ale setărilor standard pentru stocarea istoricului comenzilor în CentOS. Pentru a face acest lucru, trebuie să editați fișierul .bashrc care se află în același director cu fișierul istoric. Adăugați următoarele rânduri la acesta:

Export HISTSIZE = 10000 export HISTTIMEFORMAT = "% h% d% H:% M:% S" PROMPT_COMMAND = "istory -a" export HISTIGNORE = "ls: ll: history: w: htop"

Primul parametru mărește dimensiunea fișierului la 10.000 de linii. Se pot face mai multe, deși această dimensiune este de obicei suficientă. Al doilea parametru specifică stocarea datei și orei la care a fost executată comanda. A treia linie forțează să fie salvată în istoric imediat după executarea comenzii. În ultima linie, creăm o listă de excepții pentru acele comenzi care nu trebuie să fie scrise în istoric. Am dat un exemplu despre mine lista simpla... Îl poți adăuga la discreția ta.

Pentru a aplica modificările, trebuie să vă deconectați și să vă reconectați sau să rulați comanda:

# sursă ~ / .bashrc

Asta e tot despre configurarea stocării istoricului comenzilor. Există o mulțime de lucruri interesante pe care le puteți face în fișierul .bashrc. La un moment dat am fost dus și am experimentat, dar apoi am abandonat totul, pentru că nu are sens. Când lucrez cu serverele clienților, cel mai adesea văd bash-ul implicit, așa că este mai bine să mă obișnuiesc cu el și să lucrez în el. Iar setările și decorațiunile individuale sunt lotul de computere și servere personale. Nu muncitori. Deci nu configurez nimic altceva conform standardului din serverul centos în acest sens.

Actualizare automată a sistemului

Pentru a menține securitatea serverului la nivelul corespunzător, este necesar cel puțin să-l actualizezi în timp util - atât nucleul însuși cu utilitățile de sistem, cât și alte pachete. Puteți face acest lucru manual, dar pentru o muncă mai eficientă este mai bine să configurați execuția automată. Nu este necesar să instalați actualizările automat, dar cel puțin să verificați aspectul acestora. De obicei urmez aceasta strategie.

Yum-cron

Pentru a verifica automat actualizările în Centos 7, utilitarul ne va ajuta yum-cron... Este instalat în mod tradițional prin yum din depozitul standard.

# yum instalează yum-cron

Odată instalat, yum-cron creează atribuire automată pentru a rula utilitarul în /etc/cron.dailyși /etc/cron.hourly... În mod implicit, utilitarul descarcă actualizările găsite, dar nu le aplică. În schimb, administratorul pe local cutie poștală notificarea de actualizare este trimisă la root. Atunci ești deja înăuntru mod manual intrați și decideți dacă instalați sau nu actualizările la un moment convenabil pentru dvs. Mi se pare că acest mod de operare este cel mai convenabil, așa că nu modific aceste setări.

Puteți configura yum-cron prin fișierele de configurare aflate la /etc/yum/yum-cron.confși yum-cron-hourly.conf... Sunt bine comentate, deci nu au nevoie de explicații detaliate. Atenție la secțiune , unde puteți specifica parametrii pentru trimiterea mesajelor. Implicit este să trimiți e-mail prin gazda locală. Puteți modifica aici parametrii și puteți trimite mesaje printr-o terță parte server de mail... Dar, în schimb, personal prefer să configurez global redirecționarea pentru întregul server poștă locală root la o cutie poștală externă prin autorizare pe alt server smtp.

Dnf-automat

După cum am spus mai devreme, Centos 8 folosește un alt manager de pachete - dnf. Configurarea actualizărilor pachetelor acolo se face prin utilitar dnf-automat... Să-l punem și să-l configurem.

# yum install dnf-automatic

Gestionarea pornirii programate nu mai este gestionată de cron, ci de systemd cu planificatorul său încorporat. Puteți vizualiza temporizatoarele de pornire automată cu comanda:

# systemctl list-timers * dnf- *

Dacă nu există sarcini acolo, atunci puteți adăuga manual un cronometru:

# systemctl enable --now dnf-automatic.timer

Temporizatorul implicit este setat să pornească dnf-automatic la o oră după pornirea serverului și se repetă zilnic. Configurația temporizatorului locuiește aici - /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

Configurația pentru dnf-automatic trăiește în /etc/dnf/automatic.conf... În mod implicit, descarcă doar actualizări, dar nu le aplică. Configurația este bine comentată, așa că o puteți personaliza cum doriți. Nu sunt necesare explicații separate. Personalizați actualizările pachetului de sistem după cum credeți de cuviință. După cum am spus, le descarc automat doar. Întotdeauna țin instalația sub control cu ​​control manual.

Dezactivați inundarea mesajelor în / var / log / mesaje

Continuând configurarea lui centos, vom remedia un mic inconvenient. În instalarea implicită a celei de-a 7-a versiuni a sistemului, întregul tău jurnal de sistem / var / jurnal / mesaje după un timp serverul va fi înfundat cu următoarele intrări.

Oct 16 14:01:01 xs-files systemd: Creat slice user-0.slice. 16 octombrie 14:01:01 xs-files systemd: Se pornește user-0.slice. 16 octombrie 14:01:01 xs-files systemd: a început Sesiunea 14440 a utilizatorului root. 16 octombrie 14:01:01 xs-files systemd: Pornește sesiunea 14440 a utilizatorului root. 16 octombrie 14:01:01 xs-files systemd: Slice user-0.slice eliminată. Oct 16 14:01:01 xs-files systemd: Oprirea utilizatorului-0.slice. Oct 16 15:01:01 xs-files systemd: Creat slice user-0.slice. 16 octombrie 15:01:01 xs-files systemd: Se pornește user-0.slice. 16 octombrie 15:01:01 xs-files systemd: a început Sesiunea 14441 a utilizatorului root. 16 octombrie 15:01:01 xs-files systemd: Pornește sesiunea 14441 a utilizatorului root. 16 octombrie 15:01:01 xs-files systemd: a început Sesiunea 14442 a utilizatorului root. 16 octombrie 15:01:01 xs-files systemd: Pornește sesiunea 14442 a utilizatorului root. 16 octombrie 15:01:01 xs-files systemd: Slice user-0.slice eliminată. 16 oct 15:01:01 xs-files systemd: Oprirea utilizatorului-0.slice. Oct 16 16:01:01 xs-files systemd: Creat slice user-0.slice. 16 octombrie 16:01:01 xs-files systemd: Se pornește user-0.slice. 16 octombrie 16:01:01 xs-files systemd: a început Sesiunea 14443 a utilizatorului root. 16 octombrie 16:01:01 xs-files systemd: Pornește sesiunea 14443 a utilizatorului root. 16 octombrie 16:01:01 xs-files systemd: Slice user-0.slice a fost eliminată.

Nu le-am observat în Centos 8, așa că nu e nimic de făcut acolo. Mesajele nu au nicio utilitate practică, așa că haideți să le dezactivăm. Pentru a face acest lucru, vom crea o regulă separată pentru rsyslog, unde vom enumera toate șabloanele de mesaje pe care le vom tăia. Să plasăm această regulă într-un fișier separat /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf dacă $ programname == „systemd” și ($ msg conține „Sesiunea de pornire” sau $ msg conține „Sesiunea începută” sau $ msg conține „Creat secțiunea „sau $ msg conține” Utilizatorul inițial- „sau $ msg conține” Secțiunea utilizator inițial de „sau $ msg conține” Sesiunea eliminată „sau $ msg conține” Secțiunea eliminată Secțiunea utilizator de „sau $ msg conține” Oprirea porțiunii de utilizator „ ) apoi opriți-vă

Salvați fișierul și reporniți rsyslog pentru a aplica setările.

# systemctl reporniți rsyslog

Este necesar să înțelegem că, în acest caz, dezactivăm inundația numai în fișierul jurnal server local... Dacă stocați loguri, atunci această regulă va trebui configurat pe el.

Instalarea iftop, atop, htop, lsof pe CentOS

Și, în sfârșit, la sfârșitul configurării, adăugați câteva utilitati utile, care poate fi util în timpul funcționării serverului.

iftop arată în timp real încărcarea interfeței de rețea, poate fi lansată cu diverse taste, nu mă voi opri în detaliu, există informații despre acest subiect pe Internet. Am pus:

# yum instalează iftop

Și doi manageri de activități interesanți, folosesc în mare parte htop, dar uneori atop este util. Le punem pe amândouă, vedeți singuri, aflați ce vă place cel mai mult, costume:

# yum install htop # yum install atop

Pentru a afișa informații despre fișierele folosite de anumite procese, vă sfătuiesc să instalați utilitarul lsof... Cel mai probabil, va fi util mai devreme sau mai târziu când diagnosticați funcționarea serverului.

# yum install wget bzip2 traceroute gdisk

Asta e tot pentru mine. Configurare de bază CentOS este terminat, puteți începe să instalați și să configurați funcționalitatea principală.

Configurarea corespondenței de sistem

La sfârșitul configurației Server CentOS Să facem astfel încât e-mailurile adresate rădăcinii locale să fie trimise printr-un server de e-mail extern către căsuța poștală selectată. Dacă acest lucru nu se face, atunci va fi adăugat local la un fișier / var / spool / mail / root... Și poate exista un important și Informatii utile... Să-l configuram pentru a fi trimis în căsuța poștală a administratorului de sistem.

Am vorbit despre asta în detaliu într-un articol separat -. Aici, pe scurt, doar comenzi și configurare rapidă. Punem pachetele necesare:

# yum install mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain postfix

Desenăm ceva ca această configurație pentru postfix.

Cat /etc/postfix/main.cf ## DEFAULT CONFIG BEGIN ############################# queue_directory = / var / spool / postfix director_comandă = / usr / sbin daemon_directory = / usr / libexec / postfix data_directory = / var / lib / postfix mail_owner = postfix inet_interfaces = localhost inet_protocols = all unknown_local_recipient_reject_code = 550 alias de bază de date / alias__ etc / alias debase de date_mabia_ etc = debia_interfaces = / bin: / usr / bin: / usr / local / bin: / usr / X11R6 / bin ddd $ daemon_directory / $ process_name $ process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = / usr / bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = / usr / share / man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = / usr / share / doc / postfix-2.10.1 / README_FILES ## DEFAULT CONFIG END ###################### # Numele serverului afișat numele gazdă myhostname = centos-test. .local # Aici n despre logică, trebuie să lăsați doar domeniul, dar în acest caz este mai bine să lăsați numele complet al serverului, astfel încât numele complet al serverului să apară în câmpul expeditor #, deci este mai convenabil să analizați serviciul mesaje mydomain = centos-test.xs.local mydestination = $ myhostname myorigin = $ mydomain # Adresa serverului prin care vom trimite mail relayhost = mailsrv.mymail.ru:25 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_auth_enable = yes smtp_sasl_password:_mapsl_ etc / postword / sasl_passwd smtp_sasl_security_options = smtp_sasl_security_options nu anonim = smtp_enable

Creați un fișier cu informații despre numele de utilizator și parola pentru autorizare.

# mcedit / etc / postfix / sasl_passwd mailsrv.mymail.ru:25 [email protected]: parola

Creați fișierul db.

# postmap / etc / postfix / sasl_passwd

Acum puteți reporni Postfix și verificați dacă funcționează.

# systemctl restart postfix

La alias-ul standard pentru root in / etc / aliasuri, adăugați o adresă externă unde e-mailul adresat către root va fi duplicat. Pentru a face acest lucru, editați fișierul specificat schimbând ultima linie.

#rădăcină: marc

Rădăcină: rădăcină, [email protected]

Actualizăm baza de certificate:

# newaliase

Să trimitem o scrisoare prin consolă către rădăcina locală:

# df -h | mail -s rădăcină „Utilizarea discului”.

Scrisoarea ar trebui să ajungă la o cutie poștală externă. Dacă utilizați o cutie poștală de la Yandex, cel mai probabil veți primi o eroare în jurnalul serverului de e-mail și scrisoarea nu va fi trimisă.

Releu = smtp.yandex.ru: 25, întârziere = 0,25, întârzieri = 0/0 / 0,24 / 0,01, dsn = 5.7.1, stare = respins (gazdă smtp.yandex.ru a spus: 553 5.7.1 Adresa expeditorului respinsă: nu este deținut de utilizatorul de auth. (ca răspuns la comanda MAIL FROM))

Această eroare înseamnă că nu aveți aceeași cutie poștală specificată ca expeditorul de e-mail pe care îl utilizați pentru autorizare. Cum să remediați acest lucru, vă voi spune într-un articol separat -. Cu alte sisteme de poștă în care nu există o astfel de verificare, totul ar trebui să fie bine și așa.

Aceasta completează configurarea e-mailului local. Acum toate scrisorile adresate rădăcinii locale, de exemplu, rapoartele de la cron, vor fi duplicate într-o cutie poștală externă și trimise printr-un server de e-mail cu drepturi depline. Deci e-mailurile vor fi livrate normal, fără a intra în spam (deși nu neapărat, există și filtre euristice).

Concluzie

Noi am finalizat câteva pașii inițiali pe configurarea serverului CentOS, ceea ce o fac de obicei când pregătesc serverul imediat după instalare. Nu pretind a fi un adevăr absolut, poate că îmi scăpa ceva sau nu o fac tocmai bine. Aș fi bucuros să am comentarii și sugestii rezonabile și semnificative.

..
  • Înțelegerea specificului implementării, configurării și întreținerii rețelelor bazate pe Linux.
  • Capacitatea de a rezolva rapid problemele emergente și de a asigura funcționarea stabilă și neîntreruptă a sistemului.
  • Testează-te la testul de admitere și vezi detaliile programului pe.

    Pentru a proteja serverul de amenințările externe, în primul rând, există un inter firewall care filtrează traficul de intrare și de ieșire. Vreau să mă ocup de configurarea iptables - un caz special de firewall pe CentOS în acest articol și, de asemenea, să vorbesc despre instalarea și dezactivarea acestuia. Ghidul meu nu va fi exhaustiv, voi lua în considerare doar acele aspecte pe care le consider cele mai importante și pe care le folosesc eu însumi în munca mea.

    Acest articol face parte dintr-o singură serie de articole despre server.

    Introducere

    Iptables este în prezent standardul de facto în mediul actual. distribuții Linux... Nici nu-mi amintesc imediat ce altceva este folosit ca firewall. Deci, orice administrator Linux trebuie să se ocupe de configurarea acestui firewall în munca sa.

    Există diferite legături pentru acest firewall, care sunt folosite pentru o configurație mai „convenabilă”. Ubuntu are ufw, în centos - firewalld, nu sunt familiarizat cu alții. Personal, nu văd nicio comoditate în utilizarea acestor instrumente. Sunt obișnuit să configurez un firewall Linux la modă veche, așa cum am învățat chiar de la început. Mi se pare că acesta este cel mai simplu și mai convenabil mod pe care îl voi împărtăși cu voi. Esența sa se rezumă la crearea unui script cu reguli de firewall. Acest script poate fi editat cu ușurință pentru a se potrivi nevoilor dumneavoastră și transferat de la server la server.

    Se dezactivează firewalld

    Am atins deja problema dezactivării firewalld în subiectul despre. În primul rând, dezactivați firewalld, care este prezent implicit în centos 7 imediat după instalare:

    # systemctl opri firewalld

    Acum să-l eliminăm de la pornire, astfel încât să nu se mai pornească după repornire:

    # systemctl dezactivează firewalld

    După aceea, setările firewall-ului de pe server devin complet deschise. Puteți vizualiza regulile iptables cu comanda:

    Instalarea iptables

    De fapt, firewall-ul de pe serverul nostru este deja activ și rulează, pur și simplu nu există reguli, totul este deschis. Va trebui să instalăm utilități suplimentare de management, fără de care este imposibil să configurați iptables. De exemplu, nu puteți reporni firewall-ul:

    # systemctl restart iptables.service A eșuat la lansarea apelului de metodă: Unitatea iptables.service a eșuat la încărcare: Nu există un astfel de fișier sau director.

    Sau adăugarea la autorun nu va funcționa:

    # systemctl enable iptables.service Nu s-a putut lansa apelul de metodă: Nu există un astfel de fișier sau director

    Pentru a evita astfel de erori, instalați pachetul necesar cu utilitare:

    # yum -y instalează iptables-services

    Acum puteți adăuga iptables la pornire și rulare:

    # systemctl enable iptables.service # systemctl start iptables.service

    Configurare firewall

    Folosesc un script pentru a gestiona regulile firewall. Să-l creăm:

    # mcedit /etc/iptables.sh

    În continuare, îl vom completa cu regulile necesare. Voi analiza toate părțile semnificative ale scenariului și Îl voi da complet în formă fisier text la finalul articolului... Regulile sunt făcute sub formă de imagini pentru a interzice copierea și lipirea. Acest lucru poate duce la erori în funcționarea regulilor, pe care le-am întâlnit eu în timpul pregătirii articolului.

    Vom lua în considerare situația când serverul este o poartă de acces la Internet pentru retea locala.

    În primul rând, vom seta toate variabilele pe care le vom folosi în script. Nu este necesar să faceți acest lucru, dar este recomandat pentru că este convenabil să transferați setările de la server la server. Va fi suficient doar să reatribuiți variabilele.

    Înainte de a aplica noile reguli, ștergem toate lanțurile:

    Blocăm tot traficul care nu se potrivește cu niciuna dintre reguli:

    Permitem tot traficul localhost și localhost:

    Permitem ping:

    Dacă nu aveți nevoie de acest lucru, atunci nu adăugați reguli de permis pentru icmp.

    Deschidem accesul la Internet pentru serverul însuși:

    Dacă doriți să deschideți toate conexiunile la server de intrare, adăugați o regulă în continuare:

    Acum să adăugăm protecție împotriva celor mai comune atacuri de rețea. Mai întâi, să aruncăm toate pachetele care nu au nicio stare:

    Blocarea pachetelor nule:

    Ne închidem de atacurile syn-flood:

    Dacă nu puneți restricții privind accesul din rețeaua locală, atunci permitem tuturor să acceseze Internetul:

    Apoi, refuzăm accesul de la Internet la rețeaua locală:

    Pentru a face rețeaua noastră locală să utilizeze Internetul, activați nat:

    Pentru a nu pierde accesul la server, după aplicarea regulilor, permitem conexiuni ssh:

    Și la sfârșit, notăm regulile, astfel încât acestea să se aplice după o repornire:

    Am compilat cea mai simplă configurație care blochează toate conexiunile de intrare, cu excepția ssh și permite accesul din rețeaua locală la Internet. Pe parcurs, ne-am apărat împotriva unor atacuri de rețea.

    Salvăm scriptul, îl facem executabil și rulăm:

    # chmod 0740 /etc/iptables.sh # /etc/iptables.sh

    Să revizuim regulile și să verificăm dacă toate regulile sunt în vigoare:

    # iptables -L -v -n

    Vă rugăm să rețineți că trebuie să aplicați regulile doar dacă aveți acces la consola serverului. Dacă faceți o greșeală în setări, este posibil să pierdeți accesul. Asigurați-vă că, în caz de urgență, puteți dezactiva firewall-ul și ajustați setările.

    Deschiderea portului

    Acum să ne extindem puțin configurația și să deschidem porturile pentru unele servicii din iptables. Să presupunem că avem un server web și trebuie să deschidem accesul la acesta de pe Internet. Adăugați reguli pentru traficul web:

    A fost adăugată permisiunea pentru conexiunile de intrare pe porturile 80 și 443, care sunt utilizate de server webîn munca lor.

    Dacă aveți un server de e-mail instalat, atunci trebuie să permiteți conexiunile de intrare la acesta pe toate porturile utilizate:

    Pentru ca serverul DNS să funcționeze corect, trebuie să deschideți portul UDP 53

    Port forwarding

    Să luăm în considerare o situație în care este necesar să redirecționăm porturile de la interfața externă către un computer din rețeaua locală. Să presupunem că trebuie să obțineți acces rdp la computerul 10.1.3.50 de pe internet. Redirecționăm portul TCP 3389:

    Dacă nu doriți să străluciți cu un port cunoscut în exterior, atunci puteți redirecționa de la un port non-standard către portul rdp al computerului țintă:

    Dacă redirecționați portul din exterior în interiorul rețelei locale, atunci asigurați-vă că comentați regula care blochează accesul de la rețeaua externă la cea internă. În exemplul meu, această regulă este: $ IPT -A FORWARD -i $ WAN -o $ LAN1 -j REJECT

    Sau, înainte de această regulă, creați o regulă de autorizare pentru accesul extern la serviciul intern, de exemplu, astfel:

    $ IPT -A FORWARD -i $ WAN -d 10.1.3.50 -p tcp -m tcp --dport 3389 -j ACCEPT

    Activarea jurnalelor

    În timpul configurării, este util să activăm jurnalele pentru a monitoriza pachetele blocate și a afla de ce nu există acces la serviciile necesare pe care se pare că le-am deschis deja. Trimit toate pachetele blocate în lanțuri separate (block_in, block_out, block_fw) corespunzătoare direcției de trafic și marchez fiecare direcție în jurnal. Este mai convenabil să faci debriefing în acest fel. Adăugați următoarele reguli la sfârșitul scriptului, înainte de a salva setările:

    Puteți urmări toate pachetele blocate în fișierul / var / log / mesaje.

    După ce ați terminat cu configurarea, comentați aceste rânduri dezactivând înregistrarea. Cu siguranță ar trebui să faceți acest lucru, deoarece buștenii cresc foarte repede. Personal, nu văd niciun sens practic în stocarea unor astfel de informații.

    Cum se dezactivează iptables

    Dacă decideți brusc că nu mai aveți nevoie de firewall, îl puteți dezactiva după cum urmează:

    # systemctl opri iptables.service

    Această comandă oprește firewall-ul. Și următorul se elimină de la pornire:

    # systemctl dezactivează iptables.service

    Dezactivând firewall-ul, am permis toate conexiunile.

    Concluzie

    După cum am promis, postez un script gata făcut cu setul principal de reguli pe care le-am luat în considerare.

    Încă o dată, aș dori să vă atrag atenția asupra faptului că trebuie să fiți extrem de atenți când configurați iptables. Nu începeți această afacere dacă nu aveți acces la consola serverului. Chiar și când scriam acest articol, am pierdut accesul la server din cauza unei erori ridicole în reguli. Această eroare a apărut din cauza copierii și a pierderii unei liniuțe duble - a fost înlocuită cu o singură liniuță.

    curs online „Administrator Linux” în OTUS. Cursul nu este pentru începători, pentru admitere aveți nevoie de cunoștințe de bază despre crearea de rețele și instalarea Linux pe o mașină virtuală. Training-ul durează 5 luni, după care absolvenții de succes ai cursului vor putea promova interviuri cu partenerii. Ce vă va oferi acest curs:

    • Cunoașterea arhitecturii Linux.
    • Stăpânirea metodelor și instrumentelor moderne de analiză și prelucrare a datelor.
    • Abilitatea de a selecta o configurație pentru sarcinile necesare, de a gestiona procesele și de a asigura securitatea sistemului.
    • Deținerea instrumentelor de lucru de bază ale administratorului de sistem.
    • Înțelegerea specificului implementării, configurării și întreținerii rețelelor bazate pe Linux.
    • Capacitatea de a rezolva rapid problemele emergente și de a asigura funcționarea stabilă și neîntreruptă a sistemului.
    Testează-te la testul de admitere și vezi detaliile programului pe.

    Instalat în sistem de operare Firewall este folosit pentru a preveni traficul neautorizat între retele de calculatoare... Regulile speciale pentru firewall sunt create manual sau automat, care sunt responsabile pentru controlul accesului. Sistemul de operare dezvoltat pe nucleul Linux, CentOS 7 are un firewall încorporat și este controlat de un firewall. În mod implicit, FirewallD este activat și am dori să vorbim despre configurarea lui astăzi.

    După cum am menționat mai sus, FirewallD este firewall-ul implicit în CentOS 7. De aceea, configurarea paravanului de protecție va fi luată în considerare folosind acest instrument ca exemplu. De asemenea, puteți seta reguli de filtrare folosind aceleași iptables, dar acest lucru se face într-un mod ușor diferit. Vă recomandăm să vă familiarizați cu configurația utilitarului menționat făcând clic pe următorul link și vom începe să analizăm FirewallD.

    Concepte de bază pentru firewall

    Există mai multe zone - seturi de reguli pentru controlul traficului pe baza încrederii în rețele. Tuturor acestora li se atribuie propriile politici, al căror agregat formează configurația firewall. Fiecărei zone îi sunt alocate una sau mai multe interfețe de rețea, ceea ce vă permite, de asemenea, să ajustați filtrarea. Regulile aplicate depind direct de interfața utilizată. De exemplu, atunci când este conectat la Wi-Fi public, paravanul de protecție va crește nivelul de control și va intra rețeaua de acasă va deschide acces suplimentar pentru membrii lanțului. Firewallul considerat conține următoarele zone:

    • de încredere - nivelul maxim de încredere pentru toate dispozitivele din rețea;
    • acasă - grup de rețea locală. Există încredere în mediu, dar conexiunile de intrare sunt disponibile numai pentru anumite mașini;
    • lucru - zona de lucru. Există încredere în majoritatea dispozitivelor și sunt activate servicii suplimentare;
    • dmz - zonă pentru calculatoare izolate. Aceste dispozitive sunt deconectate de la restul rețelei și permit doar un anumit trafic de intrare;
    • intern - zona rețelelor interne. Încrederea se aplică tuturor mașinilor, se deschid servicii suplimentare;
    • extern - invers față de zona anterioară. Pe rețelele externe, mascarea NAT este activă, închizând rețeaua internă dar fără blocarea accesului;
    • public - o zonă de rețele publice cu neîncredere în toate dispozitivele și recepția individuală a traficului de intrare;
    • blocare - toate cererile primite sunt eliminate, trimițând o eroare icmp-gazdă-interzis sau icmp6-adm-interzis;
    • drop - nivel minim de încredere. Conexiunile de intrare sunt abandonate fără nicio notificare.

    Politicienii înșiși sunt temporari și permanenți. Când parametrii apar sau sunt editați, acțiunea paravanului de protecție se schimbă imediat, fără a fi nevoie de o repornire. Dacă s-au aplicat reguli temporare, după repornirea FirewallD acestea vor fi resetate. Așa se numește o regulă permanentă - va fi salvată permanent atunci când se aplică argumentul -permanent.

    Activarea FirewallD

    Mai întâi trebuie să porniți FirewallD sau să vă asigurați că este activ. Doar un demon funcțional (un program care rulează în fundal) va aplica regulile pentru firewall. Activarea se face literalmente în câteva clicuri:

    1. Rulați clasic "Terminal" prin orice metodă convenabilă, de exemplu, prin meniu „Aplicații”.
    2. Introduceți comanda sudo systemctl start firewalld.service și apăsați tasta introduce.
    3. Utilitarul este gestionat în numele superutilizatorului, așa că va trebui să vă verificați identitatea prin specificarea unei parole.
    4. Pentru a verifica dacă serviciul funcționează, specificați firewall-cmd --state.
    5. Reautentificați-vă în fereastra grafică care se deschide.
    6. Va fi afișată o nouă linie. Sens "Alergare" indică faptul că firewall-ul funcționează.

    Dacă într-o zi trebuie să dezactivați temporar sau definitiv firewall-ul, vă sfătuim să utilizați instrucțiunile prezentate în celălalt articol al nostru de la următorul link.

    Vizualizarea regulilor implicite și a zonelor disponibile

    Chiar și un firewall care funcționează în mod normal are propriile reguli specifice și zone disponibile. Înainte de a începe editarea politicilor, vă recomandăm să vă familiarizați cu configurația curentă. Acest lucru se face folosind comenzi simple:

    1. Comanda firewall-cmd --get-default-zone vă va ajuta să determinați zona implicită.
    2. După activare, veți vedea linie nouă, unde este afișat parametrul necesar. De exemplu, în captura de ecran de mai jos, zona activă este "Public".
    3. Cu toate acestea, mai multe zone pot fi active simultan, în plus, sunt legate de o interfață separată. Aflați aceste informații prin firewall-cmd --get-active-zones.
    4. Comanda firewall-cmd --list-all va afișa regulile implicite pentru zonă. Aruncă o privire la captura de ecran de mai jos. Vedeți că zona activă "Public" regula atribuită "Mod implicit"- operare implicită, interfață "Enp0s3"și a adăugat două servicii.
    5. Dacă trebuie să cunoașteți toate zonele de firewall disponibile, introduceți firewall-cmd --get-zones.
    6. Parametrii unei anumite zone sunt definiți prin firewall-cmd --zone = nume --list-all, unde Nume- numele zonei.

    După determinarea parametrii necesari puteți trece la modificarea și adăugarea acestora. Să aruncăm o privire mai atentă la câteva dintre cele mai populare configurații.

    Configurarea zonelor de interfață

    După cum știți din informațiile de mai sus, fiecare interfață are propria sa zonă implicită. Acesta va rămâne în el până când setările sunt modificate de către utilizator sau în mod programatic. Transferul manual al interfeței în zonă pentru o sesiune este posibil și se realizează prin activarea comenzii sudo firewall-cmd --zone = home --change-interface = eth0. Rezultat "Succes" indică faptul că transferul a avut succes. Rețineți că astfel de setări sunt resetate imediat după repornirea firewall-ului.

    Cu o astfel de modificare a parametrilor, trebuie avut în vedere faptul că serviciile pot fi resetate. Unele dintre ele nu acceptă funcționarea în anumite zone, de exemplu, SSH, deși sunt disponibile în "Acasă", dar în mod personalizat sau special, serviciul va refuza să funcționeze. Puteți verifica dacă interfața a fost legată cu succes la noua ramură introducând firewall-cmd --get-active-zones.

    Dacă doriți să resetați setările pe care le-ați făcut mai devreme, trebuie doar să reporniți firewall-ul: sudo systemctl restart firewalld.service.

    Uneori nu este întotdeauna convenabil să schimbați zona interfeței pentru o singură sesiune. În acest caz, va trebui să editați fișierul de configurare, astfel încât toate setările să fie introduse permanent. Pentru aceasta vă recomandăm să utilizați un editor de text nano care este instalat din depozitul oficial sudo yum install nano. Apoi, rămâne să efectuați următoarele acțiuni:

    1. Deschideți fișierul de configurare printr-un editor introducând sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0, unde eth0- numele interfeței necesare.
    2. Confirmați autenticitatea cont pentru acțiuni ulterioare.
    3. Găsiți parametrul "ZONA"și schimbați-i valoarea în ceea ce doriți, de exemplu, public sau acasă.
    4. Țineți cheile Ctrl + O pentru a vă salva modificările.
    5. Nu schimbați numele fișierului, doar faceți clic pe introduce.
    6. Iesi din editor de text peste Ctrl + X.

    Acum, zona interfeței va fi așa cum ați specificat-o până la următoarea editare fișier de configurare... Pentru ca setările actualizate să aibă efect, rulați sudo systemctl restart network.service și sudo systemctl restart firewalld.service.

    Setarea zonei implicite

    Mai sus, am demonstrat deja o comandă care vă permite să aflați zona implicită. De asemenea, poate fi modificat prin setarea unui parametru la alegere. Pentru a face acest lucru, în consolă, trebuie doar să scrieți sudo firewall-cmd --set-default-zone = nume, unde Nume- denumirea zonei solicitate.

    Succesul comenzii va fi indicat prin inscripție "Succes" pe o linie separată. După aceea, toate interfețele curente vor fi legate la zona specificată, dacă nu este specificată alta în fișierele de configurare.

    Crearea de reguli pentru programe și utilitare

    Chiar la începutul articolului, am vorbit despre acțiunea fiecărei zone. Definirea serviciilor, utilităților și programelor din astfel de ramuri vă va permite să aplicați pentru fiecare dintre ele parametri individuali pentru solicitările fiecărui utilizator. Pentru a începe, vă recomandăm să vă familiarizați cu lista completă a serviciilor disponibile în prezent: firewall-cmd --get-services.

    Rezultatul va fi afișat direct în consolă. Fiecare server este separat printr-un spațiu, iar în listă puteți găsi cu ușurință instrumentul care vă interesează. Dacă serviciul necesar lipsește, trebuie instalat suplimentar. Citiți despre regulile de instalare în documentația oficială a software-ului.

    Comanda de mai sus arată doar numele serviciilor. Informatii detaliate pentru fiecare dintre ele se obține printr-un fișier individual situat în calea /usr/lib/firewalld/services. Astfel de documente sunt în format XML, calea, de exemplu, către SSH arată astfel: /usr/lib/firewalld/services/ssh.xml, iar documentul are următorul conținut:

    SSH
    Secure Shell (SSH) este un protocol pentru autentificarea și executarea comenzilor pe mașini la distanță. Oferă comunicații criptate securizate. Dacă intenționați să vă accesați mașina de la distanță prin SSH printr-o interfață cu firewall, activați această opțiune. Aveți nevoie de pachetul openssh-server instalat pentru ca această opțiune să fie utilă.

    Asistența de service este activată manual într-o anumită zonă. V "Terminal" comanda sudo firewall-cmd --zone = public --add-service = http, unde --zone = public- zona de activare, și --add-service = http- numele serviciului. Vă rugăm să rețineți că o astfel de modificare va fi valabilă doar într-o singură sesiune.

    Adăugarea permanentă se face prin sudo firewall-cmd --zone = public --permanent --add-service = http, iar rezultatul "Succes" indică finalizarea cu succes a operațiunii.

    Vedere lista plina regulile permanente pentru o anumită zonă pot fi afișate prin afișarea listei într-o linie separată a consolei: sudo firewall-cmd --zone = public --permanent --list-services.

    Rezolvarea problemei cu lipsa accesului la serviciu

    În mod implicit, cel mai popular și servicii securizate după cum este permis, totuși unele standard sau aplicații terță parte se blochează. În acest caz, utilizatorul va trebui să modifice manual setările pentru a rezolva problema de acces. Acest lucru se poate face în două moduri diferite.

    Port forwarding

    După cum știți, toate serviciile de rețea folosesc un anumit port. Este ușor de detectat de un firewall și pot fi efectuate blocări asupra acestuia. Pentru a evita astfel de acțiuni din partea firewall-ului, trebuie să deschideți portul necesar cu comanda sudo firewall-cmd --zone = public --add-port = 0000 / tcp, unde --zone = public- zona portuara, --add-port = 0000 / tcp- numărul portului și protocolul. Firewall-cmd --list-ports va afișa o listă de porturi deschise.

    Dacă trebuie să deschideți porturi care se află în interval, utilizați linia sudo firewall-cmd --zone = public --add-port = 0000-9999 / udp, unde --add-port = 0000-9999 / udp- o serie de porturi și protocolul acestora.

    Comenzile de mai sus vă vor permite doar să testați aplicarea unor astfel de parametri. Dacă a avut succes, ar trebui să adăugați aceleași porturi la setările permanente, iar acest lucru se face introducând sudo firewall-cmd --zone = public --permanent --add-port = 0000 / tcp sau sudo firewall-cmd -- zone = public --permanent --add-port = 0000-9999 / udp. Lista de porturi permanente deschise este vizualizată astfel: sudo firewall-cmd --zone = public --permanent --list-ports.

    Definirea serviciului

    După cum puteți vedea, adăugarea de porturi este simplă, dar procedura devine mai complicată atunci când se utilizează un număr mare de aplicații. Devine dificil să urmăriți toate porturile în uz, motiv pentru care ar fi mai corect să definiți un serviciu:


    Trebuie doar să alegeți cea mai potrivită metodă pentru rezolvarea problemei de acces la serviciu și să urmați instrucțiunile furnizate. După cum puteți vedea, toate acțiunile sunt efectuate destul de ușor și nu ar trebui să apară dificultăți.

    Crearea de zone personalizate

    Știți deja că inițial FirewallD a creat un număr mare de zone diferite cu anumite reguli. Cu toate acestea, există situații când administrator de sistem doriți să creați o zonă personalizată, cum ar fi „Publicweb” pentru un server web instalat sau „PrivateDNS”- pentru serverul DNS. Folosind aceste două exemple, vom analiza adăugarea de ramuri:


    În acest articol, ați învățat cum să creați zone personalizateși adăugați-le servicii. Am vorbit deja despre setarea lor implicită și atribuirea interfețelor, trebuie doar să specificați numele corecte. Nu uitați să reporniți firewall-ul după ce faceți modificări permanente.

    După cum puteți vedea, firewall-ul FirewallD este un instrument destul de voluminos care vă permite să realizați cea mai flexibilă configurație de firewall. Rămâne doar să vă asigurați că utilitarul este lansat împreună cu sistemul și că regulile specificate își încep imediat activitatea. Faceți acest lucru cu comanda sudo systemctl enable firewalld.

    Începând cu CentoOS 7, a fost adăugat un nou instrument pentru a configura regulile de filtrare a traficului firewalld... Este recomandat să îl utilizați pentru a gestiona regulile iptables. CentOS 8 folosește acum cadrul nftables în loc de pachetul implicit de filtrare iptables, iar când configurați regulile firewall prin firewalld, configurați de fapt nftables. În acest articol, vă vom ghida prin instalarea, conceptele de bază și configurarea firewalld pe un server care rulează CentOS 8 (în CentOS 7, totul este la fel).


    FirewallD- Firewall pentru a proteja serverul de traficul nedorit cu suport pentru gestionarea dinamică a regulilor (fără repornire) și implementarea regulilor de firewall persistente. Funcționează ca un frontend pentru ambele nftables. FirewallD poate fi folosit în aproape toate distribuțiile Linux.

    Concepte, zone și reguli de bază pentru firewall

    Înainte de a continua cu instalarea și configurarea firewalld, ne vom familiariza cu conceptul de zone, care sunt folosite pentru a determina nivelul de încredere pentru diverse conexiuni. Pentru zone diferite firewalld puteți aplica diferite reguli de filtrare, puteți specifica opțiunile de firewall active sub formă de servicii predefinite, protocoale și porturi, redirecționare porturi și reguli bogate.

    Firewalld filtrează traficul de intrare pe zone în funcție de regulile aplicate zonei. Dacă IP- adresa expeditorului cererii se potrivește cu regulile oricărei zone, apoi pachetul va fi trimis prin această zonă. Dacă adresa nu se potrivește cu niciuna dintre zonele configurate pe server, pachetul va fi procesat de zona implicită. La instalare firewalld se numește zona implicită public.

    Există zone în firewalld unde permisiunile pentru diferite servicii sunt deja preconfigurate. Puteți utiliza aceste setări sau puteți crea propriile zone. Lista zonelor implicite care sunt create atunci când este instalat firewalld (stocate în directorul / usr / lib / firewalld / zones /):

    cădere brusca nivel minim de încredere. Toate conexiunile de intrare sunt blocate fără un răspuns, sunt permise doar conexiunile de ieșire;
    bloc zona este similară cu cea anterioară, dar când cererile primite sunt refuzate, este trimis mesajul icmp-host-prohibited pentru Ipv4 sau icmp6-adm-prohibited pentru Ipv6;
    public reprezintă rețele publice, nesigure. Puteți permite conexiuni de intrare selectate în mod individual;
    extern rețele externe atunci când utilizați un firewall ca gateway. Este configurat pentru a masca NAT, astfel încât rețeaua dumneavoastră internă rămâne privată, dar accesibilă;
    intern antonimul zonei externe. Gazda are un nivel suficient de încredere, sunt disponibile o serie de servicii suplimentare;
    dmz utilizat pentru calculatoarele situate în DMZ (calculatoare izolate, fără acces la restul rețelei). Sunt permise doar anumite conexiuni de intrare;
    muncă zonă pentru mașini de lucru (majoritatea calculatoarelor din rețea sunt de încredere);
    Acasă zona rețelei de domiciliu. Majoritatea computerelor pot fi de încredere, dar sunt acceptate doar anumite conexiuni de intrare;
    de încredere ai încredere în toate mașinile din rețea. Cel mai deschis dintre toate Optiuni Disponibile, necesită o utilizare conștientă.

    V firewalld sunt utilizate două seturi de reguli - permanente și temporare. Regulile temporare funcționează până când serverul este repornit. În mod implicit, atunci când adăugați reguli la firewalld, regulile sunt considerate temporare ( timpul de rulare). Pentru a adăuga o regulă permanent, trebuie să utilizați steag - permanentă... Astfel de reguli vor fi aplicate după repornirea serverului.

    Instalarea și activarea firewalld pe CentOS

    Pe CentOS 7/8, firewalld este instalat implicit pe sistemul de operare. Dacă l-ați eliminat și doriți să instalați firewalld, puteți utiliza managerul standard / dnf:

    # yum install firewalld -y - pentru Centos 7
    # dnf install firewalld -y - pentru Centos 8

    Pentru un demon firewalld pornit automat la pornirea serverului, trebuie să îl adăugați la:

    # systemctl activa firewalld

    Și fugi:

    # systemctl porni firewalld

    Verificați starea serviciului:

    # systemctl stare firewalld

    ● firewalld.service - firewalld - daemon firewall dinamic Încărcat: încărcat (/usr/lib/systemd/system/firewalld.service; activat; prestabilit furnizor: activat) Activ: activ (în rulare) de luni 14-10-2019 14:54 : 40 +06; acum 22 de secunde Documente: om: firewalld (1) PID principal: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 / usr / bin / python2 -Es / usr / sbin / firewalld --nofork --nopid 14 oct 14:54:40 server.vpn.ru systemd: Pornește firewalld - demon firewall dinamic ... 14 oct 14:54:40 server.vpn.ru systemd: Pornire firewalld - daemon firewall dinamic.

    Sau cu comanda:

    # firewall-cmd --state

    Comanda firewall-cmd este interfața firewalld pentru nftables / iptables.

    # firewall-cmd --state

    Lucrul cu reguli firewalld

    Reguli implicite:

    Înainte de a configura regulile firewalld, trebuie să verificați care zonă este utilizată implicit:

    # firewall-cmd --get-default-zone

    Deoarece tocmai am instalat firewalld și nu l-am configurat încă, avem o zonă implicită public.

    Să verificăm zona activă. Ea este, de asemenea, una - publică:

    # firewall-cmd --get-active-zones

    Interfețe publice: eth0

    După cum puteți vedea, interfața de rețea eth0 este controlată de zonă public.

    Pentru a vedea regulile de bază, introduceți:

    # firewall-cmd --list-all

    Țintă publică (activă): implicit icmp-block-inversion: fără interfețe: eth0 surse: servicii: dhcpv6-client ssh ports: protocoale: masquerade: fără forward-ports: source-ports: icmp-blocks: reguli bogate:

    Lista arată că în această zonă a adăugat client DHCP normal și operațiuni legate de ssh.

    Zone disponibile

    Pentru a vizualiza o listă a tuturor zonelor, trebuie să rulați comanda:

    # firewall-cmd --get-zones

    Am ajuns cu o listă ca aceasta:

    Blocați dmz drop extern acasă intern public de încredere lucrare

    Pentru a verifica regulile pentru o anumită zonă, trebuie să adăugați steag-ul zonei.

    # firewall-cmd --zone = home --list-all

    Țintă principală: implicit icmp-block-inversion: fără interfețe: surse: servicii: dhcpv6-client mdns samba-client porturi ssh: protocoale: masquerade: fără porturi forward: porturi sursă: icmp-blocks: reguli bogate:

    Regulile pentru toate zonele pot fi vizualizate cu comanda:

    # firewall-cmd --list-all-zones

    Lista va fi destul de mare, deoarece pot exista multe zone.

    Schimbați zona implicită.

    În mod implicit, toate interfețele de rețea sunt situate în public, dar pot fi transferate în oricare dintre zone cu comanda:

    # firewall-cmd --zone = home -change-interface = eth0

    După parametru —Zonă = specificați zona dorită.

    Pentru a schimba zona implicită, trebuie să utilizați comanda:

    # firewall-cmd --set-default-zone = home

    Adăugarea de reguli pentru aplicații

    Pentru a deschide un port pentru o aplicație, puteți adăuga un serviciu la excepții. Listă servicii disponibile:

    Ieșirea va conține un număr mare de servicii. informatii detaliate serviciul este cuprins în sa xml fişier. Aceste fișiere se află în director / usr / lib / firewalld / servicii.

    De exemplu:

    # cd / usr / lib / firewalld / servicii

    Mail (SMTP) Această opțiune permite livrarea e-mailurilor SMTP de intrare. Dacă trebuie să permiteți gazdelor de la distanță să se conecteze direct la aparatul dvs. pentru a livra e-mail, activați această opțiune. Nu trebuie să activați acest lucru dacă colectați e-mailurile de pe serverul ISP-ului dvs. prin POP3 sau IMAP sau dacă utilizați un instrument precum fetchmail. Rețineți că un server SMTP configurat necorespunzător poate permite mașinilor la distanță să utilizeze serverul dvs. pentru a trimite spam.

    Fișierul XML conține o descriere a serviciului, un protocol și un număr de port care vor fi deschise în firewalld.

    Când adăugați reguli, puteți utiliza parametrul — Serviciu suplimentar pentru a deschide accesul la un anumit serviciu:

    # firewall-cmd --zone = public --add-service = http

    # firewall-cmd --zone = public --add-service = https

    După adăugarea regulilor, puteți verifica dacă serviciile au fost adăugate în zona specificată:

    # firewall-cmd --zone = public --list-services

    Dhcpv6-client http https ssh

    Dacă doriți să faceți aceste reguli permanente, trebuie să adăugați parametrul atunci când adăugați -Permanent.

    Pentru a elimina un serviciu dintr-o zonă:

    # firewall-cmd --permanent --zone = public --remove-service = http

    Dhcpv6-client https test ssh

    Dacă doriți să adăugați serviciul dvs. la excepții, puteți crea un fișier xml pe tine însuți și completează-l. Puteți copia datele din orice serviciu, puteți schimba numele, descrierea și numărul portului.

    Copiați fișierul smtp.xmlîn directorul pentru lucrul cu serviciile utilizatorului:

    # cp /usr/lib/firewalld/services/smtp.xml / etc / firewalld / services

    Modificați descrierea serviciului în fișier.

    Eu insumi fișier xml de asemenea, trebuie redenumit în funcție de numele serviciului dvs. După aceea, trebuie să reporniți firewalld și să verificați dacă serviciul nostru este pe listă:

    Am numit serviciul Test si a aparut pe lista:

    Syslog-tls telnet test tftp

    Acum puteți adăuga serviciul creat în orice zonă:

    # firewall-cmd --zone = public --add-service = test --permanent

    # firewall-cmd --zone = public --permanent --list-services

    Dhcpv6-client http https ssh test

    Dacă nu puteți găsi serviciul de care aveți nevoie în listă, puteți deschide portul necesar pe firewalld cu comanda:

    # firewall-cmd --zone = public -add-port = 77 / tcp - portul deschis 77 tcp
    # firewall-cmd --zone = public -add-port = 77 / udp - portul deschis 77 udp
    # firewall-cmd --zone = public -add-port = 77-88 / udp - deschideți intervalul de porturi 77-88 udp
    # firewall-cmd --zone = public -list-ports - verifica lista de porturi permise

    Blocați/Permiteți răspunsurile ICMP:

    # firewall-cmd --zone = public --add-icmp-block = echo-reply
    # firewall-cmd --zone = public --remove-icmp-block = ecou-reply

    Eliminați portul adăugat:

    # firewall-cmd --zone = public -remove-port = 77 / udp - eliminați regula temporară 77 udp

    # firewall-cmd --permanent --zone = public -remove-port = 77 / udp - eliminați regula permanentă

    Adăugarea propriilor zone

    Vă puteți crea propria zonă (o voi numi al nostru):

    # firewall-cmd --permanent --new-zone = our

    După crearea unei noi zone, precum și după crearea unui serviciu, este necesară o repornire firewalld:

    # firewall-cmd --reload

    # firewall-cmd --get-zones

    Blocați dmz drop extern acasă intern munca noastră publică de încredere

    Zona al nostru disponibil. Puteți adăuga servicii la acesta sau deschide porturi specifice.

    Firewalld: blocați adresele IP, aruncați excepții

    Puteți adăuga adrese IP de încredere la excepțiile firewall sau le puteți bloca pe cele nedorite.

    Pentru a adăuga un anume adresa IP(de exemplu 8.8.8.8) pe serverul dvs. prin firewalld, utilizați comanda:

    # firewall-cmd --zone = public --add-rich-rule = "rule family =" ipv4 "source address =" 8.8.8.8 "accept"

    Verificați zona și asigurați-vă IP adăugat la excepții în regulile bogate:

    Țintă publică (activă): implicit icmp-block-inversion: fără interfețe: eth0 surse: servicii: dhcpv6-client http https porturi de testare ssh: protocoale: masquerade: fără porturi forward: porturi sursă: icmp-blocks: reguli bogate: familie de reguli = "ipv4" adresa sursă = "8.8.8.8" accept

    A bloca IP, trebuie înlocuit Accept pe respinge:

    # firewall-cmd --zone = public --add-rich-rule = "rule family =" ipv4 "source address =" 8.8.4.4 "reject"

    # firewall-cmd --zone = public --list-all

    Țintă publică (activă): implicit icmp-block-inversion: fără interfețe: eth0 surse: servicii: dhcpv6-client http https porturi de testare ssh: protocoale: masquerade: fără porturi forward: porturi sursă: icmp-blocks: reguli bogate: familie de reguli = "ipv4" adresa sursă = "8.8.8.8" acceptare familie de reguli = "ipv4" adresa sursă = "8.8.4.4" respingere

    Puteți permite un anumit serviciu numai pentru solicitările de la o anumită adresă IP:

    # firewall-cmd --permanent --add-rich-rule "rule family =" ipv4 "source address =" 10.10.1.0/24 "service name =" https "accept"

    Dacă aveți nevoie urgent să blocați toate cererile către server, utilizați comanda de panică:

    # firewall-cmd --panic-on

    Puteți dezactiva modul de panică fie cu comanda:

    # firewall-cmd --panic-off

    Sau repornind serverul.

    Puteți bloca configurația firewalld, astfel încât serviciile locale cu ca rădăcină nu a putut modifica regulile de firewall pe care le-ați creat:

    # firewall-cmd --lockdown-on

    Dezactivați modul de blocare:

    # firewall-cmd --lockdown-off

    Redirecționare porturi în firewalld

    Puteți crea o regulă de redirecționare a portului în firewalld. Pentru a redirecționa portul 443 la 9090:

    # firewall-cmd --zone = public --add-forward-port = port = 443: proto = tcp: toport = 9090 --permanent

    Pentru a elimina o regulă de redirecționare a porturilor:

    # firewall-cmd --zone = public --remove-forward-port = port = 443: proto = tcp: toport = 9090

    Vă vom arăta configurare pas cu pas firewall Firewalld pe CentOS 7

    Ce este Firewalld? Acesta este un firewall complet care este disponibil implicit pe CentOS 7. Vă vom arăta cum să-l configurați pe server și, de asemenea, vă vom ghida prin instrumentul firewall-cmd.

    1. Care sunt conceptele de bază ale unui firewall?

    Zonele

    Firewalld este capabil să gestioneze grupuri de reguli prin zone. Este un set de instrucțiuni pentru gestionarea traficului bazat pe încredere în rețele. O zonă poate fi atribuită unei interfețe de rețea pentru a controla comportamentul firewall-ului. Acest lucru este necesar deoarece laptopurile se pot conecta adesea la rețele diferite. Calculatoarele pot folosi zone pentru a schimba setul de reguli în funcție de mediul lor. De exemplu, dacă vă conectați la Wi-Fi într-o cafenea, puteți aplica reguli mai stricte. Și acasă, regulile pot fi mai loiale.

    În Firewalld se disting următoarele zone:

    Drop are cea mai scăzută încredere în rețea. În acest caz, sunt acceptate numai conexiunile de ieșire, iar traficul de intrare este eliminat fără răspuns;

    Block diferă de drop prin faptul că, atunci când cererea de intrare este abandonată, este emis mesajul icmp-host-prohibited sau icmp6-adm-prohibited;

    Zona publică este o rețea publică care menține individual cererile primite. Cu toate acestea, nu poți avea încredere în ea;

    Externă este o zonă de rețea externă care acceptă mascarea NAT pentru a menține rețeaua internă închisă. Cu toate acestea, poate fi accesat;

    Dezavantajul extern este intern. Calculatoarele din această zonă pot fi de încredere, deci vor fi disponibile servicii suplimentare;

    Zona dmz este utilă pentru calculatoarele izolate care nu au acces la restul rețelei. În acest caz, veți putea configura conexiunile preferate de intrare;

    Zona de rețea de lucru este de lucru. Puteți avea încredere în mediul din acesta, dar nu sunt acceptate toate conexiunile de intrare, ci doar cele definite de utilizator;

    Toate computerele din rețea pot fi de încredere în zona de încredere.

    Reguli de salvare

    În Firewalld, acestea sunt temporare și permanente. Se întâmplă ca setul să se schimbe sau să apară o regulă care afectează comportamentul firewall-ului. Modificările se vor pierde după repornire, așa că trebuie să le salvați. Comenzile firewall-cmd folosesc indicatorul -permanent pentru a salva regulile. După aceea, le veți putea folosi în mod continuu.

    2. Cum activez firewall-ul Firewalld?

    Un loc bun pentru a începe este rularea unui program daemon în fundal. Fișierul unitar systemd se numește firewalld.service. pentru a activa programul daemon, trebuie Linie de comanda formați:

    Sudo systemctl porni firewalld.service

    Trebuie să ne asigurăm că serviciul a început. Pentru aceasta vei avea nevoie de:

    Firewall-cmd --state rulează

    Firewall-ul a pornit și instrucțiunile implicite funcționează. Rețineți că serviciul este activat, dar nu va porni automat cu serverul. Pentru a face acest lucru, trebuie să configurați autorun-ul. De asemenea, faceți un set de reguli, astfel încât să nu vă blocați pe propriul server.

    3. Reguli de firewall implicite

    Cum le pot vedea?

    Pentru a vizualiza zona implicită, tastați:

    Firewall-cmd --get-default-zone public

    Vedem că Firewalld nu a primit instrucțiuni cu privire la alte zone. Public este folosit implicit și este singura zonă activă, deoarece nicio interfață nu se leagă de alții. Dacă doriți să vedeți o listă cu toate zonele de domeniu disponibile, atunci specificați în consolă:

    Firewall-cmd --get-active-zones interfețe publice: eth0 eth1

    Vedem două interfețe de rețea legate de zona publică. Ele funcționează conform regulilor specificate pentru această zonă. Puteți vedea regulile implicite prin:

    Firewall-cmd --list-all public (implicit, activ) interfețe: eth0 eth1 surse: servicii: dhcpv6-client porturi ssh: masquerade: fără porturi forward: icmp-blocks: reguli bogate:

    Să rezumăm:

    Zona implicită și singura activă este publică;

    Două interfețe sunt legate de această zonă: eth0 și eth1;

    Public acceptă administrarea SSH la distanță, precum și atribuirea IP DHSP.

    Alte zone de firewall

    Să vedem ce alte zone are firewall-ul. Pentru a vedea o listă cu toate cele disponibile, tastați în consolă:

    De asemenea, puteți obține parametrii pentru fiecare zonă specifică adăugând -zone = steag:

    Firewall-cmd --zone = home --list-all interfețele de acasă: surse: servicii: dhcpv6-client ipp-client mdns samba-client porturi ssh: masquerade: fără porturi forward: icmp-blocks: reguli bogate:

    Dacă doriți să enumerați definițiile tuturor zonelor disponibile, utilizați opțiunea --list-all-zones. Să transmitem rezultatul către paginator pentru a facilita vizualizarea rezultatului:

    Firewall-cmd --list-all-zones | Mai puțin

    4. Cum configurez zonele front-end?

    Toate interfețele de rețea sunt inițial legate la zona implicită.

    Schimbarea zonei de interfață pentru o singură sesiune

    În acest scop, avem nevoie de două opțiuni: —change-interface = și —zone =. Pentru a transfera în zona eth0 de acasă, tastați:

    Sudo firewall-cmd --zone = home --change-interface = succes eth0

    Vă rugăm să rețineți că acest lucru poate afecta funcționarea anumitor servicii. De exemplu, SSH este acceptat în zona de domiciliu, de exemplu. conexiunile nu vor fi întrerupte. Cu toate acestea, acest lucru se poate întâmpla în alte zone, ceea ce va duce la blocarea accesului la propriul server. Trebuie să ne asigurăm că interfața este atașată la noua zonă. La promptul de comandă, tastați:

    Când firewall-ul este repornit, interfața se va lega din nou la zona implicită.

    Sudo systemctl restart firewalld.service firewall-cmd --get-active-zones interfețe publice: eth0 eth1

    Schimbarea zonei de interfață în mod continuu

    După repornirea paravanului de protecție, noua interfață va fi legată de zona implicită dacă nu este specificată nicio altă zonă în setările interfeței. Configurațiile din CentOS sunt localizate în fișiere cu formatul ifcfg-interfață în directorul / etc / sysconfig / network-scripts. Pentru a defini zona interfeței, trebuie să deschideți fișierul său de configurare:

    Sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0

    Adăugați variabila ZONE = la sfârșitul fișierului. Să setăm o altă zonă ca valoare:

    DNS1 = 2001: 4860: 4860 :: 8844 DNS2 = 2001: 4860: 4860 :: 8888 DNS3 = 8.8.8.8 ZONA = acasă

    Acum să salvăm modificările, după care fișierul poate fi închis. Este necesară o repornire pentru a actualiza setările serviciu de rețea precum și firewall:

    Sudo systemctl restart network.service sudo systemctl restart firewalld.service

    După aceea, interfața eth0 va fi legată de zona de acasă.

    Firewall-cmd --get-active-zones interfețe de acasă: eth0 interfețe publice: eth1

    Configurarea zonelor implicite

    De asemenea, poate fi setată o zonă implicită diferită. Opțiunea --set-default-zone = ne va ajuta în acest sens, care leagă toate interfețele de rețea la o altă zonă.

    Sudo firewall-cmd --set-default-zone = interfețe de acasă de acasă: eth0 eth1

    5. Cum se creează reguli pentru aplicații?

    Adăugarea zonei de servicii

    Acest lucru este cel mai ușor de făcut pe un port folosit de un firewall. Pentru a vedea toate serviciile disponibile, tastați în linia de comandă:

    Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps mountls libvirt md-virt- wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmisie-client vnc-server wbem-https

    Amintiți-vă că fișierele .xml din directorul / usr / lib / firewalld / services stochează toate informațiile despre fiecare serviciu. Informații despre SSH pot fi găsite în /usr/lib/firewalld/services/ssh.xml. Arata asa:

    Pentru a activa suportul pentru servicii în zone, aveți nevoie de indicatorul -add-service =, dar opțiunea -zone este utilă pentru setarea zonei țintă. Rețineți că astfel de modificări vor fi valabile doar pentru o singură sesiune. Dacă trebuie să salvați modificările pentru utilizare ulterioară, utilizați marcajul -permanent. Să vedem cum funcționează. Să pornim un server web, astfel încât să poată servi traficul HTTP. Să activăm suportul pentru o sesiune în zona publică. Tastați în consolă:

    Sudo firewall-cmd --zone = public --add-service = http

    Nu utilizați opțiunea -zone = dacă adăugați serviciul în zona implicită. Să verificăm dacă totul a funcționat:

    Firewall-cmd --zone = public --list-services dhcpv6-client http ssh

    Acum trebuie să testați funcționarea paravanului de protecție și a serviciului în sine. Dacă vedeți că totul este în ordine, puteți schimba în siguranță setul constant de reguli. Pentru a adăuga o regulă pentru a sprijini un nou serviciu, trebuie să specificați în consolă:

    Sudo firewall-cmd --zone = public --permanent --add-service = http

    Dacă doriți să vedeți întreaga listă de reguli care sunt în vigoare în mod continuu, atunci:

    Sudo firewall-cmd --zone = public --permanent --list-services dhcpv6-client http ssh

    Drept urmare, zona publică va avea suport pentru portul 80 și HTTP. În cazul în care serverul dvs. este capabil să deservească trafic SSL / TLS, puteți adăuga serviciul HTTPS:

    Sudo firewall-cmd --zone = public --add-service = https sudo firewall-cmd --zone = public --permanent --add-service = https

    6. Ce se întâmplă dacă serviciul nu este disponibil?

    Firewalld include în mod implicit multe servicii populare. Dar se întâmplă că programele au nevoie de alte servicii care nu sunt în firewall. Această problemă poate fi rezolvată în câteva moduri.

    Metoda # 1: Definirea unui serviciu

    Adăugarea unui port la o zonă este destul de ușoară. Cu toate acestea, dacă există o mulțime de aplicații, va fi dificil de înțeles care port îl folosește pe care. Într-o astfel de situație, definirea serviciilor în loc de porturi este o opțiune bună. În esență, un serviciu este un grup de porturi cărora li s-a dat un nume și o descriere. Cu ajutorul lor, va fi mai ușor să gestionați setările. Dar serviciul este ceva mai complex decât portul.

    Să începem prin a copia scriptul existent din folderul / usr / lib / firewalld / services, din care firewall-ul preia setări non-standard în / etc / firewalld / services. Să copiem definiția serviciului SSH pentru a o folosi ca exemplu de definiție a serviciului condiționat. Nu uitați că numele scriptului trebuie să se potrivească cu numele serviciului și să aibă și extensia de fișier .xml. Tastați în consolă:

    Sudo cp /usr/lib/firewalld/services/service.xml /etc/firewalld/services/example.xml

    Acum trebuie să editați fișierul compilat:

    Sudo nano /etc/firewalld/services/example.xml

    Înăuntru este definiția SSH:

    SSH Secure Shell (SSH) este un protocol pentru conectarea și executarea comenzilor pe mașini la distanță. Oferă comunicații criptate securizate. Dacă intenționați să vă accesați mașina de la distanță prin SSH printr-o interfață cu firewall, activați această opțiune. Aveți nevoie de pachetul openssh-server instalat pentru ca această opțiune să fie utilă.

    Acum să salvăm modificările și să închidem fișierul. După aceea, va trebui să reporniți firewall-ul cu:

    Sudo firewall-cmd --reload

    Al nostru va apărea în lista de servicii disponibile:

    Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns exemplu ftp high-availability http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt m libvirt-m libvirt -wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transmisie-client vnc-server wbem-

    Metoda numărul 2: crearea unui port

    Să deschidem portul aplicației în zona de firewall necesară și să îl indicăm, precum și protocolul. Imaginați-vă o situație în care trebuie să adăugați în zona publică un program folosind protocolul TCP și portul 5000. Pentru a activa suportul aplicației pentru o sesiune, aveți nevoie de opțiunea -add-port =. În plus, trebuie să specificați protocolul tcp sau udp:

    Sudo firewall-cmd --zone = public --add-port = 5000 / tcp

    Să ne asigurăm că totul a funcționat:

    Firewall-cmd --list-ports 5000 / tcp

    În plus, este posibil să specificați o gamă de porturi folosind o liniuță. De exemplu, dacă programul folosește porturile 4990-4999, atunci adăugarea acestora în zona publică se va face prin:

    Sudo firewall-cmd --zone = public --add-port = 4990-4999 / udp

    Dacă totul funcționează bine, adăugați instrucțiuni la setările firewallului:

    Sudo firewall-cmd --zone = public --permanent --add-port = 5000 / tcp sudo firewall-cmd --zone = public --permanent --add-port = 4990-4999 / udp sudo firewall-cmd - zone = public --permanent --list-ports succes succes 4990-4999 / udp 5000 / tcp

    7. Cum se creează o zonă?

    Firewall-ul este capabil să ofere diferite zone predefinite, care sunt de obicei suficiente pentru lucru, dar uneori trebuie să vă creați propria zonă personalizată. De exemplu, un server DNS are nevoie de o zonă privateDNS, iar un server web are nevoie de o zonă publicweb. După crearea zonelor, trebuie să o adăugați la setările firewall-ului. Creați zonele publicweb și privateDNS tastând în consolă:

    Sudo firewall-cmd --permanent --new-zone = publicweb sudo firewall-cmd --permanent --new-zone = privateDNS

    Să verificăm dacă totul a funcționat:

    Sudo firewall-cmd --permanent --get-zones block dmz drop extern home intern privateDNS public publicweb lucru de încredere

    Firewall-cmd --get-zones block dmz drop extern acasă intern public de încredere lucru

    Cu toate acestea, zonele noi din sesiunea curentă nu vor fi disponibile:

    Firewall-cmd --get-zones block dmz drop extern acasă intern public de încredere lucru

    Să repornim firewall-ul pentru a avea acces la noile zone:

    Sudo firewall-cmd --reload firewall-cmd --get-zones block dmz drop extern home intern privateDNS public publicweb lucru de încredere

    Acum va fi posibil ca noile zone să definească porturi și servicii. Să presupunem că este nevoie să adăugați SSH, HTTP și HTTPS în zona publicweb:

    Sudo firewall-cmd --zone = publicweb --add-service = ssh sudo firewall-cmd --zone = publicweb --add-service = http sudo firewall-cmd --zone = publicweb --add-service = https firewall- cmd --zone = publicweb --list-all publicweb interfețe: surse: servicii: http https porturi ssh: masquerade: fără porturi forward: icmp-blocks: reguli bogate:

    În plus, va fi posibil să adăugați DNS în zona privateDNS prin:

    Sudo firewall-cmd --zone = privateDNS --add-service = dns firewall-cmd --zone = privateDNS --list-all privateDNS interfețe: surse: servicii: dns porturi: masquerade: fără porturi forward: icmp-blocks: reguli bogate:

    După aceea, puteți lega în siguranță interfețele de rețea de zone noi:

    Sudo firewall-cmd --zone = publicweb --change-interface = eth0 sudo firewall-cmd --zone = privateDNS --change-interface = eth1

    Verificați dacă setările funcționează. Dacă totul este în regulă, adăugați-le la reguli persistente:

    Sudo firewall-cmd --zone = publicweb --permanent --add-service = ssh sudo firewall-cmd --zone = publicweb --permanent --add-service = http sudo firewall-cmd --zone = publicweb --permanent --add-service = https sudo firewall-cmd --zone = privateDNS --permanent --add-service = dns

    Acum să trecem la configurarea interfețelor de rețea. Acest lucru este necesar pentru a vă conecta automat la zona dorită. Să presupunem că doriți să vă legați la publicweb eth0, atunci:

    Sudo nano / etc / sysconfig / network-scripts / ifcfg-eth0. ... ... IPV6_AUTOCONF = fără DNS1 = 2001: 4860: 4860 :: 8844 DNS2 = 2001: 4860: 4860 :: 8888 DNS3 = 8.8.8.8 ZONE = publicweb

    De asemenea, vom lega eht1 la privateDNS folosind:

    Sudo nano / etc / sysconfig / network-scripts / ifcfg-eth1. ... ... NETMASK = 255.255.0.0 DEFROUTE = „nu” NM_CONTROLLED = „da” ZONE = privateDNS

    Pentru ca modificările să intre în vigoare, va trebui să reporniți firewall-ul și serviciile de rețea:

    Sudo systemctl restart network sudo systemctl restart firewalld

    Trebuie să verificați zonele pentru a vă asigura că serviciile sunt înregistrate:

    Firewall-cmd --get-active-zones interfețe privateDNS: eth1 interfețe publicweb: eth0

    Acum trebuie să verificați dacă funcționează:

    Firewall-cmd --zone = publicweb --list-services http htpps ssh firewall-cmd --zone = privateDNS --list-services dns

    După cum putem vedea, zonele personalizate sunt complet gata de funcționare. Oricare dintre ele poate fi atribuit implicit. De exemplu:

    Sudo firewall-cmd --set-default-zone = publicweb

    8. Cum să faci firewall-ul să pornească automat?

    După verificarea funcționării regulilor și a tuturor setărilor, configurați autorun folosind:

    Sudo systemctl activează firewalld

    Acest lucru vă va permite să activați firewall-ul imediat după pornirea serverului.

    În concluzie, este de remarcat faptul că firewall-ul Firewalld este un instrument destul de flexibil în ceea ce privește setările. Și puteți schimba politica activității sale cu ajutorul zonelor.



    Ți-a plăcut articolul? Împărtășește-l