Kapcsolatok

Centos 7 tűzfal cmd nyitott port. Az alapértelmezett zóna beállítása

Ma bemutatom az univerzális szerver kezdeti konfigurációjáról szóló elképzelésemet egy népszerű operációs rendszeren. Beszélni fogok arról, hogyan kell elvégezni a centos szerver alapkonfigurációját közvetlenül a telepítés után, hogy bármilyen kapacitásban használhassa. Adott gyakorlati tanácsokat növeli a szerver biztonságát és használhatóságát. A cikk a Centos utolsó két kiadása - 7 és 8 - szempontjából lesz releváns.

  1. Sorolja fel a kezdeti centos-beállításokat, amelyeket egy frissen telepített szerveren teszek.
  2. Mutasson példákat azokra a konfigurációkra, amelyeket egy tipikus beállításnál használok.
  3. Adjon tanácsot a centos beállításához a rendszerrel kapcsolatos tapasztalatai alapján.
  4. Adja meg a kiszolgáló adminisztrálását segítő tipikus programok és segédprogramok listáját.

Ez a cikk a szerverről szóló egyetlen cikksorozat része.

Bevezetés

A Centos 8 új kiadása után nehéz lett egyetlen cikkben leírni kezdeti beállítás mindkét szerveren, de nem akartam megosztani a cikket, mivel sok bejövő link érkezik hozzá különböző helyekről. Kényelmesebb mindkét kiadáshoz közös anyagot karbantartani, amit meg is teszek. Ugyanakkor jól láthatóak lesznek a különbségek a két verzió között, ami a centos 8 megjelenése után pár évig mindkettő releváns lesz, és a helyzettől függően mindkét verziót kell használni.

A Centos 7 csomagkezelőt használ namés a Centos 8-ban - dnf. Ugyanakkor hagytak egy szimbolikus linket a yum-ról a dnf-re, így a keresztnevet és a másodikat is írhatod. A következetesség kedvéért mindenhol yumot fogok használni, de figyelmeztetlek, csak hogy megértsd, miért csinálom így. Valójában a CentOS 8 dnf-et használ, amely egy másik, modernebb csomagkezelő, amely lehetővé teszi, hogy ugyanazon szoftver különböző verzióival dolgozzon. Ehhez külön adattárakat használnak, amelyek a centos 8-hoz jelentek meg.

A CentOS kezdeti beállítása

Személy szerint én minden rendszerbeállítást elindítok, legyen az centos vagy más, telepítés után a rendszer teljes frissítésével. Ha a telepítési kép friss volt, vagy a telepítés a hálózaton keresztül történt, akkor valószínűleg nem lesznek frissítések. Leggyakrabban azok telepítési képek nem mindig frissülnek rendszeresen.

Frissítjük a rendszert

# yum frissítés

Az adminisztráció megkönnyítése érdekében mindig telepítem a Midnight Commander-t, vagy csak az mc-t:

# yum install mc

És azonnal bekapcsolom a szintaxis kiemelését minden olyan fájlnál, amely nincs kifejezetten feltüntetve a fájlban /usr/share/mc/syntax/Syntax szintaxis az sh és bash szkriptekhez. Ez az általános szintaxis jól illeszkedik a szerveren leggyakrabban használt konfigurációs fájlokhoz. A fájl felülírása ismeretlen.szintaxis. Ez az a minta, amelyet a .conf és .cf fájlokra alkalmazunk, mivel ezekhez nincs kifejezetten hozzárendelve szintaxis.

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

Ezután hálózati segédprogramokra lesz szükségünk. A rendszer telepítésekor kiválasztott kezdeti csomagok készletétől függően a hálózati segédprogramok egyik vagy másik készlete lesz. Itt van egy lista azokról, amelyeket személyesen megszoktam - ifconfig, netstat, nslookup és néhány más. Ha szüksége van rájuk, mint én, akkor azt javaslom, hogy telepítse őket külön, ha még nincsenek telepítve. Ha nincs igazán szüksége rájuk, és nem is használja őket, akkor kihagyhatja a telepítésüket. Nézzük meg, mi van jelenleg a rendszerben

#ifconfig

Ha látod a választ:

Bash: ifconfig: parancs nem található

Ez azt jelenti, hogy a segédprogram nincs telepítve. A CentOS ifconfig helyett most egy segédprogram ip. Ez nem csak a centókra vonatkozik. Ez a kép szinte minden népszerű modern Linux disztribúcióban megtalálható. Bár régen hozzászoktam az ifconfighoz Utóbbi időben Gyakorlatilag nem használom. Mindig is szerettem, hogy a különböző Linux disztribúciókban minden nagyjából ugyanaz. Az ifconfig segítségével nem csak linuxban, hanem freebsd-ben is beállíthatja a hálózatot. Ez kényelmes. És ha minden elosztókészletnek saját eszköze van, ez nem kényelmes. Bár most ez már nem nagyon aktuális, mivel már nem Freebsd-vel dolgozom, és az ip segédprogram minden linux disztribúcióban megtalálható. Ha azonban szükséged van ifconfig-ra, telepítheted a csomagot net-eszközök ami magában foglalja:

# yum net-tools telepítése

Ahhoz, hogy az nslookup parancsok működjenek nekünk vagy például a hostnak, telepítenie kell a csomagot bind-utils. Ha ez nem történik meg, akkor a parancs:

# nslookup

Lesz egy kimenet:

Bash: nslookup: parancs nem található

Tehát telepítse a bind-utils-t:

# yum install bind-utils

A SELinux letiltása

A SELinux letiltása. Használata és beállítása külön beszélgetés. Most nem teszem meg. Tehát kapcsoljuk ki:

# mcedit /etc/sysconfig/selinux

változtassa meg az értéket

SELINUX=letiltva

A változtatások érvénybe lépéséhez újraindíthatja:

# újraindítás

És ha újraindítás nélkül szeretné letiltani a SELinuxot, futtassa a parancsot:

# setenforce 0

Sok kritikát kapok a SELinux állandó letiltásával kapcsolatban. Tudom, hogyan működik, tudom, hogyan kell beállítani. Valójában nem túl nehéz és nem nehéz elsajátítani. Ez az én tudatos döntésem, bár néha módosítok rajta. A rendszerrel való munkavégzés formátuma olyan, hogy a SELinux-ra leggyakrabban nincs szükségem, így nem vesztegetem rá az időt, és letiltom az alap centos beállításban. A rendszerbiztonság összetett feladat, különösen a mai világban webfejlesztés ahol a mikroszolgáltatások és a konténerek uralják a szállást. A SELinux egy olyan réseszköz, amelyre nincs mindig és mindenhol szükség. Ezért nincs helye ebben a cikkben. Akinek szüksége van rá, az külön engedélyezi a SELinuxot és beállítja.

Adja meg a hálózati paramétereket

A telepítés után folytatjuk a centos alapbeállítását. Most tegyük meg, ha valamilyen okból nem tettük meg a telepítés során, vagy ha módosítani kell őket. A Centos hálózata általában a használatával van konfigurálva hálózati menedzserés konzolos segédprogramja nmtui. Az alapvető rendszerbeállításokkal együtt érkezik. Egyszerű és érthető GUI szóval nincs mit mesélni. Inkább a network-scripts konfigurációs fájlokon keresztül szoktam konfigurálni a hálózatot. A centos 7-es verzióban a dobozból kikerültek, a 8-as verzióban eltávolították. Ha használni szeretné őket a hálózat konfigurálásához, külön telepítenie kell a csomagot hálózati szkriptek.

# yum hálózati szkriptek telepítése

Most befejezheti a hálózat beállítását. Ehhez nyissa meg a fájlt /etc/sysconfig/network-scripts/ifcfg-eth0

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

Ha dhcp-n keresztül kapja meg a hálózati beállításokat, akkor a konfigurációs fájl minimális beállításkészlete a következő lesz.

TYPE="Ethernet" BOOTPROTO="dhcp" DEFROUTE="igen" IPV4_FAILURE_FATAL="no" NAME="eth0" DEVICE="eth0" ONBOOT="igen"

Statikus IP-cím beállításához a beállítások a következők.

TYPE="Ethernet" BOOTPROTO="nincs" DEFROUTE="igen" IPV4_FAILURE_FATAL="no" NAME="eth0" DEVICE="eth0" ONBOOT="igen" IPADDR=192.168.167.117 DNS1=192.168.167 DNS=192.168.167. 192.168.167.113

Az IPADDR mezőbe írja be a címét, a PREFIX hálózati maszkba, a GATEWAY átjáróba, DNS-cím dns szerver. Mentse el a fájlt, és indítsa újra a hálózatot a beállítások alkalmazásához:

# systemctl indítsa újra a hálózatot

Tűzfal beállítása

Adattárak hozzáadása

A centos beállításakor gyakran olyan szoftverekre van szükség, amelyek nem szerepelnek a szabványos fehérrépa között. A telepítéshez további csomagok szükséges. A legnépszerűbb az EPEL. Régebben volt rpmforge, de már több éve bezárták. Mindenki megfeledkezett róla. Csatlakoztatjuk az EPEL adattárat. Minden egyszerű vele, a szokásos fehérrépából adják hozzá:

# yum install epel-release

A CentOS 7 esetében is rendkívül hasznos a REMI adattár, amely lehetővé teszi továbbiak telepítését friss verziók php, szemben a szabványos tárolóban lévőkkel. Hadd emlékeztesselek arra, hogy ez php verzió 5.4, ​​ami már nem jó, és kikerült a támogatásból.

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

A Centos 8 esetében a remi még nem aktuális, de szerintem átmeneti. Ez a két centos adattár elvileg nekem általában elég szokott lenni. Mások már csatlakoztatva vannak a különféle szoftverek telepítéséhez szükséges speciális igényekhez.

Az előzmények tárolásának beállítása a bash_history fájlban

Tovább a centos rendszer beállításához a szerveren. Hasznos lesz néhány változtatást végrehajtani a parancselőzmények mentésére szolgáló szabványos mechanizmuson. Gyakran segít, ha emlékeznie kell valamelyik korábban beírt parancsra. Az alapértelmezett beállításoknak van néhány korlátozása, amely kényelmetlen. Íme a listájuk:

  1. Alapértelmezés szerint csak az utolsó 1000 parancs kerül mentésre. Ha több van belőlük, akkor a régebbiek törlődnek és újak kerülnek a helyükre.
  2. A parancsok végrehajtásának dátuma nincs megadva, csak egy lista a végrehajtásuk sorrendjében.
  3. A parancsok listáját tartalmazó fájl a munkamenet vége után frissül. Párhuzamos munkamenetek során egyes parancsok elveszhetnek.
  4. Abszolút minden parancs mentésre kerül, bár néhányat nincs értelme tárolni.

Az utoljára végrehajtott parancsok listája a felhasználó saját könyvtárában tárolódik egy fájlban .bash_history(pont az elején). Bármilyen szerkesztővel megnyitható és megtekinthető. A lista kényelmesebb megjelenítéséhez írja be a parancsot a konzolon:

# előzmények

és nézzen meg egy számozott listát. Gyorsan megtalálhat egy adott parancsot, ha csak a szükséges sorokat szűri, például:

# történelem | grep yum

Tehát látni fogjuk a yum parancs futtatásához szükséges összes lehetőséget, amelyek az előzményekben tárolódnak. Javítsuk ki a CentOS parancselőzményeinek tárolására vonatkozó szabványos beállítások felsorolt ​​hiányosságait. Ehhez szerkesztenie kell a fájlt .bashrc, amely ugyanabban a könyvtárban található, mint az előzményfájl. Adja hozzá a következő sorokat:

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

Az első lehetőség a fájl méretét 10 000 sorra növeli. Többet is készíthet, bár ez a méret általában elég. A második paraméter azt határozza meg, hogy a parancs végrehajtásának dátumát és időpontját el kell menteni. A harmadik sor közvetlenül a parancs végrehajtása után arra kényszeríti, hogy elmentse az előzményekbe. Az utolsó sorban létrehozunk egy kivétellistát azokhoz a parancsokhoz, amelyeket nem kell rögzíteni az előzményekben. hoztam egy példát egyszerű lista. Belátása szerint kiegészítheti.

A módosítások alkalmazásához ki kell jelentkeznie, és újra csatlakoznia kell, vagy futtassa a parancsot:

# forrás ~/.bashrc

A parancselőzmények tárolásának beállításakor ennyi. A .bashrc fájlban sok érdekes dolgot konfigurálhatunk. Valamikor nagyon szerettem és kísérleteztem, de aztán mindent felhagytam, mert semmi értelme. Ha ügyfélszerverekkel dolgozom, akkor leggyakrabban az alapértelmezett bash-t látom, így jobb, ha megszokja, és ebben dolgozom. És külön beállítások és díszítések a sok személyi számítógép és szerver. Nem dolgozók. Így a centos szerverben nem kell mást a szabvány szerint konfigurálnom ebből a szempontból.

Automatikus rendszerfrissítés

A szerver biztonságának megfelelő szinten tartása érdekében legalább időben frissíteni kell - mind magát a kernelt a rendszer segédprogramjaival, mind pedig más csomagokat. Megteheti manuálisan is, de a hatékonyabb munka érdekében jobb, ha beállítja az automatikus végrehajtást. Nem szükséges automatikusan telepíteni a frissítéseket, de legalább ellenőrizni kell a megjelenésüket. Általában ezt a stratégiát követem.

Yum cron

A Centos 7 frissítéseinek automatikus ellenőrzéséhez a segédprogram segít yum cron. Telepítése hagyományosan a yum-on keresztül történik a szabványos tárolóból.

# yum install yum cron

A telepítés után a yum-cron létrehozza automatikus feladat a segédprogram végrehajtásához /etc/cron.dailyés /etc/cron.hourly. Alapértelmezés szerint a segédprogram letölti a talált frissítéseket, de nem alkalmazza azokat. Ehelyett a rendszergazda a helyi postafiók A root értesítést küld a frissítésekről. Következő te vagy kézi üzemmód jöjjön be, és döntse el, hogy telepíti-e a frissítéseket vagy sem az Ön számára megfelelő időpontban. Ez az üzemmód tűnik számomra a legkényelmesebbnek, ezért nem módosítom ezeket a beállításokat.

A yum-cron a címen található konfigurációs fájlokon keresztül konfigurálható /etc/yum/yum-cron.confés yum-cron-hourly.conf. Jól kommentálják őket, így nincs szükségük részletes magyarázatra. Figyelem a szakaszt , ahol megadhatja az üzenetküldési beállításokat. Az alapértelmezett a levelek küldése a helyi gazdagépen keresztül. Itt módosíthatja a beállításokat, és üzeneteket küldhet harmadik félen keresztül levelezőszerver. Ehelyett én személy szerint jobban szeretem beállítani a globális továbbítást a teljes szerverre helyi posta root egy külső postafiókba egy másik smtp-kiszolgálón lévő engedélyezéssel.

Dnf-automata

Ahogy korábban mondtam, a Centos 8 egy másik csomagkezelőt használ - dnf. A csomagfrissítések konfigurálása a segédprogramon keresztül történik dnf-automatikus. Telepítsük és állítsuk be.

# yum install dnf-automatic

Az ütemezett indítás kezelését már nem a cron kezeli, hanem a systemd a beépített ütemezővel. Az automatikus indítási időzítőket a következő paranccsal tekintheti meg:

# systemctl list-timers *dnf-*

Ha nincs ott feladat, akkor manuálisan is hozzáadhatja az időzítőt:

# systemctl enable --now dnf-automatic.timer

Az alapértelmezett időzítő úgy van beállítva, hogy a dnf-automatikus elindítása egy órával a kiszolgáló rendszerindítása után induljon el, és naponta ismétlődik. Az időzítő konfigurációja itt található - /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

A dnf-automatic konfigurációja benne van /etc/dnf/automatic.conf. Alapértelmezés szerint csak letölti a frissítéseket, de nem alkalmazza azokat. A konfigurációt jól kommentálták, így tetszés szerint testreszabhatod. Külön magyarázat nem szükséges. Testreszabhatja a rendszercsomag frissítéseit ízlése szerint. Mint mondtam, csak automatikusan töltöm le őket. A telepítést mindig kézi vezérléssel kézben tartom.

Az üzenetek elárasztásának letiltása a /var/log/messages fájlban

Folytatva a centos konfigurációt, egy apró kellemetlenséget kijavítunk. A 7-es rendszerverzió alapértelmezett telepítésében az összes rendszernaplót /var/log/messages egy idő után a szerver eltömődik a következő rekordokkal.

október 16. 14:01:01 xs-files systemd: Létrehozva a user-0.slice szelet. október 16. 14:01:01 xs-files systemd: Indító user-0.slice. Október 16. 14:01:01 xs-files systemd: Elindította a root felhasználó 14440-es munkamenetét. Október 16. 14:01:01 xs-files systemd: A root felhasználó 14440-es munkamenetének indítása. október 16. 14:01:01 xs-files systemd: Eltávolított szelet user-0.slice. október 16. 14:01:01 xs-files systemd: A user-0.slice leállítása. október 16. 15:01:01 xs-files systemd: Létrehozva a user-0.slice szelet. október 16. 15:01:01 xs-files systemd: Indító user-0.slice. Október 16. 15:01:01 xs-files systemd: Elindította a root felhasználó 14441. munkamenetét. Október 16. 15:01:01 xs-files systemd: A root felhasználó 14441. munkamenetének indítása. Október 16. 15:01:01 xs-files systemd: Elindította a root felhasználó 14442-es munkamenetét. Október 16. 15:01:01 xs-files systemd: A root felhasználó 14442-es munkamenetének indítása. október 16. 15:01:01 xs-files systemd: Eltávolított szelet user-0.slice. október 16. 15:01:01 xs-files systemd: A user-0.slice leállítása. október 16. 16:01:01 xs-files systemd: Létrehozva szelet user-0.slice. október 16. 16:01:01 xs-files systemd: Indító user-0.slice. Október 16. 16:01:01 xs-files systemd: Elindította a root felhasználó 14443-as munkamenetét. Október 16. 16:01:01 xs-files systemd: A root felhasználó 14443-as munkamenetének indítása. október 16. 16:01:01 xs-files systemd: Eltávolított szelet user-0.slice.

A Centos 8-ban nem vettem észre őket, így nincs mit tenni. Az üzeneteknek nincs gyakorlati haszna, ezért letiltjuk őket. Ehhez létrehozunk egy külön szabályt az rsysloghoz, ahol felsoroljuk az összes üzenetsablont, amelyet kivágunk. Tegyük ezt a szabályt egy külön fájlba /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf if $programname == "systemd" and ($msg tartalmazza a "Starting Session" vagy $msg "Indított munkamenet" vagy $msg tartalmazza a "Létrehozva" szelet" vagy a $msg tartalmazza a "Starting user-" vagy a $msg tartalmazza a "Starting User Slice of" vagy a $msg tartalmazza az "Eltávolított munkamenetet" vagy a $msg tartalmazza a "Removed slice User Slice of" vagy a $msg tartalmazza a "Stopping User Slice of" ), majd hagyja abba

Mentse el a fájlt, és indítsa újra az rsyslog-ot a beállítások alkalmazásához.

# systemctl indítsa újra az rsyslogot

Meg kell értenie, hogy ebben az esetben csak a naplófájlban tiltjuk le az elárasztást helyi szerver. Ha naplót vezetsz, akkor ezt a szabályt konfigurálni kell rajta.

Iftop, atop, htop, lsof telepítése CentOS-en

És végül, a beállítás végén, adjunk hozzá néhányat hasznos közművek, ami hasznos lehet a szerver működése során.

Az iftop valós időben mutatja a hálózati interfész betöltődését, többféle gombbal indítható, ezen nem térek ki részletesen, a neten van információ erről a témáról. Rakjuk:

# yum install iftop

És két érdekes feladatkezelő, legtöbbször htop-ot használok, de néha jól jön az atop. Mindkettőt feltesszük, nézd meg magad, találd ki, melyik tetszik a legjobban, megfelel:

# yum install htop # yum install atop

Az egyes folyamatok által használt fájlok megjelenítéséhez javasoljuk a segédprogram telepítését lsof. Valószínűleg előbb-utóbb jól jön, amikor diagnosztizálja a szerver működését.

# yum telepítse a wget bzip2 traceroute gdisket

Nekem ennyi. Alapbeállítás A CentOS befejeződött, megkezdheti a fő funkciók telepítését és konfigurálását.

A rendszerposta beállítása

A beállítás végén CentOS szerverek tegyük úgy, hogy a helyi gyökérnek címzett levelek egy külső levelezőszerveren keresztül kerüljenek a kiválasztott postafiókba. Ha ez nem történik meg, akkor helyileg hozzáadódik egy fájlhoz /var/spool/mail/root. És lehet, hogy van egy fontos hasznos információk. Állítsuk be úgy, hogy a rendszergazda postafiókjába kerüljön.

Erről részletesen egy külön cikkben beszéltem -. Itt csak a parancsok és a gyors beállítás rövidek. Telepítse a szükséges csomagokat:

# yum telepítse a mailx cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain postfix

Valami ehhez hasonló konfigurációt rajzolunk a postfixhez.

Cat /etc/postfix/main.cf ## ALAPÉRTELMEZETT KONFIG. KEZDÉS ###################### queue_directory = /var/spool/postfix command_directory = /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_maps=hash:/etc/alias_maps=hash:/etc/aliases_degger_combhaalias=deugger_combhaalias =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $démon_könyvtár/$folyamatnév $folyamatazonosító és alvás 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin/ newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = nincs manpage_directory = /usr/share/man minta_könyvtár = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share/ doc/postfix-2.10.1/README_FILES ## ALAPÉRTELMEZETT KONFIG. VÉGE ####################### # Szervernév kimenete paranccsal hostname myhostname = centos-teszt. xs .local # Itt n a logikáról csak a tartományt kell meghagyni, de ebben az esetben érdemes meghagyni a szerver teljes nevét, hogy a feladó # mezőben a szerver teljes neve jelenjen meg, kényelmesebb a szolgáltatási üzenetek elemzése mydomain = centos-test.xs.local mydestination = $myhostname myorigin = $sajatdomain # Annak a szervernek a címe, amelyen keresztül küldjük a leveleket relayhost = mailsrv.mymail.ru:25 smtp_use_tls = igen smtp_sasl_auth_enable = yespost_shmaslps /sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = lehet

Az engedélyezéshez létrehozunk egy fájlt a felhasználónévvel és a jelszóval kapcsolatos információkkal.

# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [e-mail védett]:Jelszó

Létrehozunk egy db fájlt.

# postmap /etc/postfix/sasl_passwd

Most újraindíthatja a postfixet, és ellenőrizheti, hogy működik-e.

# systemctl indítsa újra a postfixet

A root in szabványos álnevére /etc/aliases, adja hozzá azt a külső címet, amelyre a root címzett levél megkettőződik. Ehhez szerkessze a megadott fájlt, módosítsa az utolsó sort.

#gyökér: márc

gyökér: gyökér, [e-mail védett]

A tanúsítvány adatbázis frissítése:

#újnevek

Küldjünk levelet a konzolon keresztül a helyi gyökérnek:

# df -h | mail -s "Lemezhasználat" gyökér

A levélnek külső postafiókba kell kerülnie. Ha a Yandex postafiókját használja, akkor valószínűleg hibaüzenet jelenik meg a levelezőszerver naplójában, és a levél nem kerül elküldésre.

Relay=smtp.yandex.ru:25, delay=0.25, delays=0/0/0.24/0.01, dsn=5.7.1, status=bounced (az smtp.yandex.ru gazdagép szerint: 553 5.7.1 A küldő címe elutasítva: nem az auth felhasználó tulajdona. (válaszul a MAIL FROM parancsra))

Ez a hiba azt jelenti, hogy nem ugyanaz a postafiókja van, mint az engedélyezéshez használt levél feladójának. Hogyan lehet ezt kijavítani, egy külön cikkben mondom el -. Más levelezőrendszerekkel, ahol nincs ilyen ellenőrzés, mindennek rendben kell lennie, és így van.

Ezzel befejeződik a helyi levelezés beállítása. Mostantól minden helyi gyökérnek címzett levél, például a cron jelentései, egy külső postafiókba duplikálódik, és egy teljes értékű levelezőszerveren keresztül kerül elküldésre. Tehát a levelek a szokásos módon kézbesítve lesznek, anélkül, hogy spambe kerülnének (bár nem feltétlenül, de vannak heurisztikus szűrők).

Következtetés

Néhányat befejeztünk kezdeti lépései a CentOS szerver beállításáról, amit általában a telepítés után közvetlenül a szerver előkészítésekor teszek meg. Nem teszek úgy, mintha az abszolút igazság lennék, talán kihagyok valamit, vagy valamit nem egészen jól csinálok. Örömmel fogadom az ésszerű és értelmes észrevételeket, észrevételeket javaslatokkal.

..
  • A Linux-alapú hálózatok telepítésének, konfigurálásának és karbantartásának megértése.
  • A felmerülő problémák gyors megoldásának képessége és a rendszer stabil és zavartalan működése.
  • Tesztelje magát a felvételi vizsgán, és további részletekért tekintse meg a programot.

    A szerver külső fenyegetésekkel szembeni védelme érdekében mindenekelőtt egy inter tűzfal, amely szűri a bejövő és kimenő forgalmat. Ebben a cikkben az iptables beállításával szeretnék foglalkozni – a tűzfal különleges esetével a CentOS rendszeren, valamint a telepítéséről és letiltásáról. Útmutatóm nem lesz kimerítő, csak azokat a szempontokat veszem figyelembe, amelyeket a legfontosabbnak tartok és magam is használok munkám során.

    Ez a cikk a szerverről szóló egyetlen cikksorozat része.

    Bevezetés

    Az Iptables jelenleg a modern szabvány de facto linux disztribúciók. Nem is emlékszem azonnal, mit használnak még tűzfalként. Tehát minden Linux rendszergazdának meg kell küzdenie a tűzfal beállításával a munkája során.

    Különféle kötések léteznek ehhez a tűzfalhoz, amelyeket a „kényelmesebb” beállítás érdekében használnak. Az Ubuntunak van ufw, centosban - tűzfal, nem ismeri mások. Én személy szerint nem látok kényelmetlenséget ezeknek az eszközöknek a használatában. Hozzászoktam, hogy a Linux tűzfalat a régi módon állítsam be, amint azt a munkám legelején megtanultam. Számomra úgy tűnik, hogy ez a legegyszerűbb és legkényelmesebb módja, amelyet megosztok Önnel. Lényege abban rejlik, hogy a szkript a tűzfal szabályai szerint jön létre. Ez a szkript könnyen szerkeszthető az Ön igényei szerint, és átvihető szerverről szerverre.

    Tűzfal letiltása

    A tűzfal letiltásának kérdését már érintettem a témában. Először is tiltsa le a tűzfalat, amely alapértelmezés szerint a centos 7-ben található, közvetlenül a telepítés után:

    # systemctl állítsa le a tűzfalat

    Most eltávolítjuk az indításból, hogy ne kapcsoljon be újra az újraindítás után:

    # systemctl letiltja a tűzfalat

    Ezt követően a kiszolgáló tűzfalbeállításai teljesen megnyílnak. Az iptables szabályokat a következő paranccsal tekintheti meg:

    Az iptables telepítése

    Valójában a szerverünkön már működik a tűzfal, egyszerűen nincsenek szabályok, minden nyitva van. További felügyeleti segédprogramokat kell telepítenünk, amelyek nélkül lehetetlen az iptables konfigurálása. Például nem lehet újraindítani a tűzfalat:

    # systemctl restart iptables.service Nem sikerült a metódushívás kiadása: Az iptables.service egység betöltése nem sikerült: Nincs ilyen fájl vagy könyvtár.

    Vagy az automatikus futtatáshoz nem fog működni:

    # systemctl enable iptables.service Nem sikerült a metódushívás kiadása: Nincs ilyen fájl vagy könyvtár

    Az ilyen hibák elkerülése érdekében telepítse a szükséges csomagot a segédprogramokkal:

    # yum -y az iptables-services telepítése

    Most hozzáadhatja az iptables-t az automatikus betöltéshez és futtatáshoz:

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

    Tűzfal beállítások

    Szkriptet használok a tűzfalszabályok kezelésére. Hozzuk létre:

    # mcedit /etc/iptables.sh

    Ezután kitöltjük a szükséges szabályokkal. A forgatókönyv minden jelentős részét elemzem, és Teljesen megadom a formában szöveges fájl a cikk végén. A szabályok képek formájában készültek, hogy tiltsák a másolást és beillesztést. Ez hibákhoz vezethet a szabályok működésében, amelyekkel magam is találkoztam a cikk elkészítése során.

    Megvizsgáljuk azt a helyzetet, amikor a szerver átjáró az internethez helyi hálózat.

    Először is állítsuk be az összes változót, amelyet használni fogunk a szkriptben. Ez nem kötelező, de ajánlott, mert kényelmes a beállítások átvitele szerverről szerverre. Elég lesz csak a változókat újra rendelni.

    Az új szabályok alkalmazása előtt törölje az összes láncot:

    Minden olyan forgalmat blokkolunk, amely nem felel meg egyik szabálynak sem:

    Minden localhost és localhost forgalom engedélyezése:

    Engedélyezzük a ping-et:

    Ha nincs rá szüksége, akkor ne adjon hozzá engedélyezési szabályokat az icmp-hez.

    Megnyitjuk az internet-hozzáférést magának a szervernek:

    Ha meg szeretné nyitni az összes bejövő szerverkapcsolatot, adja hozzá a következő szabályt:

    Most adjunk hozzá védelmet a leggyakoribb hálózati támadások ellen. Először vessünk el minden olyan csomagot, amelynek nincs állapota:

    Null csomagok blokkolása:

    Zárás a syn-Flood támadásoktól:

    Ha nem állít be korlátozásokat a helyi hálózatról való hozzáférésre, akkor mindenki számára lehetővé tesszük az internet elérését:

    Ezután megtiltjuk az internetről a helyi hálózathoz való hozzáférést:

    Annak érdekében, hogy a helyi hálózatunk használni tudja az internetet, bekapcsoljuk a nat-t:

    Annak érdekében, hogy ne veszítse el a szerverhez való hozzáférést, a szabályok alkalmazása után engedélyezzük az ssh-n keresztüli kapcsolatokat:

    És a végén felírjuk a szabályokat, hogy azok újraindítás után is érvényesek legyenek:

    Összeállítottunk egy egyszerű konfigurációt, amely blokkolja az összes bejövő kapcsolatot, kivéve az ssh-t, és lehetővé teszi a hozzáférést a helyi hálózatról az Internetre. Útközben védekeztünk néhány hálózati támadás ellen.

    Mentse el a szkriptet, tegye végrehajthatóvá és futtassa:

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

    Tekintsük át a szabályokat, és ellenőrizzük, hogy minden szabály a helyén van-e:

    # iptables -L -v -n

    Felhívom a figyelmét - csak akkor kell alkalmaznia a szabályokat, ha hozzáfér a szerverkonzolhoz. Ha hibázik a beállításokban, elveszítheti a hozzáférést. Győződjön meg arról, hogy vészhelyzetben kikapcsolhatja a tűzfalat és módosíthatja a beállításokat.

    Portok nyitása

    Most bővítsük egy kicsit a konfigurációnkat, és nyissunk meg portokat az iptables-ban bizonyos szolgáltatásokhoz. Tegyük fel, hogy fut egy webszerverünk, és meg kell nyitnunk a hozzáférést az internetről. Szabályok hozzáadása a webes forgalomhoz:

    Engedélyt adtunk a bejövő kapcsolatokhoz a 80. és 443. porton, amelyeket web szerver a munkádban.

    Ha van telepítve levelezőszerver, akkor minden használt porton engedélyeznie kell a bejövő kapcsolatokat:

    A DNS-kiszolgáló megfelelő működéséhez meg kell nyitnia az 53-as UDP-portot

    Port továbbítás

    Tekintsünk egy olyan helyzetet, amikor szükséges a porttovábbítás egy külső interfészről a helyi hálózat valamelyik számítógépére. Tegyük fel, hogy rdp hozzáférést kell kapnia a 10.1.3.50-es számítógéphez az internetről. 3389-es TCP-port továbbítása:

    Ha nem szeretne egy ismert porton kívülről ragyogni, akkor átirányíthat egy nem szabványos portról a célszámítógép rdp portjára:

    Ha a portot kívülről a helyi hálózaton belülre továbbítja, akkor feltétlenül írja le azt a szabályt, amely blokkolja a hozzáférést a külső hálózatról a belső hálózatra. Az én példámban ez a szabály: $IPT -A ELŐRE -i $WAN -o $LAN1 -j ELUTASÍTÁS

    Vagy e szabály előtt hozzon létre egy engedélyezési szabályt a belső szolgáltatáshoz való külső hozzáféréshez, például így:

    $IPT -A ELŐRE -i $WAN -d 10.1.3.50 -p tcp -m tcp --dport 3389 -j ELFOGADÁS

    Naplók engedélyezése

    A telepítés során hasznos engedélyezni a naplók számára a blokkolt csomagok figyelését, és kideríteni, hogy miért nincs hozzáférés a szükséges szolgáltatásokhoz, amelyeket úgy tűnik, már megnyitottunk. Az összes blokkolt csomagot a forgalmi iránynak megfelelő külön láncokba (block_in, block_out, block_fw) küldöm, és minden irányt megjelölök a naplókban. Így kényelmesebb a kikérdezés. A beállítások mentése előtt adja hozzá a következő szabályokat a szkript legvégéhez:

    Az összes blokkolt csomagot nyomon követheti a /var/log/messages fájlban.

    Miután befejezte a konfigurálást, írja le ezeket a sorokat a naplózás letiltásához. Ezt mindenképpen meg kell tennie, mivel a rönkök nagyon gyorsan nőnek. Én személy szerint nem látom gyakorlati értelmét az ilyen információk tárolásának.

    Hogyan lehet letiltani az iptables-t

    Ha hirtelen úgy dönt, hogy már nincs szüksége tűzfalra, akkor az alábbiak szerint tilthatja le:

    # systemctl stop iptables.service

    Ez a parancs leállítja a tűzfalat. És a következők eltávolításra kerülnek az automatikus betöltésből:

    # systemctl letiltja az iptables.service-t

    A tűzfal letiltásával minden csatlakozást engedélyeztünk.

    Következtetés

    Ahogy ígértem, egy kész forgatókönyvet teszek közzé az általunk figyelembe vett fő szabályokkal

    Még egyszer szeretném felhívni a figyelmét arra, hogy az iptables beállításakor rendkívül óvatosnak kell lennie. Ne indítsa el ezt a vállalkozást, ha nincs hozzáférése a szerverkonzolhoz. Már a cikk írásakor elvesztettem a hozzáférést a szerverhez egy nevetséges szabályhiba miatt. Ez a hiba a másolás és a kettős kötőjel elvesztése miatt keletkezett - ezt egyetlenegy váltotta fel.

    Linux Administrator online tanfolyam az OTUS-nál. A tanfolyam nem kezdőknek való, a felvételihez alapismeretek szükségesek a hálózatokról és a Linux virtuális gépre való telepítéséről. A képzés 5 hónapig tart, ezt követően a tanfolyamot sikeresen végzetteket partnerek interjúztathatják. Mit nyújt ez a tanfolyam:

    • Linux architektúra ismerete.
    • Korszerű adatelemzési és adatfeldolgozási módszerek és eszközök elsajátítása.
    • Képes konfigurációt választani a szükséges feladatokhoz, folyamatokat kezelni és rendszerbiztonságot biztosítani.
    • A rendszergazda alapvető munkaeszközeiben való jártasság.
    • A Linux-alapú hálózatok telepítésének, konfigurálásának és karbantartásának megértése.
    • A felmerülő problémák gyors megoldásának képessége és a rendszer stabil és zavartalan működése.
    Tesztelje magát a felvételi vizsgán, és további részletekért tekintse meg a programot.

    Telepítve operációs rendszer A tűzfalat arra használják, hogy megakadályozzák az illetéktelen forgalom áthaladását közöttük számítógépes hálózatok. Manuálisan vagy automatikusan speciális tűzfalszabályok jönnek létre, amelyek a hozzáférés szabályozásáért felelősek. A Linux kernelre fejlesztett operációs rendszer, a CentOS 7 beépített tűzfallal rendelkezik, és tűzfallal vezérli. Alapértelmezés szerint a FirewallD be van kapcsolva, ennek konfigurációjáról szeretnénk ma beszélni.

    Ahogy fentebb említettük, a FirewallD segédprogram szabványos tűzfalként van hozzárendelve a CentOS 7 rendszerben. Ez az oka annak, hogy a tűzfalbeállítást ennek az eszköznek a példaként való használatával tekintjük. Ugyanazon iptables használatával is beállíthat szűrési szabályokat, de ez egy kicsit más módon történik. Javasoljuk, hogy a következő hivatkozásra kattintva ismerkedjen meg az említett segédprogram konfigurációjával, és megkezdjük a FirewallD elemzését.

    Alapvető tűzfal fogalmak

    Számos zóna létezik - szabálykészlet a forgalom kezelésére a hálózatokba vetett bizalom alapján. Mindegyikhez saját házirendek vannak hozzárendelve, amelyek kombinációja alkotja a tűzfal konfigurációját. Minden zónához egy vagy több hálózati interfész van hozzárendelve, amely lehetővé teszi a szűrés beállítását is. Az alkalmazott szabályok közvetlenül függenek a használt interfésztől. Ha például nyilvános Wi-Fi-hálózathoz csatlakozik, a tűzfal növeli a vezérlési szintet és a bejövőt otthoni hálózat további hozzáférést nyit meg a lánc tagjai számára. A figyelembe vett tűzfalban ilyen zónák vannak:

    • megbízható - az összes hálózati eszköz maximális megbízhatósági szintje;
    • A home egy helyi hálózati csoport. Megvan a bizalom a környezetben, de a bejövő kapcsolatok csak bizonyos gépek számára érhetők el;
    • munka - munkaterület. A legtöbb eszközben bizalom van, és további szolgáltatások aktiválva vannak;
    • A dmz egy zóna elszigetelt számítógépek számára. Az ilyen eszközök le vannak választva a hálózat többi részétől, és csak bizonyos bejövő forgalmat engedélyeznek;
    • belső — belső hálózatok zónája. A bizalom minden gépre vonatkozik, további szolgáltatásokat nyitnak meg;
    • külső - az előző zóna fordítottja. Külső hálózatokon a NAT maszkolás aktív, lezárja a belső hálózatot, de nem blokkolja a hozzáférés lehetőségét;
    • nyilvános - nyilvános hálózatok zónája, ahol nem bíznak minden eszközben és egyénileg fogadják a bejövő forgalmat;
    • blokk - minden bejövő kérés eldobásra kerül, és hibaüzenetet küldtek icmp-host-inhibited vagy icmp6-adm-tilos;
    • drop a minimális bizalomszint. A bejövő kapcsolatok értesítés nélkül megszakadnak.

    Maguk a szabályzatok ideiglenesek és állandóak. Amikor a paraméterek megjelennek vagy szerkesztik, a tűzfal működése azonnal megváltozik, újraindítás nélkül. Ha ideiglenes szabályokat alkalmaztak, akkor azok a FirewallD újraindítása után visszaállnak. Így hívják az állandó szabályt – a -permanent argumentum alkalmazásakor a rendszer véglegesen elmenti.

    Engedélyezze a FirewallD-t

    Először el kell indítania a FirewallD-t, vagy meg kell győződnie arról, hogy aktív állapotban van. Csak egy futó démon (egy befutó program háttér) tűzfalszabályokat fog alkalmazni. Az aktiválás néhány kattintással megtörténik:

    1. Futtassa a Classicot "Terminál" bármilyen kényelmes módszerrel, például a menün keresztül "Alkalmazások".
    2. Írja be a sudo systemctl start firewalld.service parancsot, és nyomja meg a billentyűt Belép.
    3. A segédprogramot a szuperfelhasználó nevében kezelik, ezért jelszó megadásával kell hitelesíteni.
    4. A szolgáltatás futásának ellenőrzéséhez adja meg a firewall-cmd --state paramétert.
    5. A megnyíló grafikus ablakban hitelesítse újra.
    6. Megjelenik egy új sor. Jelentése futás azt jelzi, hogy a tűzfal működik.

    Ha egy napon ideiglenesen vagy véglegesen le kell tiltania a tűzfalat, javasoljuk, hogy kövesse az alábbi linken található másik cikkünkben található utasításokat.

    Tekintse meg az alapértelmezett szabályokat és az elérhető zónákat

    Még a normálisan működő tűzfalnak is megvannak a maga sajátos szabályai és elérhető zónái. A házirendek szerkesztésének megkezdése előtt javasoljuk, hogy ismerkedjen meg az aktuális konfigurációval. Ez egyszerű parancsokkal történik:

    1. A firewall-cmd --get-default-zone parancs segít meghatározni az alapértelmezés szerint működő zónát.
    2. Az aktiválás után látni fogja új sor, ahol a kívánt paraméter jelenik meg. Például az alábbi képernyőképen a zóna aktívnak tekinthető nyilvános.
    3. Egyszerre azonban több zóna is aktív lehet, ráadásul külön interfészhez vannak kötve. Ezt az információt a firewall-cmd --get-active-zones segítségével találja meg.
    4. A firewall-cmd --list-all parancs megjeleníti az alapértelmezett zónához beállított szabályokat. Ügyeljen az alábbi képernyőképre. Látod, hogy az aktív zóna nyilvános szabály hozzárendelve alapértelmezett- alapértelmezett működés, interfész "enp0s3"és hozzáadott két szolgáltatást.
    5. Ha tudnia kell az összes elérhető tűzfalzónát, írja be a firewall-cmd --get-zones parancsot.
    6. Egy adott zóna paramétereit a firewall-cmd --zone=name --list-all segítségével határozzák meg, ahol név— a zóna neve.

    Meghatározása után szükséges paramétereket módosíthatja és hozzáadhatja őket. Nézzük meg közelebbről a legnépszerűbb konfigurációkat.

    Interfész zónák konfigurálása

    Mint a fenti információkból tudja, minden interfésznek saját alapértelmezett zónája van. Ez addig marad benne, amíg a beállításokat a felhasználó vagy programozottan meg nem változtatja. Lehetőség van egy munkamenetre manuálisan átvinni a felületet a zónába, és ez a sudo firewall-cmd --zone=home --change-interface=eth0 parancs aktiválásával történik. Eredmény siker jelzi, hogy az átvitel sikeres volt. Ne feledje, hogy az ilyen beállítások a tűzfal újraindítása után azonnal visszaállnak.

    A paraméterek ilyen változtatásával szem előtt kell tartani, hogy a szolgáltatások működése visszaállhat. Némelyikük nem támogatja bizonyos zónák működését, például az SSH, bár az elérhető itthon, de a szolgáltatás megtagadja az egyedi vagy speciális szolgáltatások használatát. A firewall-cmd --get-active-zones beírásával ellenőrizheti, hogy az interfész sikeresen csatlakozott-e az új ághoz.

    Ha vissza szeretné állítani a korábban megadott beállításokat, csak indítsa újra a tűzfalat: sudo systemctl restart firewalld.service .

    Néha nem mindig kényelmes az interfész zónát csak egy munkamenetre módosítani. Ebben az esetben szerkesztenie kell a konfigurációs fájlt, hogy minden beállítás véglegesen megtörténjen. Ehhez javasoljuk egy szövegszerkesztő használatát. nano, amelyet a hivatalos tárolóból a sudo yum install nano telepít. Ezután a következő műveleteket kell végrehajtani:

    1. Nyissa meg a konfigurációs fájlt egy szerkesztőn keresztül a sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0 beírásával, ahol eth0— a szükséges interfész neve.
    2. Hitelesítés fiókot hogy további lépéseket tegyen.
    3. Keresse meg a paramétert ZÓNAés módosítsa az értékét a kívánt értékre, például nyilvános vagy otthoni .
    4. Tartsa lenyomva a gombokat Ctrl+O a változtatások mentéséhez.
    5. Ne változtassa meg a fájlnevet, csak kattintson rá Belép.
    6. Kijelentkezés szöveg szerkesztőát Ctrl + X.

    Most az interfész zóna a következő szerkesztésig az Ön által megadott lesz. konfigurációs fájl. A frissített beállítások érvénybe léptetéséhez futtassa a sudo systemctl restart network.service és a sudo systemctl restart firewalld.service parancsot.

    Az alapértelmezett zóna beállítása

    Fentebb már bemutattunk egy parancsot, amely lehetővé teszi az alapértelmezett zóna kiderítését. Ez egy tetszőleges paraméter beállításával is módosítható. Ehhez írja be a sudo firewall-cmd --set-default-zone=name a konzolba, ahol név— a szükséges zóna neve.

    A parancs sikerességét a felirat jelzi siker külön sorban. Ezt követően az összes jelenlegi interfész a megadott zónához lesz kötve, hacsak a konfigurációs fájlok másként nem rendelkeznek.

    Szabályok létrehozása programokhoz és segédprogramokhoz

    A cikk legelején az egyes zónák hatásáról beszéltünk. A szolgáltatások, segédprogramok és programok ilyen ágakban történő meghatározása lehetővé teszi, hogy mindegyikhez egyedi paramétereket alkalmazzanak az egyes felhasználók igényei szerint. Kezdésként azt tanácsoljuk, hogy ismerkedjen meg a jelenleg elérhető szolgáltatások teljes listájával: firewall-cmd --get-services .

    Az eredmény közvetlenül a konzolon jelenik meg. Minden szervert egy szóköz választ el, és a listában könnyen megtalálhatja az Önt érdeklő eszközt. Ha kívánt szolgáltatást hiányzik, azt külön kell telepíteni. Olvassa el a telepítési szabályokat a hivatalos szoftverdokumentációban.

    A fenti parancs csak a szolgáltatások nevét jeleníti meg. Részletes információk mindegyikhez a /usr/lib/firewalld/services útvonalon található egyedi fájlon keresztül jutunk hozzá. Az ilyen dokumentumok XML formátumúak, az SSH elérési útja például így néz ki: /usr/lib/firewalld/services/ssh.xml , és a dokumentum tartalma a következő:

    SSH
    A Secure Shell (SSH) egy protokoll a távoli gépekre való bejelentkezéshez és parancsok végrehajtásához. Biztonságos, titkosított kommunikációt biztosít. Ha azt tervezi, hogy távolról szeretné elérni a gépet SSH-n keresztül, tűzfalas felületen keresztül, engedélyezze ezt a lehetőséget. Ahhoz, hogy ez a beállítás hasznos legyen, telepítenie kell az openssh-server csomagot.

    A szerviztámogatás egy adott zónában manuálisan aktiválódik. V "Terminál" meg kell adni a sudo firewall-cmd --zone=public --add-service=http parancsot, ahol --zone=nyilvános- aktiválási zóna, és --add-service=http— a szolgáltatás neve. Felhívjuk figyelmét, hogy egy ilyen változtatás csak egy munkameneten belül lesz érvényes.

    Az állandó hozzáadás a sudo firewall-cmd --zone=public --permanent --add-service=http segítségével történik, és az eredmény: siker a művelet sikeres befejezését jelzi.

    Kilátás teljes lista Egy adott zónára vonatkozó állandó szabályokat úgy lehet megtenni, hogy a listát egy külön konzolsorban jelenítjük meg: sudo firewall-cmd --zone=public --permanent --list-services .

    A probléma megoldása a szolgáltatáshoz való hozzáférés hiányával

    Alapértelmezés szerint a tűzfalszabályok felsorolják a legnépszerűbb és biztonságos szolgáltatások ahogy megengedett, de valamilyen szabvány ill harmadik féltől származó alkalmazások blokkolja. Ebben az esetben a felhasználónak manuálisan kell módosítania a beállításokat a hozzáférési probléma megoldásához. Ezt kétféleképpen lehet megtenni.

    Port továbbítás

    Mint tudják, minden hálózati szolgáltatás egy adott portot használ. A tűzfal könnyen észleli, blokkolást lehet végrehajtani rajta. A tűzfal ilyen műveleteinek elkerülése érdekében meg kell nyitnia a szükséges portot a sudo firewall-cmd --zone=public --add-port=0000/tcp paranccsal, ahol --zone=nyilvános- a kikötő területe, --add-port=0000/tcp— portszám és protokoll. A firewall-cmd --list-ports opció megjeleníti a nyitott portok listáját.

    Ha a tartományon belüli portokat kell megnyitnia, használja a sudo firewall-cmd --zone=public --add-port=0000-9999/udp sort, ahol --add-port=0000-9999/udp- a portok köre és azok protokollja.

    A fenti parancsok csak az ilyen paraméterek használatának tesztelését teszik lehetővé. Ha sikeres volt, ezeket a portokat kell hozzáadnia az állandó beállításokhoz, és ezt a sudo firewall-cmd --zone=public --permanent --add-port=0000/tcp vagy a sudo firewall-cmd -- beírásával teheti meg. zone=public --permanent --add-port=0000-9999/udp . A nyitott állandó portok listája így néz ki: sudo firewall-cmd --zone=public --permanent --list-ports .

    A szolgáltatás meghatározása

    Mint látható, a portok hozzáadása nem okoz nehézséget, de az eljárás bonyolultabbá válik, ha nagyszámú alkalmazást használnak. Nehéz lesz nyomon követni az összes használt portot, ezért a szolgáltatás meghatározása jobb megoldás lenne:


    Csak ki kell választania a legmegfelelőbb módszert a szolgáltatás elérésével kapcsolatos probléma megoldására, és követnie kell a kapott utasításokat. Amint látja, minden műveletet meglehetősen egyszerűen hajtanak végre, és nem kell nehézségekbe ütköznie.

    Egyéni zónák létrehozása

    Már tudja, hogy kezdetben a FirewallD számos különböző zónát hozott létre bizonyos szabályokkal. Vannak azonban olyan helyzetek, amikor rendszergazda létre kell hoznia egy egyéni zónát, mint pl. "nyilvános web" telepített webszerverhez, ill "privát DNS"- a DNS-kiszolgálóhoz. Ezen a két példán elemezzük az ágak hozzáadását:


    Ebben a cikkben megtanulta, hogyan kell létrehozni felhasználói zónákés adjunk hozzá szolgáltatásokat. Az alapértelmezett beállításukról és az interfészek hozzárendeléséről fentebb már volt szó, csak a megfelelő neveket kell megadni. Ne felejtse el újraindítani a tűzfalat bármilyen állandó változtatás után.

    Amint láthatja, a FirewallD tűzfal egy meglehetősen terjedelmes eszköz, amely lehetővé teszi a legrugalmasabb tűzfalkonfiguráció elkészítését. Csak meg kell győződni arról, hogy a segédprogram a rendszerrel együtt elindul, és a megadott szabályok azonnal megkezdik a működésüket. Ezt a sudo systemctl enable firewalld segítségével teheti meg.

    A CentoOS 7-től kezdve egy új eszköz jelent meg a forgalomszűrési szabályok konfigurálására tűzfal. Használata javasolt az iptables szabályok kezelésére. A CentOS 8 mostantól az nftables keretrendszert használja a szabványos iptables szűrőcsomag helyett, és amikor a tűzfalszabályokat tűzfalon keresztül konfigurálja, akkor valójában az nftables konfigurálása történik meg. Ebben a cikkben végigvezetjük a tűzfal telepítését, alapfogalmait és konfigurációját a CentOS 8 rendszert futtató kiszolgálón (ugyanez a CentOS 7 rendszeren is).


    TűzfalD– egy tűzfal, amely megvédi a szervert a nem kívánt forgalomtól, támogatja a dinamikus szabálykezelést (újraindítás nélkül) és az állandó tűzfalszabályok megvalósítását. Az és az nftables frontendjeként működik. A FirewallD szinte minden Linux disztribúción használható.

    Alapvető tűzfalfogalmak, zónák és szabályok

    Mielőtt folytatná a telepítést és a konfigurálást tűzfal, megismerkedünk a zónák fogalmával, amelyek segítségével meghatározható a bizalom szintje különféle kapcsolatoknál. Különböző zónákhoz tűzfal Különféle szűrési szabályokat alkalmazhat, aktív tűzfalbeállításokat adhat meg előre definiált szolgáltatások, protokollok és portok, porttovábbítás és bővített szabályok formájában.

    Tűzfal a bejövő forgalmat zónák szerint szűri, a zónára alkalmazott szabályoktól függően. Ha IP- a kérés küldőjének címe megegyezik egy zóna szabályaival, akkor ezen a zónán keresztül kerül elküldésre a csomag. Ha a cím nem egyezik a szerveren konfigurált zónák egyikével sem, a csomagot az alapértelmezett zóna dolgozza fel. Telepítéskor tűzfal az alapértelmezett zónát hívják nyilvános.

    A tűzfalnak vannak zónái, ahol a különféle szolgáltatások engedélyei már előre be vannak állítva. Használhatja ezeket a beállításokat, vagy létrehozhatja saját zónáit. A tűzfal telepítésekor létrehozott alapértelmezett zónák listája (a /usr/lib/firewalld/zones/ könyvtárban tárolva):

    csepp a bizalom minimális szintje. Minden bejövő kapcsolat válasz nélkül blokkolva van, csak a kimenő kapcsolatok engedélyezettek;
    Blokk a zóna hasonló az előzőhöz, de a bejövő kérések elutasításakor Ipv4 esetén icmp-host-prohibited üzenet, Ipv6 esetén icmp6-adm-prohibited üzenet kerül elküldésre;
    nyilvános nyilvános, nem megbízható hálózatokat jelent. A kiválasztott bejövő kapcsolatokat egyénileg engedélyezheti;
    külső külső hálózatok, ha tűzfalat használnak átjáróként. Úgy van beállítva, hogy álcázza a NAT-ot, így a belső hálózat privát, de elérhető marad;
    belső a külső zóna antonimája. A fogadó megfelelő szintű bizalommal rendelkezik, számos további szolgáltatás elérhető;
    dmz a DMZ-ben található számítógépekhez használatos (elszigetelt számítógépek, amelyek nem férnek hozzá a hálózat többi részéhez). Csak bizonyos bejövő kapcsolatok engedélyezettek;
    munka zóna a munkagépekhez (a hálózat legtöbb számítógépe megbízható);
    itthon otthoni hálózati zóna. A legtöbb PC megbízható, de csak bizonyos bejövő kapcsolatok támogatottak;
    megbízott megbízik a hálózat összes gépében. A legnyitottabb mind közül Elérhető opciók, tudatos használatot igényel.

    V tűzfal két szabálykészletet használnak – állandó és ideiglenes. Az ideiglenes szabályok a szerver újraindításáig működnek. Alapértelmezés szerint szabályok hozzáadásakor tűzfal, a szabályok ideiglenesnek minősülnek ( futásidő). Ha állandó jelleggel szeretne hozzáadni egy szabályt, akkor a zászlót kell használnia — állandó. Ezek a szabályok a szerver újraindítása után lépnek életbe.

    Tűzfal telepítése és engedélyezése a CentOS rendszeren

    A CentOS 7/8 rendszeren a tűzfal alapértelmezés szerint telepítve van az operációs rendszerrel. Ha eltávolította, és szeretné telepíteni a tűzfalat, használhatja a szabványos /dnf kezelőt:

    # yum telepítse a tűzfalat -y - a Centos 7-hez
    # dnf telepítse a tűzfalat -y - a Centos 8-hoz

    A démonnak tűzfal automatikusan elindul a szerver indításával, hozzá kell adnia a következőhöz:

    # systemctl engedélyezze a tűzfalat

    És fuss:

    # systemctl elindítja a tűzfalat

    Ellenőrizze a szolgáltatás állapotát:

    # systemctl állapot tűzfal

    ● firewalld.service - firewalld - dinamikus tűzfal démon Betöltve: betöltve (/usr/lib/systemd/system/firewalld.service; engedélyezve; gyártó előre beállított: engedélyezve) Aktív: aktív (fut) 2019-10-14 14:54 óta :40 +06; 22 másodperce Dokumentumok: man:firewalld(1) Fő PID: 13646 (tűzfal) CGroup: /system.slice/firewalld.service └─13646 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid Október 14. 14:54:40 server.vpn.ru systemd: Firewalld indítása – dinamikus tűzfaldémon... Oct 14 14:54:40 server.vpn.ru systemd: Firewalld – dinamikus tűzfaldémon elindítása.

    Vagy parancsoljon:

    # tűzfal-cmd --state

    A firewall-cmd parancs az nftables/iptables tűzfal frontendje.

    # tűzfal-cmd --state

    Munka a tűzfalszabályokkal

    Alapértelmezett szabályok:

    A tűzfalszabályok konfigurálása előtt ellenőriznie kell, hogy melyik zóna az alapértelmezett:

    # firewall-cmd --get-default-zone

    Mivel most telepítettük a tűzfalat, és még nem konfiguráltuk, van egy alapértelmezett zónánk nyilvános.

    Ellenőrizzük az aktív zónát. Ez is egy - nyilvános:

    # tűzfal-cmd --get-active-zones

    Nyilvános felületek: eth0

    Mint látható, az eth0 hálózati interfészt a zóna vezérli nyilvános.

    Az aktív zónaszabályok megtekintéséhez írja be:

    # firewall-cmd --list-all

    Nyilvános (aktív) cél: alapértelmezett icmp-block-inverzió: nincsenek csatolók: eth0 források: szolgáltatások: dhcpv6-kliens ssh portok: protokollok: maszkolás: nincsenek továbbító portok: forrásportok: icmp-blokkok: gazdag szabályok:

    A felsorolásból kiderül, hogy ez a terület hozzáadva a DHCP klienshez és az ssh-hoz kapcsolódó normál műveleteket.

    Elérhető zónák

    Az összes zóna listájának megtekintéséhez futtassa a következő parancsot:

    # tűzfal-cmd --get-zones

    Ezt a listát kaptam:

    dmz blokkolása külső otthon belső nyilvános megbízható munka

    Egy adott zóna szabályainak ellenőrzéséhez hozzá kell adni a zászlót - zóna.

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

    Otthoni cél: alapértelmezett icmp-block-inverzió: nincsenek csatolók: források: szolgáltatások: dhcpv6-kliens mdns samba-kliens ssh portok: protokollok: maszkolás: nincsenek továbbító portok: forrásportok: icmp-blokkok: gazdag szabályok:

    Az összes zóna szabályai a következő paranccsal tekinthetők meg:

    # firewall-cmd --list-all-zones

    A lista meglehetősen nagy lesz, mivel sok zóna lehet.

    Módosítsa az alapértelmezett zónát.

    Alapértelmezés szerint az összes hálózati interfész a zónában található nyilvános, de bármelyik zónába átvihetők a következő paranccsal:

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

    Paraméter után --zóna= adja meg a kívánt zónát.

    Az alapértelmezett zóna megváltoztatásához a következő parancsot kell használnia:

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

    Alkalmazási szabályok hozzáadása

    Egy alkalmazás portjának megnyitásához hozzáadhat egy szolgáltatást a kivételekhez. Lista megjelenítése elérhető szolgáltatások:

    A kimenet nagyszámú szolgáltatást fog tartalmazni. részletes információk a szolgáltatásról tartalmazza xml fájlt. Ezek a fájlok a könyvtárban találhatók /usr/lib/firewalld/services.

    Például:

    # cd /usr/lib/firewall/services

    Levelezés (SMTP) Ez az opció lehetővé teszi a bejövő SMTP levelek kézbesítését. Ha lehetővé kell tennie a távoli gazdagépek számára, hogy közvetlenül csatlakozzanak az Ön gépéhez levelek kézbesítéséhez, engedélyezze ezt a lehetőséget. Ezt nem kell engedélyeznie, ha POP3 vagy IMAP protokollon keresztül gyűjti össze leveleit internetszolgáltatója szerveréről, vagy ha olyan eszközt használ, mint a fetchmail. Vegye figyelembe, hogy a nem megfelelően konfigurált SMTP-kiszolgáló lehetővé teheti a távoli gépek számára, hogy az Ön szerverét használják küldésre. spam.

    Az XML fájl tartalmazza a szolgáltatás leírását, a protokollt és a portszámot, amely a tűzfalban megnyílik.

    Szabályok hozzáadásakor használhatja a paramétert --add-szolgáltatás egy adott szolgáltatás elérhetővé tétele:

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

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

    A szabályok hozzáadása után ellenőrizheti, hogy a szolgáltatások hozzáadásra kerültek-e a megadott zónához:

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

    dhcpv6-kliens http https ssh

    Ha állandóvá szeretné tenni ezeket a szabályokat, akkor hozzá kell adnia a paramétert hozzáadáskor -állandó.

    Szolgáltatás eltávolítása egy zónából:

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

    dhcpv6-kliens https ssh teszt

    Ha hozzá szeretné adni a szolgáltatást a kivételekhez, létrehozhat egy fájlt xml magát, és töltse ki. Bármely szolgáltatásból másolhat adatokat, módosíthatja a nevet, leírást és portszámot.

    Másoljuk a fájlt smtp.xml a felhasználói szolgáltatásokkal való munka címtárába:

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

    Módosítsa a szolgáltatás leírását a fájlban.

    Magamat xml fájl is át kell nevezni a szolgáltatás neve után. Ezt követően újra kell indítania a tűzfalat, és ellenőriznie kell, hogy szolgáltatásunk szerepel-e a listán:

    Felhívtam a szervizt tesztés megjelent a listában:

    syslog-tls telnet teszt tftp

    Mostantól bármelyik zónához hozzáadhatja a létrehozott szolgáltatást:

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

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

    dhcpv6-client http https ssh teszt

    Ha nem találta a kívánt szolgáltatást a listában, akkor a következő paranccsal megnyithatja a kívánt portot a tűzfalon:

    # firewall-cmd --zone=public -add-port=77/tcp - 77-es port megnyitása tcp
    # firewall-cmd --zone=public -add-port=77/udp - 77-es port megnyitása udp
    # firewall-cmd --zone=public -add-port=77-88/udp - nyitott porttartomány 77-88 udp
    # firewall-cmd --zone=public -list-ports - ellenőrizze az engedélyezett portokat

    ICMP válaszok blokkolása/engedélyezése:

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

    Hozzáadott port törlése:

    # firewall-cmd --zone=public -remove-port=77/udp - távolítsa el a 77-es ideiglenes szabályt udp

    # firewall-cmd --permanent --zone=public -remove-port=77/udp - az állandó szabály eltávolítása

    Egyéni zónák hozzáadása

    Létrehozhatod a saját zónádat (úgy hívom a miénk):

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

    Új zóna létrehozása, valamint szolgáltatás létrehozása után újraindítás szükséges tűzfal:

    # firewall-cmd --reload

    # tűzfal-cmd --get-zones

    dmz blokkolása drop external home belső nyilvános megbízható munkánk

    Zóna a miénk elérhető. Szolgáltatásokat adhat hozzá, vagy adott portokat nyithat meg.

    Tűzfal: IP-címek blokkolása, kivételek létrehozása

    Megbízható IP-címeket adhat hozzá a tűzfalkivételekhez, vagy blokkolhatja a nem kívántakat.

    Konkrét kivételek hozzáadásához IP-cím(pl. 8.8.8.8) a szerverén keresztül tűzfal, használja a következő parancsot:

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

    Ellenőrizze a területet és győződjön meg róla IP hozzáadva a kivételekhez a gazdag szabályokban:

    Nyilvános (aktív) cél: alapértelmezett icmp-block-inverzió: nincsenek csatolók: eth0 források: szolgáltatások: dhcpv6-kliens http https ssh tesztportok: protokollok: maszkolás: nincsenek előre irányuló portok: forrásportok: icmp-blokkok: gazdag szabályok: szabály family="ipv4" source address="8.8.8.8" elfogadja

    Blokkolni IP, cserélni kell elfogad a elutasít:

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

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

    Nyilvános (aktív) cél: alapértelmezett icmp-block-inverzió: nincsenek csatolók: eth0 források: szolgáltatások: dhcpv6-kliens http https ssh tesztportok: protokollok: maszkolás: nincsenek előre irányuló portok: forrásportok: icmp-blokkok: gazdag szabályok: szabály family="ipv4" source address="8.8.8.8" accept rule family="ipv4" source address="8.8.4.4" reject

    Egy adott szolgáltatást csak egy adott IP-címről érkező kérésekhez engedélyezhet:

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

    Ha sürgősen blokkolnia kell a szerverhez intézett összes kérést, használja a pánik parancsot:

    # tűzfal-cmd --pánik bekapcsolva

    A pánik módot a következő paranccsal kapcsolhatja ki:

    # firewall-cmd --pánik ki

    Vagy a szerver újraindításával.

    Zárolhatja a tűzfal konfigurációját, hogy a helyi szolgáltatások a gyökérként nem tudták megváltoztatni az Ön által létrehozott tűzfalszabályokat:

    # firewall-cmd --lockdown-on

    A zárolási mód letiltása:

    # firewall-cmd --lockdown-off

    Port továbbítás a tűzfalban

    A tűzfalban létrehozhat egy porttovábbítási szabályt. A 443-as port 9090-re történő továbbítása:

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

    Port-továbbítási szabály eltávolítása:

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

    Megmutatjuk lépésről lépésre beállítás Tűzfal a CentOS 7 rendszeren

    Mi az a tűzfal? Ez egy teljes tűzfal, amely alapértelmezés szerint elérhető a CentOS 7 rendszeren. Megmutatjuk, hogyan kell beállítani a szerveren, és beszélünk a firewall-cmd eszközről is.

    1. Mik a tűzfal alapfogalmai?

    Zónák

    A Firewall képes szabálycsoportokat zónákon keresztül kezelni. Ez egy olyan utasításkészlet, amely a hálózatokba vetett bizalom alapján kezeli a forgalmat. Egy hálózati interfészhez zóna rendelhető a tűzfal viselkedésének szabályozására. Erre azért lehet szükség, mert a laptopok gyakran különböző hálózatokhoz tudnak csatlakozni. A számítógépek a zónák segítségével módosíthatják szabályaikat a környezetüktől függően. Ha például egy kávézóban csatlakozik Wi-Fi-hálózathoz, szigorúbb irányelveket is alkalmazhat. Otthon pedig hűségesebbek lehetnek a szabályok.

    A Firewallban a következő zónákat különböztetjük meg:

    A Drop a legalacsonyabb fokú hálózati bizalommal rendelkezik. Ebben az esetben csak a kimenő kapcsolatokat támogatja a rendszer, és a bejövő forgalmat válasz nélkül megszakítja;

    A blokk abban különbözik a droptól, hogy egy bejövő kérés eldobásakor egy icmp-host által tiltott vagy icmp6-adm által tiltott üzenet kerül kiadásra;

    A nyilvános zóna egy nyilvános hálózat, amely egyenként kezeli a bejövő kéréseket. Azonban nem lehet megbízni benne;

    A külső egy külső hálózati zóna, amely támogatja a NAT-maszkolást, hogy a belső hálózatot priváttá tegye. Azonban hozzá lehet férni;

    A külső másik oldala belső. Az ebben a zónában lévő számítógépek megbízhatóak, így további szolgáltatások is elérhetők lesznek;

    A dmz zóna olyan elszigetelt számítógépekhez szükséges, amelyek nem férnek hozzá a hálózat többi részéhez. Ebben az esetben lehetőség nyílik a kiválasztott bejövő kapcsolatok konfigurálására;

    A munkahálózati zóna munka. Ebben megbízhat a környezetben, de nem minden bejövő kapcsolat támogatott, hanem csak a felhasználó által meghatározottak;

    A megbízható zónában a hálózat összes számítógépében megbízhat.

    Szabályok mentése

    A Firewallban ezek ideiglenesek és állandóak. Előfordulhat, hogy a készlet megváltozik, vagy megjelenik egy szabály, amely befolyásolja a tűzfal viselkedését. A változtatások az újraindítás után elvesznek, ezért el kell menteni őket. A firewall-cmd parancsok a -permanent jelzőt használják a szabályok mentésére. Ezt követően folyamatosan tudják majd használni.

    2. Hogyan engedélyezhetem a tűzfalat?

    Kezdje a démon program futtatásával a háttérben. A systemd egység fájl neve firewalld.service. a démon program engedélyezéséhez szükséges parancs sor tárcsa:

    sudo systemctl indítsa el a firewalld.service-t

    Meg kell győződnünk arról, hogy a szolgáltatás elindult. Ehhez szüksége lesz:

    firewall-cmd --state fut

    A tűzfal elindult, és az alapértelmezett utasításoknak megfelelően fut. Ne feledje, hogy a szolgáltatás engedélyezve van, de nem indul el automatikusan a szerverrel együtt. Ehhez be kell állítania az automatikus futtatást. Ezenkívül készítsen szabályokat, hogy ne blokkolja magát a saját szerverén.

    3. Alapértelmezett tűzfalszabályok

    Hogyan lehet megnézni őket?

    Az alapértelmezett zóna megtekintéséhez írja be:

    Firewall-cmd --get-default-zone public

    Látjuk, hogy a Firewalld nem kapott utasításokat más zónákra. A nyilvános alapértelmezés szerint ez az egyetlen aktív zóna, mert semmilyen interfész nem volt kötve a többiekhez. Ha látni szeretné az összes elérhető tartományzóna listáját, adja meg a konzolon:

    Firewall-cmd --get-active-zones nyilvános interfészek: eth0 eth1

    Két hálózati interfészt látunk a nyilvános zónához kötve. Az erre a zónára meghatározott szabályok szerint dolgoznak. Az alapértelmezett szabályokat a következőképpen tekintheti meg:

    Firewall-cmd --list-all nyilvános (alapértelmezett, aktív) interfészek: eth0 eth1 források: szolgáltatások: dhcpv6-kliens ssh portok: maszkolás: nincs továbbító port: icmp-blocks: gazdag szabályok:

    Összefoglalni:

    Az alapértelmezett és egyetlen aktív zóna nyilvános;

    Két interfész kapcsolódik ehhez a zónához: eth0 és eth1;

    Nyilvános támogatja az SSH távoli adminisztrációt, valamint a DHSP IP-hozzárendelést.

    Egyéb tűzfalzónák

    Lássuk, milyen zónái vannak még a tűzfalnak. Az összes elérhető lista megtekintéséhez írja be a konzolba:

    Az egyes zónákhoz opciókat is kaphat a -zone= jelző hozzáadásával:

    Firewall-cmd --zone=home --list-all otthoni felületek: források: szolgáltatások: dhcpv6-kliens ipp-kliens mdns samba-kliens ssh portok: maszkolás: nincs továbbító port: icmp-blocks: gazdag szabályok:

    Ha ki szeretné listázni az összes elérhető zóna definícióit, használja a --list-all-zones opciót. Adjuk át a kimenetet a lapozónak, hogy a kimenet kényelmesebben nézhető legyen:

    Firewall-cmd --list-all-zones | Kevésbé

    4. Hogyan állítsunk be interfész zónákat?

    Minden hálózati interfész kezdetben az alapértelmezett zónához van kötve.

    Az interfész zóna módosítása csak egy munkamenetre

    Ehhez két lehetőségre van szükségünk: --change-interface= és --zone=. Az otthoni eth0 zónába való átvitelhez írja be:

    sudo firewall-cmd --zone=home --change-interface=eth0 siker

    Felhívjuk figyelmét, hogy ez befolyásolhatja bizonyos szolgáltatások működését. Például az SSH az otthoni zónában támogatott, pl. a kapcsolatok nem szakadnak meg. Ez azonban megtörténhet más zónákban, ami blokkolja a hozzáférést a saját szerveréhez. Meg kell győződnünk arról, hogy az interfész az új zónához van kötve. Írja be a parancssorba:

    A tűzfal újratöltése után az interfész ismét az alapértelmezett zónához kapcsolódik.

    sudo systemctl restart firewalld.service firewall-cmd --get-active-zones nyilvános interfészek: eth0 eth1

    Állandó interfész zónaváltás

    A tűzfal újraindítása után az interfész újra csatlakozik az alapértelmezett zónához, ha nincs más zóna megadva az interfész beállításai között. A CentOS konfigurációi az /etc/sysconfig/network-scripts könyvtár ifcfg-interface fájljaiban találhatók. Interfészzóna meghatározásához nyissa meg a konfigurációs fájlt:

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

    Adjuk hozzá a ZONE= változót a fájl végéhez. Állítsunk be egy másik zónát értékként:

    DNS1=2001:4860:4860::8844 DNS2=2001:4860:4860::8888 DNS3=8.8.8.8 ZÓNA=otthon

    Most mentsük el a változtatásokat, ami után a fájl bezárható. A beállítások frissítéséhez újra kell indítani hálózati szolgáltatás, valamint a tűzfal:

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

    Ezt követően az eth0 interfész az otthoni zónához lesz kötve.

    firewall-cmd --get-active-zones otthoni felületek: eth0 nyilvános interfészek: eth1

    Alapértelmezett zónák beállítása

    Beállíthat egy másik alapértelmezett zónát is. Ebben segít a --set-default-zone= opció, amely minden hálózati interfészt egy másik zónához köt.

    sudo firewall-cmd --set-default-zone=home otthoni felületek: eth0 eth1

    5. Hogyan készítsünk pályázati szabályokat?

    Hozzáadás egy szolgáltatási területhez

    Ennek legegyszerűbb módja a tűzfal által használt porton keresztül menni. Az összes elérhető szolgáltatás megtekintéséhez írja be a parancssorba:

    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 ipp-client ipp-client mps-mount ipp-client ippasstw kerámibpsldavirndsd ippasstllibros wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp sugara rpc-bind samba samba-client smtp ssh telnet tftp tftp-kliens átviteli-kliens vnc-https-szerver kliens

    Ne feledje, hogy a /usr/lib/firewalld/services könyvtárban található .xml fájlok az egyes szolgáltatásokkal kapcsolatos összes információt tárolják. Az SSH-val kapcsolatos információk a /usr/lib/firewalld/services/ssh.xml fájlban találhatók. Így néznek ki:

    A zónák szolgáltatásainak támogatásához szükség van az -add-service= jelzőre, de a -zone opció hasznos a célzóna beállításához. Ne feledje, hogy az ilyen változtatások csak egy munkamenetre érvényesek. Ha el szeretné menteni a változtatásokat későbbi használatra, használja a -permanent kapcsolót. Lássuk, hogyan működik. Indítsuk el a webszervert, hogy ki tudja szolgálni a HTTP forgalmat. Engedélyezzük egy munkamenet támogatását a nyilvános zónában. Írja be a konzolba:

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

    Ne használja a -zone= opciót, ha a szolgáltatást az alapértelmezett zónához adja. Nézzük meg, hogy minden sikerült-e:

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

    Most tesztelnie kell a tűzfal és magának a szolgáltatásnak a működését. Ha látja, hogy minden rendben van, nyugodtan módosíthatja az állandó szabályrendszert. Új szolgáltatástámogatási szabály hozzáadásához meg kell adnia a konzolon:

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

    Ha látni szeretné a folyamatosan érvényben lévő szabályok teljes listáját, akkor:

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

    Ennek eredményeként a nyilvános zóna támogatja a 80-as portot és a HTTP-t. Ha a szervere képes SSL/TLS forgalom kiszolgálására, hozzáadhat egy HTTPS szolgáltatást:

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

    6. Mi a teendő, ha a szolgáltatás nem elérhető?

    Alapértelmezés szerint a Firewalld tűzfal számos népszerű szolgáltatást tartalmaz. De előfordul, hogy a programoknak más szolgáltatásokra van szükségük, amelyek nincsenek a tűzfalban. Ezt a problémát több módon is meg lehet oldani.

    1. módszer: A szolgáltatás meghatározása

    Egy port hozzáadása egy zónához elég egyszerű. Ha azonban sok alkalmazás van, akkor nehéz lesz megérteni, hogy melyik port mit használ. Ilyen helyzetben jó megoldás a szolgáltatások meghatározása a portok helyett. A szolgáltatás lényegében olyan portok csoportja, amelyek nevet és leírást kaptak. Segítségükkel könnyebb lesz a beállítások kezelése. De egy szolgáltatás valamivel összetettebb, mint egy port.

    Kezdjük azzal, hogy a /usr/lib/firewalld/services mappából másoljuk át a már létező szkriptet, amelyből a tűzfal az /etc/firewalld/services könyvtár nem szabványos beállításait veszi át. Másolja ki az SSH-szolgáltatásdefiníciót, hogy példakénti feltételes szolgáltatásdefiníciót használjon. Ne felejtse el, hogy a szkript nevének meg kell egyeznie a szolgáltatás nevével, és .xml fájlkiterjesztéssel is kell rendelkeznie. Írja be a konzolba:

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

    Most szerkesztenie kell a lefordított fájlt:

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

    Belül az SSH definíció:

    Az SSH Secure Shell (SSH) egy protokoll a távoli gépekre való bejelentkezéshez és parancsok végrehajtásához. Biztonságos, titkosított kommunikációt biztosít. Ha azt tervezi, hogy távolról szeretné elérni a gépet SSH-n keresztül, tűzfalas felületen keresztül, engedélyezze ezt a lehetőséget. Ahhoz, hogy ez a beállítás hasznos legyen, telepítenie kell az openssh-server csomagot.

    Most mentsük el a változtatásokat, és zárjuk be a fájlt. Ehhez újra kell indítani a tűzfalat:

    sudo firewall-cmd --reload

    A miénk megjelenik az elérhető szolgáltatások listájában:

    Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns példa ftp high-availability http https imaps ipp ippnntmsdm ipp ipp-client msddvirvir-client kdavirbpsec kerlbpsl -wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp sugara rpc-bind samba samba-client smtp ssh telnet tftp tftp-kliens átviteli-szerverbem https wwnc-server-client

    2. módszer: Port létrehozása

    Nyissuk meg az alkalmazásportot a kívánt tűzfalzónában, és adjuk meg azt, valamint a protokollt. Képzeljen el egy olyan helyzetet, amikor hozzá kell adnia egy programot a nyilvános zónához, amely a TCP protokollt és az 5000-es portot használja. Egy alkalmazástámogatási munkamenetre való aktiváláshoz az -add-port= opcióra van szüksége. Ezenkívül meg kell adnia a tcp vagy udp protokollt:

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

    Győződjön meg arról, hogy minden rendben volt:

    Firewall-cmd --list-ports 5000/tcp

    Ezenkívül lehetőség van a portok egy tartományának megadására kötőjellel. Például, ha a program a 4990-4999-es portokat használja, akkor ezeket a nyilvános zónához a következőképpen lehet hozzáadni:

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

    Ha minden jól működik, adjon hozzá utasításokat a tűzfalbeállításokhoz:

    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 siker siker 4990-4999/udp 5000/tcp

    7. Hogyan hozzunk létre zónát?

    A tűzfal különböző előre definiált zónákat tud biztosítani, amelyek általában elegendőek a működéshez, de néha szükség van saját egyéni zónák létrehozására. Például egy DNS-kiszolgálónak privát DNS-zónára van szüksége, míg egy webszervernek egy nyilvános web-zónára. A zónák létrehozása után hozzá kell adni a tűzfal beállításaihoz. Hozzuk létre a publicweb és a privateDNS zónákat úgy, hogy beírjuk a konzolba:

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

    Nézzük meg, hogy minden sikerült-e:

    sudo firewall-cmd --permanent --get-zones block dmz drop külső otthon belső privát DNS nyilvános nyilvános web megbízható munka

    Firewall-cmd --get-zones blokk dmz drop külső otthoni belső nyilvános megbízható munka

    Az aktuális munkamenetben azonban új zónák nem lesznek elérhetők:

    Firewall-cmd --get-zones blokk dmz drop külső otthoni belső nyilvános megbízható munka

    Indítsa újra a tűzfalat, hogy hozzáférjen az új zónákhoz:

    sudo firewall-cmd --reload firewall-cmd --get-zones block dmz drop külső otthon belső privát DNS nyilvános nyilvános web megbízható munka

    Mostantól új zónák is meghatározhatnak portokat és szolgáltatásokat. Tegyük fel, hogy hozzá kell adni az SSH-t, a HTTP-t és a HTTPS-t a nyilvános web zónához:

    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 interfészek: források: szolgáltatások: http https ssh portok: maszkolás: nincs továbbító port: icmp-blocks: rich szabályok:

    Ezen túlmenően lehetséges lesz DNS hozzáadása a privát DNS-zónához:

    sudo firewall-cmd --zone=privateDNS --add-service=dns firewall-cmd --zone=privateDNS --list-all privateDNS interfészek: források: szolgáltatások: dns portok: maszkolás: nincs továbbító port: icmp-blocks: gazdag szabályok:

    Ezt követően biztonságosan kötheti a hálózati interfészeket új zónákhoz:

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

    Ellenőrizze, hogy a beállítások működnek-e. Ha minden rendben van, add hozzá az állandó szabályokhoz:

    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

    Most térjünk át a hálózati interfészek konfigurálására. Ez szükséges a kívánt zónához való automatikus csatlakozáshoz. Tegyük fel, hogy kapcsolódni kell a publicweb eth0-hoz, majd:

    Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0. . . IPV6_AUTOCONF=nincs DNS1=2001:4860:4860::8844 DNS2=2001:4860:4860::8888 DNS3=8.8.8.8 ZONE=nyilvános web

    Az eht1-et a privateDNS-hez is kötjük a következő használatával:

    Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth1. . . NETMASK=255.255.0.0 DEFROUTE="nem" NM_CONTROLLED="igen" ZONE=privateDNS

    A változtatások életbe lépéséhez újra kell indítania a tűzfalat és a hálózati szolgáltatásokat:

    sudo systemctl hálózat újraindítása sudo systemctl tűzfal újraindítása

    Ellenőriznie kell a zónákat, hogy megbizonyosodjon arról, hogy a szolgáltatások regisztrálva vannak:

    Firewall-cmd --get-active-zones privát DNS interfészek: eth1 nyilvános webes felületek: eth0

    Most ellenőriznünk kell, hogy működnek-e:

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

    Amint látjuk, a felhasználói zónák teljesen készen állnak a használatra. Ezek bármelyike ​​beállítható alapértelmezettként. Például:

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

    8. Hogyan lehet elérni, hogy a tűzfal automatikusan elinduljon?

    Miután ellenőrizte a szabályok működését és az összes beállítást, állítsa be az automatikus futtatást a következő használatával:

    sudo systemctl engedélyezze a tűzfalat

    Ez lehetővé teszi a tűzfal azonnali engedélyezését a szerver elindítása után.

    Következtetésként érdemes megjegyezni, hogy a Firewalld tűzfal meglehetősen rugalmas eszköz a beállításokat illetően. A zónák használatával megváltoztathatja a munkájának politikáját.



    Tetszett a cikk? Oszd meg