Centos 7 ugunsmūra atvērtais ports. Citas ugunsmūra zonas

Zonas

Firewalld dēmons pārvalda noteikumu grupas, izmantojot tā sauktās zonas.

Zonas būtībā ir noteikumu kopumi, kas regulē trafiku, pamatojoties uz uzticamības līmeni noteiktā tīklā. Zonas tiek piešķirtas tīkla saskarnēm un kontrolē ugunsmūra darbību.

Datori, kas bieži pieslēdzas dažādiem tīkliem (piemēram, klēpjdatori), var izmantot zonas, lai mainītu noteikumu kopas atkarībā no vides. Piemēram, pieslēdzoties publiskajam WiFi tīklam, ugunsmūris var piemērot stingrākus noteikumus, vienlaikus atvieglojot mājas tīkla ierobežojumus.

Ugunsmūrī pastāv šādas zonas:

  • kritums: zemākais tīkla uzticamības līmenis. Visa ienākošā trafika tiek pārtraukta bez atbildes, tiek atbalstīti tikai izejošie savienojumi.
  • bloks: šī zona ir līdzīga iepriekšējai, taču ienākošie pieprasījumi tiek atmesti ar icmp-host-prohibited vai icmp6-adm-prohibited ziņojumu.
  • publisks: šī zona ir publisks tīkls, kuram nevar uzticēties, taču tas pieņem ienākošos savienojumus katrā gadījumā atsevišķi.
  • ārējā: ārējo tīklu zona. Atbalsta NAT maskēšanu, kas nodrošina iekšējo tīklu aizvērtu, bet joprojām pieejamu.
  • iekšējais: ārējās zonas otrā puse, iekšējie tīkli. Šajā zonā esošajiem datoriem var uzticēties. Ir pieejami papildu pakalpojumi.
  • dmz: izmanto datoriem, kas atrodas DMZ (izolēti datori, kuriem nebūs piekļuves pārējam tīklam); atbalsta tikai dažus ienākošos savienojumus.
  • darbs: darba tīkla zona. Lielākajai daļai tīklā esošo iekārtu var uzticēties. Ir pieejami papildu pakalpojumi.
  • mājas: mājas tīkla zona. Videi var uzticēties, taču tiek atbalstīti tikai lietotāja noteikti ienākošie savienojumi.
  • uzticams: var uzticēties visām tīklā esošajām iekārtām.

Saglabāšanas noteikumi

ugunsmūra noteikumi ir pastāvīgi vai īslaicīgi. Ja komplektā parādās vai mainās kāds noteikums, pašreizējā ugunsmūra darbība nekavējoties mainās. Tomēr pēc pārstartēšanas visas izmaiņas tiks zaudētas, ja tās netiks saglabātas.

Lielākajai daļai firewall-cmd komandu var izmantot karodziņu --permanent, kas saglabās kārtulu, pēc kuras tā tiks izmantota pastāvīgi.

Ugunsmūra ugunsmūra iespējošana

Vispirms jums ir jāiespējo dēmons. Systemd vienības failu sauc par firewalld.service. Lai palaistu dēmonu, ierakstiet.

sudo systemctl startējiet firewalld.service

Pārliecinieties, vai pakalpojums darbojas:

firewall-cmd --state
skrienot

Tagad ugunsmūris ir izveidots un darbojas saskaņā ar noklusējuma konfigurāciju.

Pakalpojums pašlaik ir iespējots, bet netiks automātiski startēts ar serveri. Lai nejauši nebloķētu sevi savā serverī, vispirms izveidojiet noteikumu kopu un pēc tam iestatiet automātisko palaišanu.

Noklusējuma ugunsmūra noteikumi

Skatīt noklusējuma noteikumus

Lai uzzinātu, kura zona ir noklusējuma zona, ierakstiet:

firewall-cmd --get-default-zone
publiski

Šobrīd firewalld nav saņēmis nekādus norādījumus par citām zonām, turklāt ar citām zonām nav piesaistīts neviens interfeiss, tāpēc tagad publiskā zona ir noklusējuma zona, kā arī vienīgā aktīvā zona.

Lai iegūtu aktīvo zonu sarakstu, ievadiet:


publiski
saskarnes: eth0 eth1

Ir divas tīkla saskarnes, kas saistītas ar publisko zonu: eth0 un eth1. Ar zonu saistītās saskarnes darbojas saskaņā ar šīs zonas noteikumiem.

Lai redzētu, kurus noteikumus zona izmanto pēc noklusējuma, ierakstiet:

firewall-cmd --list-all
publisks (noklusējums, aktīvs)
saskarnes: eth0 eth1
avoti:
pakalpojumi: dhcpv6-client ssh
porti:
maskarāde: nē
uz priekšu porti:
icmp bloki:
bagāti noteikumi:

Tātad tagad jūs zināt, ka:

  • publiskā ir noklusējuma zona un vienīgā aktīvā zona.
  • Tam ir piesaistītas saskarnes eth0 un eth1.
  • Tā atbalsta DHCP (IP adreses piešķiršana) un SSH (attālās administrēšanas) trafiku.

Citas ugunsmūra zonas

Tagad jums vajadzētu iepazīties ar citām zonām.

Lai iegūtu visu pieejamo zonu sarakstu, ierakstiet:

firewall-cmd --get-zones

Lai iegūtu iestatījumus noteiktai zonai, komandai pievienojiet karodziņu --zone=.

firewall-cmd --zone=home --list-all
mājas
saskarnes:
avoti:
pakalpojumi: dhcpv6-client ipp-client mdns samba-client ssh
porti:
maskarāde: nē
uz priekšu porti:
icmp bloki:
bagāti noteikumi:

Lai uzskaitītu visu pieejamo zonu definīcijas, pievienojiet opciju --list-all-zones. Ērtākai apskatei izvadi var pārsūtīt peidžeram:

firewall-cmd --list-all-zones | mazāk

Interfeisa zonu konfigurēšana

Sākotnēji visas tīkla saskarnes ir saistītas ar noklusējuma zonu.

Interfeisa zonas maiņa vienai sesijai

Lai vienas sesijas laikā mainītu saskarni uz citu zonu, izmantojiet opcijas --zone= un --change-interface=.

Piemēram, lai pārvietotu eth0 uz mājas zonu, jums jāievada:

sudo firewall-cmd --zone=home --change-interface=eth0
panākumus

Piezīme: pārsūtot saskarni uz citu zonu, ņemiet vērā, ka tas var ietekmēt dažu pakalpojumu darbību. Piemēram, mājas zona atbalsta SSH, tāpēc savienojumi ar šo pakalpojumu netiks pārtraukti. Taču dažas zonas pārtrauc visus savienojumus, tostarp SSH, un tad jūs varat nejauši bloķēt piekļuvi savam serverim.

Lai pārbaudītu, vai saskarne ir saistīta ar jauno zonu, ierakstiet:

firewall-cmd --get-active-zones
mājas
saskarnes: eth0
publiski
saskarnes: eth1

Pēc ugunsmūra restartēšanas interfeiss atkal tiks saistīts ar noklusējuma zonu.

sudo systemctl restartējiet firewall.service
firewall-cmd --get-active-zones
publiski
saskarnes: eth0 eth1

Interfeisa zonas pastāvīga maiņa

Ja saskarnes iestatījumos nav norādīta cita zona, pēc ugunsmūra restartēšanas interfeiss atkal tiks piesaistīts noklusējuma zonai. Operētājsistēmā CentOS šādas konfigurācijas tiek glabātas /etc/sysconfig/network-scripts direktorijā ifcfg-interfeisa formāta failos.

Lai definētu saskarnes zonu, atveriet interfeisa konfigurācijas failu, piemēram:

Pievienojiet mainīgo ZONE= faila beigās un kā vērtību norādiet citu zonu, piemēram, home:

. . .
DNS1=2001:4860:4860::8844
DNS2=2001:4860:4860::8888
DNS3=8.8.8.8
ZONA=mājas

Saglabājiet un aizveriet failu.

Lai atjauninātu iestatījumus, restartējiet tīkla pakalpojumu un ugunsmūri:

sudo systemctl restartējiet tīkla pakalpojumu
sudo systemctl restartējiet firewall.service

Pēc restartēšanas eth0 interfeiss tiks saistīts ar mājas zonu.

firewall-cmd --get-active-zones
mājas
saskarnes: eth0
publiski
saskarnes: eth1

Noklusējuma zonas iestatījums

Varat arī izvēlēties citu noklusējuma zonu.

Tas tiek darīts, izmantojot parametru --set-default-zone=. Pēc tam visas saskarnes tiks piesaistītas citai zonai:

sudo firewall-cmd --set-default-zone=home
mājas
saskarnes: eth0 eth1

Izveidojiet pieteikuma noteikumus

Pakalpojuma pievienošana zonai

Vienkāršākais veids ir pievienot pakalpojumu vai portu zonai, kuru izmanto ugunsmūris. Skatīt pieejamos pakalpojumus:

firewall-cmd --get-services
Rh-Satellite-6 Amanda-Client Bacula Bacula-Client DHCP DHCPv6 DHCPv6-CLIENT DNS FTP Augstas pieejamība http https imaps ipp ipp-client Ipsec kerberos kpasswd ldap ldaps ldaps. postgresql proxy-dhcp rādiuss rpc-bind samba samba-client smtp ssh telnet tftp tftp-client pārraides klients vnc-serveris wbem-https

Piezīme: Plašāku informāciju par katru konkrēto pakalpojumu var atrast .xml failos direktorijā /usr/lib/firewalld/services. Piemēram, informācija par SSH pakalpojumu tiek glabāta mapē /usr/lib/firewalld/services/ssh.xml un izskatās šādi:



SSH

Lai iespējotu pakalpojuma atbalstu noteiktā zonā, izmantojiet opciju --add-service=. Varat norādīt mērķa zonu ar opciju --zone=. Pēc noklusējuma šīs izmaiņas darbosies vienu sesiju. Lai saglabātu izmaiņas un izmantotu tās pastāvīgi, pievienojiet karodziņu --permanent.

Piemēram, lai palaistu tīmekļa serveri HTTP trafika apkalpošanai, vispirms vienai sesijai ir jāiespējo šīs trafika atbalsts publiskajā zonā:

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

Ja pakalpojums ir jāpievieno noklusējuma zonai, karogu --zone= var izlaist.

Pārbaudiet, vai operācija bija veiksmīga:

firewall-cmd --zone=public --list-services
dhcpv6 klients http ssh

Pārbaudiet pakalpojuma un ugunsmūra darbību. Ja viss darbojas pareizi, varat mainīt pastāvīgo noteikumu kopu un pievienot tai kārtulu, lai atbalstītu šo pakalpojumu.

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

Lai skatītu pastāvīgo noteikumu sarakstu, ierakstiet:

sudo firewall-cmd --zone=public --permanent --list-services
dhcpv6 klients http ssh

Publiskā zona tagad pastāvīgi atbalsta HTTP un 80. portu. Ja tīmekļa serveris var apkalpot SSL/TLS trafiku, varat pievienot arī https pakalpojumu (vienai sesijai vai pastāvīgu noteikumu kopai):

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

Ko darīt, ja vēlamais pakalpojums nav pieejams?

Ugunsmūra ugunsmūrī pēc noklusējuma ir iekļauti daudzi visizplatītākie pakalpojumi. Tomēr dažām lietojumprogrammām ir nepieciešami pakalpojumi, kurus ugunsmūris neatbalsta. Šajā gadījumā to var izdarīt divos veidos.

1. metode: porta iestatīšana

Vienkāršākais veids šajā situācijā ir atvērt lietojumprogrammas portu vajadzīgajā ugunsmūra zonā. Jums vienkārši jānorāda ports vai portu diapazons un protokols.

Piemēram, lietojumprogramma, kas izmanto portu 5000 un TCP, jāpievieno publiskajai zonai. Lai iespējotu vienas sesijas lietojumprogrammu atbalstu, izmantojiet parametru --add-port= un norādiet tcp vai udp protokolu.

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

Pārbaudiet, vai operācija bija veiksmīga:

firewall-cmd --list-ports
5000/tcp

Varat arī norādīt seriālo portu diapazonu, atdalot diapazona pirmo un pēdējo portu ar domuzīmi. Piemēram, ja lietojumprogramma izmanto UDP portus 4990-4999, lai tos pievienotu publiskajai zonai, jums jāievada:

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

Pēc pārbaudes varat pievienot šos noteikumus pastāvīgajiem ugunsmūra iestatījumiem.

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
panākumus
panākumus
4990-4999/udp 5000/tcp

2. metode: pakalpojuma definīcija

Portu pievienošana zonām ir vienkārša, taču, ja jums ir daudz šo lietojumprogrammu, var būt grūti izsekot katra porta vajadzībām. Lai izvairītos no šīs situācijas, portu vietā varat definēt pakalpojumus.

Pakalpojumi ir vienkārši portu kolekcijas ar konkrētu nosaukumu un aprakstu. Pakalpojumu iestatījumus ir vieglāk pārvaldīt, taču tie ir sarežģītāki nekā paši porti.

Pirmais solis ir kopēt esošo skriptu no direktorijas /usr/lib/firewalld/services uz direktoriju /etc/firewalld/services (šajā vietā ugunsmūris meklē pielāgotos iestatījumus).

Piemēram, varat kopēt SSH pakalpojuma definīciju un izmantot to, lai definētu nosacījuma pakalpojuma piemēru. Skripta nosaukumam ir jāatbilst pakalpojuma nosaukumam, un tam ir jābūt .xml paplašinājumam.

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

Rediģējiet nokopēto failu.

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

Fails satur SSH definīciju:



SSH
Secure Shell (SSH) ir protokols, lai pieteiktos un izpildītu komandas attālās iekārtās. Tas nodrošina drošus šifrētus sakarus. Ja plānojat piekļūt savai iekārtai attālināti, izmantojot SSH, izmantojot ugunsmūra interfeisu, iespējojiet šo opciju. Lai šī opcija būtu noderīga, ir jāinstalē openssh-server pakotne.

Liela daļa pakalpojuma definīcijas ir metadati. Pakalpojuma īso nosaukumu var mainīt tagos . Šis ir cilvēkiem saprotams pakalpojuma nosaukums. Jums jāpievieno arī pakalpojuma apraksts. Vienīgās izmaiņas, kas ietekmēs pakalpojuma darbību, ir porta numura un protokola izmaiņas.

Atgriezīsimies pie pakalpojuma parauga; pieņemsim, ka ir jāatver TCP ports 7777 un UDP ports 8888. Definīcija izskatītos šādi:



Pakalpojuma piemērs
Šis ir tikai pakalpojuma piemērs. Iespējams, to nevajadzētu izmantot reālā sistēmā.

Saglabājiet un aizveriet failu.

Restartējiet ugunsmūri:

sudo firewall-cmd -- pārlādēt

Pakalpojums tagad parādīsies pieejamo pakalpojumu sarakstā:

firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-klienta dns piemērs ftp augstas pieejamības http https imaps ipp ipp-klients ppcnflsdms vppp mount atvērts myvirnswd ldap tmllibs pmwebapi pmwebapis pop3s postgresql proxy-dhcp rādiuss rpc-bind samba samba-client smtp ssh telnet tftp tftp-client transfer-client vnc-server wbem-https

Zonu veidošana

Ugunsmūris nodrošina daudzas iepriekš noteiktas zonas, kas vairumā gadījumu ir pietiekamas, lai darbotos. Bet dažās situācijās kļūst nepieciešams izveidot pielāgotu zonu.

Piemēram, varat izveidot publisko tīmekļa zonu tīmekļa serverim un privāto DNS zonu DNS pakalpojumam.

Veidojot zonu, tā jāpievieno pastāvīgajiem ugunsmūra iestatījumiem.

Mēģiniet izveidot publiskā tīmekļa un privātās DNS zonas:

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

Pārbaudiet, vai zonas pastāv:

sudo firewall-cmd --permanent --get-zones

Pašreizējā sesijā jaunas zonas nebūs pieejamas:

firewall-cmd --get-zones
bloķēt dmz nomest ārējo sākumlapu iekšējais publiskais uzticamais darbs

Lai piekļūtu jaunajām zonām, jums ir jārestartē ugunsmūris:

sudo firewall-cmd -- pārlādēt
firewall-cmd --get-zones
bloķēt dmz nomest ārējo sākumlapu iekšējais privātaisDNS publiskais publiskais tīmeklis uzticams darbs

Tagad jaunajām zonām varat piešķirt nepieciešamos pakalpojumus un portus. Piemēram, publiskā tīmekļa zonai varat pievienot SSH, HTTP un HTTPS.

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
publiskais tīmeklis
saskarnes:
avoti:
pakalpojumi: http https ssh
porti:
maskarāde: nē
uz priekšu porti:
icmp bloki:
bagāti noteikumi:

Jūs varat pievienot DNS privātajai DNS zonai:

sudo firewall-cmd --zone=privateDNS --add-service=dns
firewall-cmd --zone=privateDNS --list-all
privātais DNS
saskarnes:
avoti:
pakalpojumi: dns
porti:
maskarāde: nē
uz priekšu porti:
icmp bloki:
bagāti noteikumi:

Pēc tam varat saistīt tīkla saskarnes ar jaunajām zonām:

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

Tagad varat pārbaudīt iestatījumu. Ja viss darbojas pareizi, varat pievienot šos noteikumus pastāvīgajiem iestatījumiem.

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

Pēc tam varat konfigurēt tīkla saskarnes, lai automātiski izveidotu savienojumu ar pareizo zonu.

Piemēram, eth0 būs saistīts ar publisko tīmekli:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
. . .
IPV6_AUTOCONF=nē
DNS1=2001:4860:4860::8844
DNS2=2001:4860:4860::8888
DNS3=8.8.8.8
ZONE=publisks tīmeklis

Un eth1 saskarne būs saistīta ar privāto DNS:

sudo nano /etc/sysconfig/network-scripts/ifcfg-eth1
. . .
NETMASK=255.255.0.0
DEFROUTE="nē"
NM_CONTROLLED="jā"
ZONA=privāts DNS

Restartējiet tīkla pakalpojumus un ugunsmūri:

sudo systemctl restartējiet tīklu
sudo systemctl restartējiet ugunsmūri

Pārbaudīt zonas:

firewall-cmd --get-active-zones
privātais DNS
saskarnes: eth1
publiskais tīmeklis
saskarnes: eth0

Pārbaudiet, vai nepieciešamie pakalpojumi darbojas zonās:

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

Lietotāju zonas darbojas pilnībā. Jebkuru no tiem varat iestatīt par noklusējuma zonu. Piemēram:

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

Ugunsmūra automātiskā palaišana

Tagad, kad esat pārbaudījis visus iestatījumus un pārliecinājies, ka visi noteikumi darbojas, kā paredzēts, varat iestatīt ugunsmūri uz automātisko palaišanu.

Lai to izdarītu, ievadiet:

sudo systemctl iespējot ugunsmūri

Tagad ugunsmūris sāksies ar serveri.

Secinājums

Ugunsmūra ugunsmūris ir ļoti elastīgs rīks. Zonas ļauj ātri mainīt ugunsmūra politiku.

Tagad jūs zināt, kā darbojas ugunsmūris, esat iepazinies ar ugunsmūra pamatjēdzieniem, varat izveidot pielāgotas zonas un pievienot pakalpojumus.

Birkas: ,

Centos 7, atšķirībā no CentOS 6, nāk ar jaunu ugunsmūri - firewalld. To var atspējot un aizstāt ar vecajiem labajiem iptables, bet, ja tam nav tiešu priekšnoteikumu, tad labāk pierast pie kaut kā jauna, nevis atpūsties uz veco. Tas nenozīmē, ka Windows 10 ir labāks par Windows 7 un Windows XP ir labāks par Windows 7 ;) Labs piemērs tam ir selinux. Ja sākumā gandrīz visi (arī es) to izslēdza un pat nedaudz rāja, tad tagad gandrīz neviens to neiesaka, tikai tad, ja ir pārliecība, ka tas ir nepieciešams. Gluži pretēji, daudzi jau tiek izmantoti (vai sāk pierast), izmantojot semanāžu. Ugunsmūri uzreiz neatslēgsim, bet izmēģināsim kā garšo.

Firewall nav principiāli atšķirīgs ugunsmūris. Šis ir vēl viens netfilter papildinājums, tāpēc, ja jums ir pieredze ar iptables, tad pēc nelielām mocībām jūs viegli sāksit lietot jauno rīku.

Ugunsmūra palaišana un apturēšana

Pārbaudiet, vai ugunsmūris darbojas:

# systemctl statusa ugunsmūris

Šeit būs vairāk informācijas. Īsāk sakot, jā (darbojas) vai nē, varat rīkoties šādi:

# firewall-cmd --state
skrienot

Labi, tas darbojas.

Apturēt ugunsmūri:

# systemctl apturēt ugunsmūri

Automātiskā palaišana atspējota:

# systemctl atspējot ugunsmūri

Ugunsmūra palaišana:

# systemctl start firewall

Iespējot automātisko palaišanu:

# systemctl iespējot ugunsmūri

ugunsmūra zonas

Ugunsmūrī zonas jēdziens tiek plaši izmantots. Visu pēc noklusējuma atļauto zonu saraksts:

# firewall-cmd --get-zones
bloķēt dmz nomest ārējo sākumlapu iekšējais publiskais uzticamais darbs

Zonu piešķiršana (protams, ar nosacījumu):

  • drop - visas ienākošās paketes tiek atmestas bez atbildes. Ir atļauti tikai izejoši savienojumi.
  • bloks - ienākošie savienojumi tiek noraidīti (noraidīti) ar icmp-host-prohibited (vai icmp6-adm-prohibited) atbildi. Ir atļauti tikai sistēmas iniciēti savienojumi.
  • publiskais- noklusējuma zona. No nosaukuma ir skaidrs, ka šī zona ir paredzēta darbam publiskajos tīklos. Mēs neuzticamies šim tīklam un pieļaujam tikai noteiktus ienākošos savienojumus.
  • ārēja - zona maršrutētāja ārējam interfeisam (tā sauktā maskēšana). Ir atļauti tikai mūsu definētie ienākošie savienojumi.
  • dmz - DMZ zona, ir atļauti tikai noteikti ienākošie savienojumi.
  • darbs - darba tīkla zona. Joprojām nevienam neuzticamies, bet ne tik ļoti kā agrāk :) Ir atļauti tikai noteikti ienākošie savienojumi.
  • mājas - mājas zona. Mēs uzticamies videi, taču ir atļauti tikai noteikti ienākošie savienojumi
  • iekšējā - iekšējā zona. Mēs uzticamies videi, taču ir atļauti tikai noteikti ienākošie savienojumi
  • uzticas - viss ir atļauts.

Visu aktīvo zonu saraksts:

# firewall-cmd --get-active-zones
publiski
saskarnes: enp1s0

Jā, publiskā zona, kurai ir pievienots enp1so tīkla interfeiss. Pēc tam publiskajai zonai pievienojiet jaunu portu, uz kura karājas sshd.

Zinot tīkla saskarnes nosaukumu (piemēram, enp1s0), varat uzzināt, kurai zonai tā pieder:

# firewall-cmd --get-zone-of-interface=enp1s0
publiski

Un jūs varat uzzināt, kuras saskarnes pieder noteiktai zonai:

# firewall-cmd --zone=public --list-interfaces
enp1s0

Piemērs: atļaut ssh nestandarta portā

Atļausim piekļuvi serverim caur ssh portā 2234/tcp, nevis 22/tcp, kā pēc noklusējuma. Pa ceļam nedaudz pieskarsimies selinux.

Vispirms apskatīsim, kas mūsu serverī parasti ir pastāvīgi atļauts:

# firewall-cmd --permanent --list-all
publisks (noklusējums)
saskarnes:
avoti:
pakalpojumi: ssh dhcpv6-client
maskarāde: nē
uz priekšu porti:
icmp bloki:
bagāti noteikumi:

Es vēl neizmantoju ipv6, tāpēc es to tūlīt noņemšu. ugunsmūra noteikums:

# firewall-cmd --permanent --zone=public --remove-service=dhcpv6-client

Atļaujiet pastāvīgi (lai pēc pārstartēšanas tas netiktu zaudēts) savienojumu ar portu 2234 / tcp (mēs uzkarināsim uz tā sshd):

# firewall-cmd --permanent --zone=public --add-port=2234/tcp

Pārlādēsim noteikumus:

# firewall-cmd -- pārlādēt

Pārbaudīsim:

# firewall-cmd --zone=public --list-ports
2234/tcp

Labi, osta ir atvērta. Sshd konfigurācijas rediģēšana:

# nano /etc/ssh/sshd_config
...
ports 2234
...

# systemctl restartējiet sshd.service

Bet SELinux, kuru jūs, cerams, neatslēdzāt, neļaus jums izveidot savienojumu ar ssh nestandarta portā (ports 2234/tcp priekš sshd ir nestandarta). Varat izlaist šo darbību un pārbaudīt, kā darbojas SELinux aizsardzība, vai arī varat iestatīt visu uzreiz:

# yum nodrošina semanāžu
# yum instalējiet policycoreutils-python
# semanage ports -a -t ssh_port_t -p tcp 2234

Tagad viss ir kārtībā. Mēs pārbaudām savienojumu caur ssh jaunajā portā. Ja viss ir kārtībā, aizveriet piekļuvi 22. portam:

# firewall-cmd --permanent --zone=public --remove-service=ssh
# firewall-cmd -- pārlādēt

Apskatīsim, kas notika:

# firewall-cmd --list-all
publisks (noklusējums, aktīvs)
saskarnes:
avoti:
pakalpojumi:
porti: 2234/tcp
maskarāde: nē
uz priekšu porti:
icmp bloki:
bagāti noteikumi:

Tas ir viss.

Dažādas noderīgas komandas:

Iespējot bloķēšanas režīmu visām izejošajām un ienākošajām paketēm:

# firewall-cmd --panic-on

Izslēdziet bloķēšanas režīmu visām izejošajām un ienākošajām paketēm:

# firewall-cmd --panic-off

Uzziniet, vai ir iespējota visu izejošo un ienākošo pakešu bloķēšana:

# firewall-cmd --query-panic

Pārlādējiet ugunsmūra noteikumus, nezaudējot pašreizējos savienojumus:

# firewall-cmd -- pārlādēt

Atkārtoti ielādējiet ugunsmūra noteikumus un atiestatiet pašreizējos savienojumus (ieteicams tikai problēmu gadījumā):

# firewall-cmd --complete-reload

Pievienojiet zonai tīkla interfeisu:

# firewall-cmd --zone=public --add-interface=em1

Pievienojiet zonai tīkla interfeisu (tiks saglabāts pēc ugunsmūra atsāknēšanas):

# firewall-cmd --zone=public --permanent --add-interface=em1

Konfigurācijā ifcfg-enp1s0 varat norādīt, kurai zonai pieder šī saskarne. Lai to izdarītu, failam /etc/sysconfig/network-scripts/ifcfg-enp1s0 pievienojiet ZONE=work. Ja parametrs ZONE nav norādīts, tiks piešķirta noklusējuma zona (DefaultZone parametrs failā /etc/firewalld/firewalld.conf.

Atļaut porta diapazonu:

# firewall-cmd --zone=public --add-port=5059-5061/udp

Maskarāde (masquerade, aka nat, aka...):

Pārbaudiet statusu:

# firewall-cmd --zone=external --query-masquerade

Ieslēdz:

# firewall-cmd --zone=external --add-masquerade

Šeit jāatzīmē, ka varat iespējot maskarādi, piemēram, publiskajai zonai.

Pārsūtiet ienākošos portā 22 uz citu resursdatoru:

# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.23

Pārvirzīt ienākošos uz 22. portu uz citu resursdatoru, mainot galamērķa portu (no 22 uz 192.168.1.23:2055):

# firewall-cmd --zone=external /
--add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.23

Es beigšu ar šo, jo. piemēru var būt bezgalīgi daudz. Piebildīšu tikai to, ka es personīgi neizteicu savu galīgo viedokli par ugunsmūra jauninājumu, jo. ir nepieciešams ilgs laiks, lai pierastu pie sintakses, un, ja jūsu zoodārzā ir dažādas OS Linux, tad vispirms var būt problēmas ar ieradumu. Taču, apgūstot ugunsmūri, jūs paplašināsit savu redzesloku – biežāk tas ir pūļu vērts.

Ugunsmūra priekšrocības

Galvenā priekšrocība ir tā, ka jūs nedaudz abstrahējat iptables ķēdes. Lai iespējotu portu pārsūtīšanu, jums papildus FORWARD nav jādomā par PREROUTING vai POSTROUTING. Jums tiek dots "iptables API no ražotāja", kaut kas līdzīgs tam. Ja esat iespējojis nat, tad nav svarīgi, kur tieši (zem kāda pašreizējo noteikumu kārtas numura) tiek ievietots noteikums. Jūs vienkārši norādiet - iespējojiet nat vietnē eth0. Un nekādas muļķības;) Tas var būt ērti, ja jums ir nepieciešams organizēt tīmekļa saskarni ugunsmūra pārvaldībai.

Ir iespējams pārbaudīt statusu (piemēram, vai nat ir iespējots vai nav!). Un arī izmantojiet to savos skriptos, piemēram, lietojumprogrammas loģikā. Es nezinu, kā izveidot statusa pieprasījumu (ieslēgts/izslēgts) programmā iptables. Protams, varat izmantot kaut ko līdzīgu iptables -L -t nat | grep "...", taču jāatzīst, ka tas ir nedaudz savādāk nekā "firewall-cmd --zone=external --query-masquerade". Piemēram, ir simtiem CentOS virtuālo mašīnu, kurām var būt nedaudz atšķirīgi wan interfeisa nosaukumi vai kaut kas tamlīdzīgs. Tātad jums ir universāla cmdlet, kas sniegs gaidīto rezultātu dažādās iekārtās.

Ugunsmūra trūkumi

Galvenais trūkums, manuprāt, ir tas, ka tad, kad pieradīsi, sāksi atradināt sevi no "tīrajiem" iptables, kas ir gan Debianā, gan Ubuntu, gan CentOS un vispār visur. Pat, starp citu, Mikrotikā sintakse un ķēdes pēc veida ir līdzīgas iptables. Tas, protams, ir amatieris. Un profesionālim ir vienalga ar ko strādāt, ja būs konkrēti nosacījumi, viņš strādās ar to, kas ir. Bet... esmu retrogrāds un izmisīgi pretojos (ja nav acīmredzamu priekšrocību) jaunumiem, ko katrs lielākais spēlētājs ievieš sev. RedHat gūtu labumu, ja arvien vairāk jaunu speciālistu būtu ugunsmūra eksperti.

Un ja pārgājāt uz firewalld, tad tīrā iptables sintakse tikai traucēs - būs bardaks vai vienkārši ugunsmūris salūzīs, ja sāksiet mainīt/papildināt noteikumus, neizmantojot standarta firewalld sintaksi.

Es nevēlos ugunsmūri! Atdodiet man vecos iptables!

Ja tomēr vēlaties atgriezt pagātni un aizstāt ugunsmūri ar iptables, tad to nav grūti izdarīt:

Iesācējiem šeit nav vietas.

# systemctl atspējot ugunsmūri
# systemctl apturēt ugunsmūri

Instalējiet veco labo iptables:

# yum instalējiet iptables-services

Ugunsmūra palaišana:

# systemctl startē iptables
# systemctl start ip6tables

Automātiskā palaišana, ieslēdzot:

# systemctl iespējot iptables
# systemctl iespējot ip6tables

Lai pēc pārstartēšanas saglabātu iptables noteikumus:

# /sbin/iptables-save > /etc/sysconfig/iptables
# /sbin/ip6tables-save > /etc/sysconfig/ip6tables

Vai vecmodīgi:

# pakalpojums iptables saglabā

Pašreizējie noteikumi ir atrodami failos:
/etc/sysconfig/iptables
/etc/sysconfig/ip6tables

Iptables restartēšana (piemēram, pēc izmaiņu veikšanas):

# systemctl restartējiet iptables.service


Sākot ar CentoOS 7, ir parādījies jauns rīks satiksmes filtrēšanas noteikumu konfigurēšanai ugunsmūris. Ieteicams to izmantot, lai pārvaldītu iptables noteikumus. CentOS 8 tagad izmanto nftables ietvaru, nevis standarta iptables filtrēšanas pakotni, un, konfigurējot ugunsmūra noteikumus, izmantojot ugunsmūri, jūs faktiski konfigurējat nftables. Šajā rakstā mēs apskatīsim ugunsmūra instalēšanu, pamatjēdzienus un konfigurāciju serverī, kurā darbojas sistēma CentOS 8 (tas pats ir CentOS 7).


UgunsmūrisD– ugunsmūris, lai aizsargātu serveri no nevēlamas trafika ar atbalstu dinamiskai noteikumu pārvaldībai (bez restartēšanas) un pastāvīgu ugunsmūra noteikumu ieviešanu. Darbojas kā priekšgals priekš un nftables. FirewallD var izmantot gandrīz visos Linux izplatījumos.

Ugunsmūra pamatjēdzieni, zonas un noteikumi

Pirms turpināt instalēšanu un konfigurēšanu ugunsmūris, iepazīsimies ar zonu jēdzienu, kas tiek izmantots, lai noteiktu uzticības līmeni dažādiem savienojumiem. Dažādām zonām ugunsmūris Jūs varat lietot dažādus filtrēšanas noteikumus, norādīt aktīvās ugunsmūra opcijas iepriekš definētu pakalpojumu, protokolu un portu, portu pāradresācijas un bagātināto noteikumu veidā.

Ugunsmūris filtrē ienākošo trafiku pa zonām atkarībā no zonai piemērotajiem noteikumiem. Ja IP- pieprasījuma sūtītāja adrese atbilst zonas noteikumiem, tad pakete tiks nosūtīta caur šo zonu. Ja adrese neatbilst nevienai no serverī konfigurētajām zonām, paketi apstrādās noklusējuma zona. Uzstādot ugunsmūris tiek izsaukta noklusējuma zona publiski.

ugunsmūrim ir zonas, kurās jau ir iepriekš konfigurētas atļaujas dažādiem pakalpojumiem. Varat izmantot šos iestatījumus vai izveidot savas zonas. Noklusējuma zonu saraksts, kas tiek izveidotas, instalējot ugunsmūri (glabājas direktorijā /usr/lib/firewalld/zones/):

piliens minimālais uzticības līmenis. Visi ienākošie savienojumi tiek bloķēti bez atbildes, ir atļauti tikai izejošie savienojumi;
bloķēt zona ir līdzīga iepriekšējai, bet, kad ienākošie pieprasījumi tiek noraidīti, tiek nosūtīts icmp-host-prohibited ziņojums Ipv4 vai icmp6-adm-prohibited Ipv6;
publiski apzīmē publiskus, neuzticamus tīklus. Jūs varat atļaut atlasītos ienākošos savienojumus individuāli;
ārējā ārējos tīklus, izmantojot ugunsmūri kā vārteju. Tas ir konfigurēts, lai maskētu NAT, lai jūsu iekšējais tīkls paliktu privāts, bet pieejams;
iekšējais ārējās zonas antonīms. Uzņēmējam ir pietiekams uzticības līmenis, ir pieejami vairāki papildu pakalpojumi;
dmz izmanto datoriem, kas atrodas DMZ (izolēti datori bez piekļuves pārējam tīklam). Ir atļauti tikai noteikti ienākošie savienojumi;
strādāt zona darba mašīnām (lielākā daļa tīklā esošo datoru ir uzticami);
mājas mājas tīkla zona. Lielākajai daļai datoru var uzticēties, taču tiek atbalstīti tikai daži ienākošie savienojumi;
uzticams uzticēties visām tīkla mašīnām. Atvērtākā no visām pieejamajām iespējām prasa apzinātu izmantošanu.

AT ugunsmūris tiek izmantoti divi noteikumu kopumi - pastāvīgi un pagaidu. Pagaidu noteikumi darbojas līdz serveris tiek restartēts. Pēc noklusējuma, pievienojot noteikumus ugunsmūris, noteikumi tiek uzskatīti par pagaidu ( izpildlaiks). Lai kārtulu pievienotu pastāvīgi, ir jāizmanto karogs — pastāvīgs. Šādi noteikumi tiks piemēroti pēc servera restartēšanas.

Ugunsmūra instalēšana un iespējošana sistēmā CentOS

Operētājsistēmā CentOS 7/8 ugunsmūris pēc noklusējuma ir instalēts kopā ar operētājsistēmu. Ja to noņēmāt un vēlaties instalēt ugunsmūri, varat izmantot standarta /dnf pārvaldnieku:

# yum instalējiet ugunsmūri -y - ierīcei Centos 7
# dnf instalējiet ugunsmūri -y - programmai Centos 8

Dēmonam ugunsmūris automātiski startēja ar servera startu, jums tas jāpievieno:

# systemctl iespējot ugunsmūri

Un palaist:

# systemctl start firewall

Pārbaudiet pakalpojuma statusu:

# systemctl statusa ugunsmūris

● firewalld.service - firewalld - dinamiskā ugunsmūra dēmons Ielādēts: ielādēts (/usr/lib/systemd/system/firewalld.service; iespējots; piegādātāja iepriekš iestatīts: iespējots) Aktīvs: aktīvs (darbojas) kopš pirmdienas 2019.10.14 14:54 :40 +06; Pirms 22 s Dokumenti: man:firewalld(1) Galvenais PID: 13646 (firewall) CGrupa: /system.slice/firewall.service └─13646 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid 14. oktobris 14:54:40 server.vpn.ru systemd: Starting firewalld — dynamic firewall daemon... Oct 14 14:54:40 server.vpn.ru systemd: Started firewalld — dynamic firewall daemon.

Vai arī komandu:

# firewall-cmd --state

Komanda firewall-cmd ir nftables/iptables ugunsmūra priekšgals.

# firewall-cmd --state

Darbs ar ugunsmūra noteikumiem

Noklusējuma noteikumi:

Pirms ugunsmūra kārtulu konfigurēšanas pārbaudiet, kura zona ir noklusētā:

# firewall-cmd --get-default-zone

Tā kā mēs tikko instalējām ugunsmūri un vēl neesam to konfigurējuši, mums ir noklusējuma zona publiski.

Pārbaudīsim aktīvo zonu. Tas ir arī viens - publisks:

# firewall-cmd --get-active-zones

Publiskās saskarnes: eth0

Kā redzat, eth0 tīkla saskarni kontrolē zona publiski.

Lai skatītu aktīvās zonas noteikumus, ierakstiet:

# firewall-cmd --list-all

Publisks (aktīvs) mērķis: noklusējuma icmp-block-inversija: nav saskarņu: eth0 avoti: pakalpojumi: dhcpv6-klienta ssh porti: protokoli: maskēšanās: nav pāradresācijas porti: avota porti: icmp bloki: bagātināti noteikumi:

No saraksta var redzēt, ka šai zonai ir pievienotas parastās darbības, kas saistītas ar DHCP klientu un ssh.

Pieejamās zonas

Lai skatītu visu zonu sarakstu, jums jāizpilda komanda:

# firewall-cmd --get-zones

Man ir šāds saraksts:

Bloķēt dmz drop ārējo mājas iekšējo publisko uzticamo darbu

Lai pārbaudītu konkrētas zonas noteikumus, jāpievieno karogs - zona.

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

Sākuma mērķis: noklusējuma icmp-block-inversija: nav saskarņu: avoti: pakalpojumi: dhcpv6-klients mdns samba-klients ssh porti: protokoli: maskēšanās: nav pārsūtīšanas porti: avota porti: icmp-bloki: bagātināti noteikumi:

Visu zonu noteikumus var apskatīt ar komandu:

# firewall-cmd --list-all-zones

Saraksts būs diezgan liels, jo var būt daudz zonu.

Mainiet noklusējuma zonu.

Pēc noklusējuma visas tīkla saskarnes atrodas zonā publiski, bet tos var pārsūtīt uz jebkuru no zonām ar komandu:

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

Pēc parametra --zona= norādiet vēlamo zonu.

Lai mainītu noklusējuma zonu, jums jāizmanto komanda:

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

Pievienojiet pieteikuma noteikumus

Lai lietojumprogrammai atvērtu portu, izņēmumiem varat pievienot pakalpojumu. Pieejamo pakalpojumu saraksts:

Izvadē būs liels skaits pakalpojumu. Sīkāka informācija par pakalpojumu ir ietverta tajā xml failu. Šie faili atrodas direktorijā /usr/lib/firewalld/services.

Piemēram:

# cd /usr/lib/firewall/services

Pasts (SMTP) Šī opcija nodrošina ienākošo SMTP pasta piegādi. Ja jums ir jāļauj attālajiem saimniekiem izveidot tiešu savienojumu ar jūsu ierīci, lai piegādātu pastu, iespējojiet šo opciju. Jums tas nav jāiespējo, ja savācat pastu no sava ISP servera, izmantojot POP3 vai IMAP, vai ja izmantojat tādu rīku kā fetchmail. Ņemiet vērā, ka nepareizi konfigurēts SMTP serveris var ļaut attālām iekārtām izmantot jūsu serveri, lai nosūtītu. spams.

XML fails satur pakalpojuma aprakstu, protokolu un porta numuru, kas tiks atvērts ugunsmūrī.

Pievienojot noteikumus, varat izmantot parametru --pievienošanas pakalpojums lai konkrēts pakalpojums būtu pieejams:

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

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

Pēc noteikumu pievienošanas varat pārbaudīt, vai pakalpojumi ir pievienoti norādītajai zonai:

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

dhcpv6-klients http https ssh

Ja vēlaties šos noteikumus padarīt pastāvīgus, pievienojot ir jāpievieno parametrs - pastāvīgs.

Lai noņemtu pakalpojumu no zonas:

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

dhcpv6-klienta https ssh tests

Ja vēlaties pievienot savu pakalpojumu izņēmumiem, varat izveidot failu xml pats un aizpildiet to. Varat kopēt datus no jebkura pakalpojuma, mainīt nosaukumu, aprakstu un porta numuru.

Kopēsim failu smtp.xml uz direktoriju darbam ar lietotāju pakalpojumiem:

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

Mainiet pakalpojuma aprakstu failā.

Arī pats xml fails ir jāpārdēvē atbilstoši jūsu pakalpojuma nosaukumam. Pēc tam jums ir jārestartē ugunsmūris un jāpārbauda, ​​vai mūsu pakalpojums ir sarakstā:

Izsaucu servisu pārbaude un tas parādījās sarakstā:

syslog-tls telnet tests tftp

Tagad izveidoto pakalpojumu varat pievienot jebkurai zonai:

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

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

dhcpv6-klienta http https ssh tests

Ja sarakstā neatradāt vajadzīgo pakalpojumu, varat atvērt vajadzīgo portu ugunsmūrī ar komandu:

# firewall-cmd --zone=public -add-port=77/tcp — atveriet 77. portu tcp
# firewall-cmd --zone=public -add-port=77/udp — atveriet 77. portu udp
# firewall-cmd --zone=public -add-port=77-88/udp - atvērt portu diapazonu 77-88 udp
# firewall-cmd --zone=public -list-ports — pārbaudiet atļauto portu sarakstu

Bloķēt/atļaut ICMP atbildes:

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

Dzēst pievienoto portu:

# firewall-cmd --zone=public -remove-port=77/udp - noņemt pagaidu noteikumu 77 udp

# firewall-cmd --permanent --zone=public -remove-port=77/udp — noņemt pastāvīgo noteikumu

Pielāgotu zonu pievienošana

Jūs varat izveidot savu zonu (es to nosaukšu mūsu):

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

Pēc jaunas zonas izveides, kā arī pēc pakalpojuma izveides ir nepieciešama atsāknēšana ugunsmūris:

# firewall-cmd -- pārlādēt

# firewall-cmd --get-zones

Bloķēt dmz drop ārējo mājas iekšējo mūsu publisko uzticamo darbu

Zona mūsu pieejams. Varat tai pievienot pakalpojumus vai atvērt noteiktus portus.

Ugunsmūris: bloķē IP adreses, izveido izņēmumus

Ugunsmūra izņēmumiem varat pievienot uzticamas IP adreses vai bloķēt nevēlamās adreses.

Lai savam serverim pievienotu noteiktu IP adresi (piemēram, 8.8.8.8), izmantojot ugunsmūris, izmantojiet komandu:

# firewall-cmd --zone=public --add-rich-rule="noteikumu ģimene = "ipv4" avota adrese = "8.8.8.8" pieņemt"

Pārbaudiet apgabalu un pārliecinieties IP pievienots izņēmumiem bagātajos noteikumos:

Publisks (aktīvs) mērķis: noklusējuma icmp-block-inversija: nav saskarņu: eth0 avoti: pakalpojumi: dhcpv6-klients http https ssh testa porti: protokoli: maskēšanās: nav pārejas portu: avota porti: icmp-bloki: bagātināti noteikumi: noteikums ģimene = "ipv4" avota adrese = "8.8.8.8" pieņemt

Bloķēt IP, nepieciešams nomainīt pieņemt uz noraidīt:

# firewall-cmd --zone=public --add-rich-rule="noteikumu ģimene = "ipv4" avota adrese = "8.8.4.4" noraidīt"

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

Publisks (aktīvs) mērķis: noklusējuma icmp-block-inversija: nav saskarņu: eth0 avoti: pakalpojumi: dhcpv6-klients http https ssh testa porti: protokoli: maskēšanās: nav pārejas portu: avota porti: icmp-bloki: bagātināti noteikumi: noteikums ģimene = "ipv4" avota adrese = "8.8.8.8" pieņemt noteikumu ģimene = "ipv4" avota adrese = "8.8.4.4" noraidīt

Varat atļaut konkrētu pakalpojumu tikai pieprasījumiem no noteiktas IP adreses:

#firewall-cmd --permanent --add-rich-rule "noteikumu saime = "ipv4" avota adrese = "10.10.1.0/24" pakalpojuma nosaukums = "https" pieņemt"

Ja jums steidzami jābloķē visi serverim nosūtītie pieprasījumi, izmantojiet panikas komandu:

# firewall-cmd --panic-on

Panikas režīmu var izslēgt ar komandu:

# firewall-cmd --panic-off

Vai arī restartējot serveri.

Varat bloķēt ugunsmūra konfigurāciju, lai neļautu vietējiem saknes pakalpojumiem mainīt jūsu izveidotos ugunsmūra noteikumus.

# firewall-cmd --lockdown-on

Atspējot bloķēšanas režīmu:

# firewall-cmd --lockdown-off

Portu pāradresācija ugunsmūrī

Portu pārsūtīšanas kārtulu var izveidot ugunsmūrī. Lai pārsūtītu portu 443 uz 9090:

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

Lai noņemtu porta pāradresācijas kārtulu:

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

FirewallD ir ugunsmūra pārvaldības rīks, kas pēc noklusējuma ir pieejams CentOS 7 serveros. Būtībā tas ir IPTables ietvars, un tam ir grafiskais konfigurācijas rīks firewall-config un komandrindas rīks firewall-cmd. Izmantojot pakalpojumu IPtables, katrai izmaiņai ir nepieciešams dzēst vecos noteikumus un izveidot jaunas kārtulas failā ` /etc/sysconfig/iptables`, savukārt ar ugunsmūri ir spēkā tikai atšķirības.

Ugunsmūra zonas

FirewallD izmanto pakalpojumus un zonas, nevis noteikumus un ķēdes programmā Iptables. Pēc noklusējuma ir pieejamas šādas zonas:

  • piliens– Atmetiet visas ienākošās tīkla paketes bez atbildes, ir pieejami tikai izejošie tīkla savienojumi.
  • bloķēt– Noraidīt visas ienākošās tīkla paketes ar icmp-host aizliegtu ziņojumu, ir pieejami tikai izejošie tīkla savienojumi.
  • publiski– tiek pieņemti tikai atlasīti ienākošie pieslēgumi izmantošanai sabiedriskās vietās
  • ārējā– Ārējiem tīkliem ar maskēšanu tiek pieņemti tikai atlasīti ienākošie savienojumi.
  • dmz– DMZ, publiski pieejams ar ierobežotu piekļuvi iekšējam tīklam, tiek pieņemti tikai atlasīti ienākošie savienojumi.
  • strādāt
  • mājas– Datoriem mājas zonā tiek pieņemti tikai atlasītie ienākošie savienojumi.
  • iekšējais– Datoriem jūsu iekšējā tīklā tiek pieņemti tikai atlasītie ienākošie savienojumi.
  • uzticams– Tiek pieņemti visi tīkla savienojumi.

Lai iegūtu visu pieejamo zonu sarakstu:

# firewall-cmd --get-zones darbojas atmest iekšējo ārējo uzticamo mājas dmz publisko bloku

Lai skatītu noklusējuma zonu sarakstu:

# firewall-cmd --get-default-zone public

Lai mainītu noklusējuma zonu:

Ugunsmūra pakalpojumi

FirewallD pakalpojumi ir XML konfigurācijas faili ar informāciju par ugunsmūra pakalpojuma ierakstu. Lai iegūtu visu pieejamo pakalpojumu sarakstu:

# firewall-cmd --get-services amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-reģistry dropbox-lansync freeipa-ldap freeipa-ldap freeipa-ldap bezmaksas http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetd radius rpcsyncdmaster samba samba- klients sane smtp smtps snmp snmptrap squid ssh sinerģija syslog syslog-tls telnet tftp tftp-client tinc tor-socks pārraides klients vdsm vnc-server wbem-https xmpp-bosh xmpp-cloceral

XML konfigurācijas faili tiek glabāti direktorijos /usr/lib/firewalld/services/ un /etc/firewall/services/.

Ugunsmūra iestatīšana, izmantojot FirewallD

Piemēram, šeit ir norādīts, kā varat iestatīt ugunsmūri ar FirewallD, ja izmantojat tīmekļa serveri, SSH portā 7022 un pasta serveri.

Vispirms mēs iestatīsim noklusējuma zonu DMZ.

# firewall-cmd --set-default-zone=dmz # firewall-cmd --get-default-zone dmz

Lai pievienotu pastāvīgus pakalpojumu noteikumus HTTP un HTTPS DMZ, palaidiet šo komandu:

# firewall-cmd --zone=dmz --add-service=http --permanent # firewall-cmd --zone=dmz --add-service=https --permanent

Atveriet 25. portu (SMTP) un 465. portu (SMTPS):

firewall-cmd --zone=dmz --add-service=smtp --permanent firewall-cmd --zone=dmz --add-service=smtps --permanent

Atvērtie, IMAP, IMAPS, POP3 un POP3S porti:

Firewall-cmd --zone=dmz --add-service=imap --permanent firewall-cmd --zone=dmz --add-service=imaps --permanent firewall-cmd --zone=dmz --add-service= pop3 --permanent firewall-cmd --zone=dmz --add-service=pop3s --permanent

Tā kā SSH ports ir mainīts uz 7022, mēs noņemsim SSH pakalpojumu (ports 22) un atvērsim portu 7022

firewall-cmd --remove-service=ssh --permanent firewall-cmd --add-port=7022/tcp --permanent

Lai ieviestu izmaiņas, mums ir jārestartē ugunsmūris:

Firewall-cmd -- pārlādēt

Visbeidzot, jūs varat uzskaitīt noteikumus.

Taču iptables komandas ir sarežģītas, un daudziem lietotājiem ir grūti atcerēties visas opcijas un to lietošanas laiku. Tāpēc izplatīšanas izstrādātāji izveido savus iptables papildinājumus, kas palīdz vienkāršot ugunsmūra pārvaldību. Operētājsistēmā CentOS iptables pārvaldības papildinājumu sauc par Firewalld.

Firewall ir vairākas būtiskas atšķirības salīdzinājumā ar iptables. Šeit tīkla piekļuves kontrole tiek veikta zonu un pakalpojumu līmenī, nevis ķēžu un noteikumu līmenī. Un arī noteikumi tiek dinamiski atjaunināti, nepārtraucot darbības sesijas. Šajā rakstā tiks apspriesta ugunsmūra CentOS 7 konfigurēšana, piemēram, izmantojot ugunsmūri.

Kā jau teicu iepriekš, Firewalld nedarbojas ar noteikumu ķēdēm, bet gan ar zonām. Katram tīkla interfeisam var piešķirt noteiktu zonu. Zona ir noteikumu, ierobežojumu un atļauju kopums, kas attiecas uz šo tīkla saskarni. Vienai saskarnei var atlasīt tikai vienu zonu. Izstrādātāji ir izveidojuši vairākas iepriekš iestatītas zonas:

  • piliens- bloķēt visas ienākošās paketes, atļaut tikai izejošās
  • bloķēt- atšķirībā no iepriekšējās versijas, pakas sūtītājam tiks nosūtīts ziņojums par viņa pakas bloķēšanu;
  • publiski- tiek atbalstīti tikai ssh un dhclient ienākošie savienojumi;
  • ārējā- atbalsta NAT, lai paslēptu iekšējo tīklu;
  • iekšējais- ir atļauti ssh, samba, mdns un dhcp pakalpojumi;
  • dmz- izmanto izolētiem serveriem, kuriem nav piekļuves tīklam. Ir atļauts tikai SSH savienojums;
  • strādāt- ir atļauti ssh un dhcp pakalpojumi;
  • mājas- līdzīgs iekšējam;
  • uzticams- viss ir atļauts.

Tādējādi, lai iespējotu vai atspējotu pakalpojumu, jums tas vienkārši jāpievieno vai jānoņem no pašreizējās zonas vai jāmaina saskarnes zona uz to, kurā tas ir atļauts. Varat izdarīt analoģiju ar noklusējuma darbības politiku pakotnēm programmā iptables. Uzticamajai zonai ir ACCEPT politika un tiek atļauti visi savienojumi, bloka zonai ir politika NEIEDOT, kas liedz visus savienojumus, un visas pārējās zonas var uzskatīt par bloka zonas mantiniekiem, turklāt tām jau ir iepriekš definēti noteikumi tīkla savienojumu atļaušanai dažiem pakalpojumiem. .

Firewall ir arī divu veidu konfigurācijas:

  • izpildlaiks- derīga tikai līdz atsāknēšanai, visas izmaiņas, kas nav skaidri norādītas citādi, tiek piemērotas šai konfigurācijai;
  • pastāvīgs- pastāvīgi iestatījumi, kas darbosies pēc pārstartēšanas.

Tagad jūs zināt visu, kas jums nepieciešams, tāpēc pāriesim uz utilītu firewalld-cmd.

firewall-cmd sintakse un opcijas

Ugunsmūra iestatījumus var pārvaldīt, izmantojot gan ugunsmūra-cmd konsoles utilītu, gan grafisko interfeisu. CentOS visbiežāk tiek izmantots serveros, tāpēc jums būs jāstrādā terminālī. Apskatīsim utilīta sintaksi:

ugunsmūra cmd opcijas

Lai pārvaldītu zonas, tiek izmantota šāda sintakse:

firewall-cmd --config --zone=opciju zona

Kā konfigurāciju ir jānorāda opcija --permanent, lai saglabātu izmaiņas pēc atsāknēšanas, vai arī nenorādiet neko, tad izmaiņas būs derīgas tikai līdz atsāknēšanai. Zonai izmantojiet vajadzīgās zonas nosaukumu. Apskatīsim utilīta iespējas:

  • --Valsts- parādīt ugunsmūra stāvokli;
  • --Pārlādēt- pārlādēt noteikumus no pastāvīgās konfigurācijas;
  • --pabeigt-pārlādēt- stingra noteikumu pārkraušana, pārtraucot visus savienojumus;
  • -- no izpildlaika līdz pastāvīgam- pārvietot izpildlaika konfigurācijas iestatījumus uz pastāvīgo konfigurāciju;
  • -- pastāvīgs- izmantot pastāvīgu konfigurāciju;
  • --get-default-zone- parādīt pēc noklusējuma izmantoto zonu;
  • --set-default-zone- iestatīt noklusējuma zonu;
  • --get-active-zones- parādīt aktīvās zonas;
  • --get-zones- parādīt visas pieejamās zonas;
  • --get-services- parādīt iepriekš definētus pakalpojumus;
  • -- sarakstu-visas zonas- parādīt visu zonu konfigurāciju;
  • --jaunā zona- izveidot jaunu zonu;
  • --dzēst zonu- dzēst zonu;
  • -- saraksts-viss- noņemt visu, kas ir pievienots no izvēlētās zonas;
  • -- sarakstu pakalpojumi- parādīt visus zonai pievienotos pakalpojumus;
  • --pievienošanas pakalpojums- pievienot zonai pakalpojumu;
  • --remove-service- izņemt pakalpojumu no zonas;
  • --list-ports- zonai pievienoti displeja porti;
  • -- pievieno portu- pievienot zonai portu;
  • --noņemt portu- izņemt ostu no zonas;
  • -- vaicājuma ports- parādīt, vai osta ir pievienota zonai;
  • --saraksta protokoli- zonai pievienotie displeja protokoli;
  • - pievienot protokolu- pievienot zonai protokolu;
  • --noņemt protokolu- izņemt protokolu no zonas;
  • --list-source-ports- zonai pievienoti displeja avota porti;
  • --pievienot-avota-portu- pievienot zonai avota portu;
  • --noņemt avota portu- noņemt avota portu no zonas;
  • --list-icmp-blocks- parādīt icmp bloku sarakstu;
  • --add-icmp-block- pievienot bloķējošu icmp;
  • --add-icmp-block- noņemt bloķējošos icmp;
  • --pievienot-forward-port- pievienojiet portu, lai novirzītu uz NAT;
  • --noņemt-forward-port- noņemiet portu, lai novirzītu uz NAT;
  • --add-masquerade- iespējot NAT;
  • --noņemt-maskēt- noņemt NAT.

Šīs nav visas utilītas iespējas, taču šim rakstam mums ar tām pietiks.

Ugunsmūra konfigurēšana sistēmā CentOS 7

1. Ugunsmūra statuss

Pirmais solis ir pārbaudīt ugunsmūra statusu. Lai to izdarītu, palaidiet:

sudo systemctl statusa ugunsmūris

Ja ugunsmūra pakalpojums ir atspējots, tas ir jāiespējo:

sudo systemctl start firewall
sudo systemctl iespējot ugunsmūri

Tagad jums ir jāpārbauda, ​​​​vai ugunsmūris darbojas, izmantojot komandu firewall-cmd:

sudo firewall-cmd --state

Ja programma darbojas un viss ir kārtībā, jūs saņemsit ziņojumu "darbojas".

2. Zonu pārvaldība

Kā jūs jau sapratāt, zonas ir galvenais tīkla savienojumu pārvaldības rīks. Lai skatītu noklusējuma zonu, palaidiet:

sudo firewall-cmd --get-default-zone

Manā gadījumā šī ir publiskā zona. Pašreizējo zonu var mainīt, izmantojot opciju --set-default-zone:

sudo firewall-cmd --set-default-zone=public

Lai redzētu, kuras zonas tiek izmantotas visām tīkla saskarnēm, palaidiet:

sudo firewall-cmd --get-active-zones

Sarakstā tiks parādītas zonas un saskarnes, kurām tās ir piešķirtas. Izmantojot šo komandu, varat skatīt noteiktas zonas konfigurāciju. Piemēram, publiskajai zonai:

3. Pakalpojumu iestatīšana

Visus iepriekš definētos pakalpojumus var apskatīt ar komandu:

sudo firewall-cmd --get-services

Komandā tiks uzskaitīti visi pieejamie pakalpojumi, jūs varat pievienot jebkuru no tiem zonai, lai to iespējotu. Piemēram, atļausim savienojumu ar http:

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

Un, lai noņemtu šo pakalpojumu, palaidiet:

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

Abos gadījumos mēs izmantojām opciju --permanent, lai konfigurācija saglabātos pēc atkārtotas palaišanas. Pēc izmaiņām jums ir jāatjaunina noteikumi:

sudo firewall-cmd -- pārlādēt

Pēc tam, ja skatāties uz zonas konfigurāciju, tur parādīsies pievienotais pakalpojums:

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

4. Kā atvērt portu programmā Firewall

Ja nepieciešamajai programmai nav pakalpojuma, varat atvērt tās portu manuāli. Lai to izdarītu, vienkārši pievienojiet vajadzīgo portu zonai. Piemēram, ports 8083:

sudo firewall-cmd --zone=public --add-port=8083/tcp --permanent

Lai noņemtu šo portu no zonas, palaidiet:

sudo firewall-cmd --zone=public --remove-port=8083/tcp --permanent

Līdzīgi kā pakalpojumos, lai atvērtu portu centos 7 ugunsmūrī, ugunsmūris ir jārestartē.

sudo firewall-cmd -- pārlādēt

5. Ugunsmūra portu pārsūtīšana

Portu pārsūtīšanu programmā Firewall ir daudz vieglāk konfigurēt nekā iptables. Ja vēlaties, piemēram, novirzīt trafiku no porta 2223 uz portu 22, vienkārši pievienojiet novirzīšanu uz zonu:

sudo firewall-cmd --zone=public --add-forward-port=port=2223:proto=tcp:toport=22

Šeit novirzīšana tiek veikta tikai pašreizējā mašīnā. Ja vēlaties iestatīt NAT tīklu un pārsūtīt portu uz citu mašīnu, vispirms ir jāiespējo maskēšanas atbalsts:

sudo firewall-cmd --zone=public --add-masquerade

Pēc tam varat pievienot portu:

sudo firewall-cmd --zone=public --add-forward-port=port=2223:proto=tcp:toport=22:toaddr=192.168.56.4

6. Paplašinātie noteikumi

Ja zonu funkcionalitāte jums nav pietiekama, varat izmantot papildu noteikumus. Paplašināto noteikumu vispārīgā sintakse ir šāda:

noteikumu ģimene = "ģimenes" avota vērtības galamērķa vērtību žurnāla audita darbība

Šeit ir norādīta galveno parametru nozīme:

  • protokola ģimenes var norādīt ipv4 vai ipv6 vai nenorādīt neko, tad noteikums attieksies uz abiem protokoliem;
  • avots un galamērķis ir paketes sūtītājs un saņēmējs. Kā šos parametrus var izmantot IP adresi (adresi), pakalpojumu (pakalpojuma nosaukums), portu (portu), protokolu (protokolu) un tā tālāk;
  • žurnāls- ļauj reģistrēt pakešu pāreju, piemēram, syslog. Šajā iestatījumā varat norādīt žurnāla rindas prefiksu un reģistrēšanas detalizētības līmeni;
  • audits ir alternatīvs veids, kā reģistrēties, kad ziņojumi tiks nosūtīti pārbaudītajam pakalpojumam.
  • Darbība ir darbība, kas jāveic ar atbilstošo paku. Pieejams: pieņemt, nomest, noraidīt, atzīmēt.

Apskatīsim dažus piemērus. Mums ir jābloķē piekļuve serverim lietotājam ar IP 135.152.53.5:

sudo firewall-cmd --zone=public --add-rich-rule "noteikumu ģimene = "ipv4" avota adrese=135.152.53.5 noraidīt

Vai arī mums ir jāliedz tam pašam lietotājam tikai piekļuve 22. portam:

sudo firewall-cmd --zone=public --add-rich-rule "noteikumu saime = "ipv4" avota adrese=135.152.53.5 ports ports=22 protokols=tcp noraidīt

Visus paplašinātos noteikumus var apskatīt ar komandu:

sudo firewall-cmd --list-rich-rules

secinājumus

Šajā rakstā mēs apskatījām, kā sistēmā CentOS 7 tiek konfigurēts ugunsmūris un kādus uzdevumus var veikt, izmantojot to. Programma ir daudz vieglāk lietojama nekā iptables, taču, manuprāt, Ubuntu ugunsmūra papildinājums ir vēl vieglāk lietojams.