Vatrozid otvoreni port centos 7. Zadana pravila

Počevši od CentoOS-a 7, pojavio se novi alat za konfiguriranje pravila filtriranja prometa vatrozid. Preporuča se koristiti ga za upravljanje iptables pravilima. U CentOS 8, umjesto standardnog paketa za filtriranje iptables, sada se koristi okvir nftables, a kada konfigurirate pravila vatrozida kroz firewalld, vi zapravo konfigurirate nftables. U ovom ćemo članku pogledati instalaciju, osnovne koncepte i konfiguraciju vatrozida na poslužitelju koji pokreće CentOS 8 (CentOS 7 je isti).


VatrozidD– vatrozid za zaštitu poslužitelja od neželjenog prometa s podrškom za dinamičko upravljanje pravilima (bez ponovnog pokretanja) i implementaciju stalnih pravila vatrozida. Radi kao sučelje za i nftables. FirewallD se može koristiti na gotovo svim distribucijama Linuxa.

Osnovni koncepti vatrozida, zone i pravila

Prije nego počnete s instalacijom i konfiguracijom vatrozid, uvest ćemo koncept zona, koje se koriste za definiranje razine povjerenja za različite veze. Za različite zone vatrozid Možete primijeniti različita pravila filtriranja, odrediti opcije aktivnog vatrozida u obliku unaprijed definiranih usluga, protokola i portova, prosljeđivanja portova i bogatih pravila.

Vatrozid filtrira dolazni promet po zoni ovisno o pravilima koja se primjenjuju na zonu. Ako IP- adresa pošiljatelja zahtjeva odgovara pravilima određene zone, tada će paket biti poslan kroz ovu zonu. Ako adresa ne odgovara niti jednoj zoni konfiguriranoj na poslužitelju, paket će obraditi zadana zona. Prilikom postavljanja vatrozid poziva se zadana zona javnost.

Firewalld ima zone koje su unaprijed konfigurirane s dopuštenjima za razne usluge. Možete koristiti ove postavke ili stvoriti vlastite zone. Popis zadanih zona koje se stvaraju prilikom instalacije firewallda (pohranjene u direktoriju /usr/lib/firewalld/zones/):

pad minimalna razina povjerenja. Sve dolazne veze su blokirane bez odgovora, dopuštene su samo odlazne veze;
blok zona je slična prethodnoj, ali kada se dolazni zahtjevi odbiju, šalje se poruka icmp-host-prohibited for Ipv4 ili icmp6-adm-prohibited for Ipv6;
javnost predstavlja javne, nepouzdane mreže. Možete dopustiti odabrane dolazne veze na individualnoj osnovi;
vanjski vanjske mreže kada koristite vatrozid kao pristupnik. Konfigurirano je za maskiranje NAT-a tako da vaša interna mreža ostaje privatna, ali dostupna;
unutarnje antonim vanjske zone. Domaćin ima dovoljnu razinu povjerenja, dostupan je niz dodatnih usluga;
dmz koristi se za računala koja se nalaze u DMZ-u (izolirana računala bez pristupa ostatku mreže). Dopuštene su samo određene dolazne veze;
raditi zona za radne strojeve (većina računala na mreži je pouzdana);
Dom zona kućna mreža. Većini računala se može vjerovati, ali samo su određene dolazne veze podržane;
vjerovao vjerujte svim strojevima na mreži. Najotvorenija od svih dostupnih opcija, zahtijeva svjesno korištenje.

U vatrozid koriste se dva skupa pravila – trajna i privremena. Privremena pravila rade dok se poslužitelj ponovno ne pokrene. Prema zadanim postavkama, prilikom dodavanja pravila u vatrozid, pravila se smatraju privremenim ( vrijeme izvođenja). Da biste trajno dodali pravilo, trebate upotrijebiti zastavicu - trajno. Takva pravila će se primijeniti nakon ponovnog pokretanja poslužitelja.

Instaliranje i omogućavanje vatrozida na CentOS-u

U CentOS 7/8, firewalld je instaliran prema zadanim postavkama s OS-om. Ako ste ga uklonili i želite instalirati firewalld, možete koristiti standardni /dnf manager:

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

Demonu vatrozid pokrenuo automatski kada se poslužitelj pokrenuo, morate ga dodati u:

# systemctl omogući vatrozid

I trči:

# systemctl pokrenite vatrozid

Provjerite status usluge:

# vatrozid statusa systemctl

● firewalld.service - firewalld - dinamički vatrozidni demon Učitano: učitano (/usr/lib/systemd/system/firewalld.service; omogućeno; unaprijed postavljeno: omogućeno) Aktivno: aktivno (pokrenuto) od pon 2019-10-14 14:54 :40 +06; Prije 22 s Dokumenti: man:firewalld(1) Glavni PID: 13646 (firewalld) CGroup: /system.slice/firewalld.service └─13646 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid Listopad 14 14:54:40 server.vpn.ru systemd: Pokretanje firewalld - dinamički demon vatrozida... 14 listopad 14:54:40 server.vpn.ru systemd: Pokrenut firewalld - dinamički demon vatrozida.

Ili naredbom:

# firewall-cmd --stanje

Firewall-cmd naredba je firewalld sučelje za nftables/iptables.

# firewall-cmd --stanje

Rad s pravilima vatrozida

Zadana pravila:

Prije postavljanja pravila vatrozida, morate provjeriti koja se zona koristi prema zadanim postavkama:

# firewall-cmd --get-default-zone

Budući da smo upravo instalirali firewalld i još ga nismo konfigurirali, imamo zadanu zonu javnost.

Provjerimo aktivnu zonu. Postoji i jedan - javni:

# firewall-cmd --get-active-zones

Javna sučelja: eth0

Kao što vidite, eth0 mrežno sučelje kontrolira zona javnost.

Za pregled temeljnih pravila unesite:

# firewall-cmd --list-all

Javna (aktivna) meta: zadana icmp-block-inverzija: nema sučelja: eth0 izvori: usluge: dhcpv6-klijent ssh portovi: protokoli: maskarada: nema prosljeđujućih portova: izvorni portovi: icmp-blokovi: bogata pravila:

Iz popisa možete vidjeti da su uobičajene operacije vezane uz DHCP klijent i ssh dodane ovoj zoni.

Dostupne zone

Za pregled popisa svih zona potrebno je pokrenuti naredbu:

# firewall-cmd --get-zones

Dobio sam sljedeći popis:

Block dmz drop external home interni javni pouzdani rad

Za provjeru pravila određene zone potrebno je dodati zastavu - zona.

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

Početna meta: zadana icmp-block-inverzija: nema sučelja: izvori: usluge: dhcpv6-klijent mdns samba-klijent ssh portovi: protokoli: maskarada: nema portova za prosljeđivanje: izvorni portovi: icmp-blokovi: bogata pravila:

Pravila svih zona mogu se pogledati naredbom:

# firewall-cmd --list-all-zones

Popis će biti prilično velik, jer može biti mnogo zona.

Promijenite zadanu zonu.

Prema zadanim postavkama, sva mrežna sučelja nalaze se u zoni javnost, ali se mogu prenijeti u bilo koju od zona naredbom:

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

Nakon parametra --zona= označite željenu zonu.

Za promjenu zadane zone morate upotrijebiti naredbu:

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

Dodavanje pravila aplikacije

Da biste otvorili priključak za aplikaciju, možete dodati uslugu u iznimke. Prikaz popisa dostupnih usluga:

Izlaz će sadržavati veliki broj usluga. Detaljne informacije o usluzi nalaze se u xml datoteka. Te se datoteke nalaze u direktoriju /usr/lib/firewalld/services.

Na primjer:

# cd /usr/lib/firewalld/services

pošta (SMTP) Ova opcija dopušta dolaznu isporuku SMTP pošte. Ako trebate dopustiti udaljenim hostovima da se izravno povežu s vašim strojem radi dostave pošte, omogućite ovu opciju. Ovo ne morate omogućiti ako svoju poštu prikupljate s poslužitelja svog ISP-a putem POP3 ili IMAP-a, ili ako koristite alat kao što je fetchmail. Imajte na umu da neispravno konfiguriran SMTP poslužitelj može dopustiti udaljenim strojevima da koriste vaš poslužitelj za slanje spam.

XML datoteka sadrži opis usluge, protokol i broj porta koji će se otvoriti u vatrozidu.

Kada dodajete pravila, možete koristiti parametar --dodaj-uslugu za otvaranje pristupa određenoj usluzi:

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

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

Nakon dodavanja pravila, možete provjeriti jesu li usluge dodane u navedenu zonu:

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

Dhcpv6-klijent http https ssh

Ako želite učiniti ova pravila trajnim, trebate dodati parametar prilikom dodavanja — trajno.

Za uklanjanje usluge iz zone:

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

Dhcpv6-klijent https ssh test

Ako svoju uslugu želite dodati iznimkama, možete izraditi datoteku xml sami i ispunite ga. Možete kopirati podatke s bilo kojeg servisa, promijeniti naziv, opis i broj priključka.

Kopirajmo datoteku smtp.xml u imenik za rad s korisničkim servisima:

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

Promijenite opis usluge u datoteci.

Samu xml datoteku također je potrebno preimenovati prema nazivu vaše usluge. Nakon toga potrebno je ponovno pokrenuti firewall i provjeriti nalazi li se naša usluga na popisu:

Zvala sam servis test i pojavio se na popisu:

Syslog-tls telnet test tftp

Sada možete dodati kreiranu uslugu u bilo koju zonu:

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

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

Dhcpv6-klijent http https ssh test

Ako na popisu niste pronašli uslugu koja vam je potrebna, možete otvoriti traženi port na firewall-u naredbom:

# firewall-cmd --zone=public -add-port=77/tcp - otvori port 77 tcp
# firewall-cmd --zone=public -add-port=77/udp - otvori port 77 udp
# firewall-cmd --zone=public -add-port=77-88/udp - otvoreni raspon portova 77-88 udp
# firewall-cmd --zone=public -list-ports - provjeri popis dopuštenih portova

Blokiraj/dopusti ICMP odgovore:

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

Ukloni dodani port:

# firewall-cmd --zone=public -remove-port=77/udp - uklanjanje privremenog pravila 77 udp

# firewall-cmd --permanent --zone=public -remove-port=77/udp - uklanjanje trajnog pravila

Dodavanje vlastitih zona

Možete stvoriti vlastitu zonu (nazvat ću je naše):

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

Nakon kreiranja nove zone, kao i nakon kreiranja usluge, potrebno je ponovno podizanje sustava vatrozid:

# firewall-cmd --reload

# firewall-cmd --get-zones

Block dmz drop external home internal our public trusted work

Zona naše dostupno. Možete mu dodati usluge ili otvoriti određene priključke.

Vatrozid: blokiranje IP adresa, stvaranje iznimaka

Možete dodati pouzdane IP adrese iznimkama vatrozida ili blokirati neželjene.

Za dodavanje određene IP adrese (na primjer 8.8.8.8) na vaš poslužitelj putem vatrozid, koristite naredbu:

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

Provjerite područje i uvjerite se IP dodano iznimkama u bogatim pravilima:

Javna (aktivna) meta: zadana icmp-block-inverzija: nema sučelja: eth0 izvori: usluge: dhcpv6-klijent http https ssh testni portovi: protokoli: maskarada: nema naprijed-portova: izvorni portovi: icmp-blokovi: bogata pravila: pravilo obitelj="ipv4" izvorna adresa="8.8.8.8" prihvatiti

Blokirati IP, treba zamijeniti prihvatiti na odbiti:

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

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

Javna (aktivna) meta: zadana icmp-block-inverzija: nema sučelja: eth0 izvori: usluge: dhcpv6-klijent http https ssh testni portovi: protokoli: maskarada: nema naprijed-portova: izvorni portovi: icmp-blokovi: bogata pravila: pravilo obitelj="ipv4" izvorna adresa="8.8.8.8" prihvati pravilo obitelj="ipv4" izvorna adresa="8.8.4.4" odbaci

Određenu uslugu možete dopustiti samo za zahtjeve s određene IP adrese:

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

Ako hitno morate blokirati sve zahtjeve prema poslužitelju, upotrijebite naredbu panic:

# firewall-cmd --panic-on

Način panike možete onemogućiti pomoću naredbe:

# firewall-cmd --panic-off

Ili ponovnim pokretanjem poslužitelja.

Možete blokirati konfiguraciju vatrozida tako da lokalne usluge s root prava nije mogao promijeniti pravila vatrozida koja si stvorio:

# firewall-cmd --lockdown-on

Onemogući način blokiranja:

# firewall-cmd --lockdown-off

Port prosljeđivanje u vatrozidu

Možete stvoriti pravilo za prosljeđivanje porta u firewalldu. Za prosljeđivanje porta 443 na 9090:

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

Da biste uklonili pravilo prosljeđivanja priključka:

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

FirewallD je alat za upravljanje vatrozidom koji je dostupan prema zadanim postavkama na poslužiteljima CentOS 7. To je u osnovi omotač oko IPTables i dolazi s alatom za grafičku konfiguraciju, firewall-config, i alatom za naredbeni red, firewall-cmd. Uz uslugu IPtables, svaka promjena zahtijeva brisanje starih pravila i stvaranje novih pravila u datoteci ` /etc/sysconfig/iptables`, a kod vatrozida se primjenjuju samo razlike.

Zone vatrozida

FirewallD koristi usluge i zone umjesto pravila i lanaca u Iptables. Prema zadanim postavkama dostupne su sljedeće zone:

  • pad– Ispustite sve dolazne mrežne pakete bez odgovora, samo one odlazne mrežne veze dostupno.
  • blok– Odbijte sve dolazne mrežne pakete s porukom icmp-host-prohibited, dopuštene su samo odlazne mrežne veze.
  • javnost– prihvaćaju se samo odabrane dolazne veze, za korištenje u javnim prostorima
  • vanjski– Za vanjske mreže s maskiranjem, prihvaćaju se samo odabrane dolazne veze.
  • dmz– demilitarizirana zona DMZ, javno dostupna s ograničenim pristupom internoj mreži, prihvaćaju se samo odabrane dolazne veze.
  • raditi
  • Dom– Za računala u matičnoj zoni prihvaćaju se samo odabrane dolazne veze.
  • unutarnje– Za računala u vašoj internoj mreži prihvaćaju se samo odabrane dolazne veze.
  • vjerovao– Sve mrežne veze su prihvaćene.

Da biste dobili popis svih dostupnih zona:

# firewall-cmd --get-zones work drop interni vanjski pouzdani dom dmz javni blok

Za pregled popisa zadanih zona:

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

Za promjenu zadane zone:

Usluge vatrozida

FirewallD usluge su XML konfiguracijske datoteke koje sadrže informacije o unosu usluge za firewalld. Da biste dobili popis svih dostupnih usluga:

# firewall-cmd --get-services amanda-klijent amanda-k5-klijent bacula bacula-klijent ceph ceph-mon dhcp dhcpv6 dhcpv6-klijent dns docker-registar dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-replikacija ftp visoka dostupnost 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 puls eaudio lutkar radijus rpc-bind rsyncd samba samba-klijent sane smtp smtps snmp snmptrap lignja ssh sinergija syslog syslog-tls telnet tftp tftp-klijent tinc tor-socks prijenos-klijent vdsm vnc-poslužitelj wbem-https xmpp-bosh xmpp-klijent xmpp-lokalni xmpp-poslužitelj

Konfiguracija XML datoteke pohranjeni u imenicima /usr/lib/firewalld/services/ I /etc/firewalld/services/.

Postavljanje vatrozida s FirewallD

Kao primjer, evo kako možete konfigurirati vatrozid s FirewallD ako koristite web poslužitelj, SSH na priključku 7022 i poslužitelj e-pošte.

Prvo ćemo postaviti zadanu zonu za DMZ.

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

Da biste dodali trajna pravila usluge za HTTP i HTTPS u DMZ, pokrenite sljedeću naredbu:

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

Otvorite port 25 (SMTP) i port 465 (SMTPS):

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

Otvoreni, IMAP, IMAPS, POP3 i POP3S priključci:

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

Budući da je SSH port promijenjen u 7022, uklonit ćemo SSH uslugu (port 22) i otvoriti port 7022

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

Za implementaciju promjena moramo ponovno pokrenuti vatrozid:

Firewall-cmd --reload

Na kraju, možete navesti pravila.

pokazat ćemo ti postavljanje korak po korak Firewalld vatrozid u CentOS 7

Što je Firewalld? Ovo je potpuni vatrozid koji je dostupan prema zadanim postavkama u CentOS-u 7. Pokazat ćemo vam kako ga konfigurirati na poslužitelju i također predstaviti alat firewall-cmd.

1. Koji su osnovni koncepti vatrozida?

Zone

Firewalld može upravljati grupama pravila kroz zone. To je skup uputa za upravljanje prometom na temelju povjerenja u mreže. Zona se može dodijeliti mrežnom sučelju za kontrolu ponašanja vatrozida. To može biti potrebno jer se prijenosna računala često mogu povezati s različitim mrežama. Računala mogu koristiti zone za promjenu skupa pravila ovisno o svom okruženju. Na primjer, ako se povežete na Wi-Fi u kafiću, možda ćete morati primijeniti strože smjernice. Ali kod kuće pravila mogu biti lojalnija.

Firewalld ima sljedeće zone:

Drop ima najniži stupanj povjerenja na mreži. U ovom slučaju podržane su samo odlazne veze, a dolazni promet se prekida bez odgovora;

Blokiranje se razlikuje od ispuštanja po tome što kada se dolazni zahtjev odbaci, izdaje se poruka icmp-host-prohibited ili icmp6-adm-prohibited;

Javna zona je javna mreža koja podržava dolazne zahtjeve na individualnoj osnovi. Međutim, ne može joj se vjerovati;

Vanjska je vanjska mrežna zona koja podržava maskiranje NAT-a kako bi interna mreža bila privatna. Međutim, može mu se pristupiti;

Druga strana vanjskog je unutarnja. Računala u ovoj zoni mogu biti pouzdana, tako da će dodatne usluge biti dostupne;

Dmz zona je tražena za izolirana računala koja nemaju pristup ostatku mreže. U ovom slučaju, moći ćete konfigurirati odabrane dolazne veze;

Zona radne mreže je radna. U njemu možete vjerovati okruženju, ali nisu podržane sve dolazne veze, već samo one definirane od strane korisnika;

U pouzdanoj zoni možete vjerovati svim računalima na mreži.

Pravila spremanja

U Firewalldu su privremeni ili trajni. Događa se da se u skupu promijeni ili pojavi pravilo koje utječe na ponašanje vatrozida. Promjene će se izgubiti nakon ponovnog pokretanja, pa ih morate spremiti. Naredbe firewall-cmd koriste oznaku -permanent za održavanje pravila. Nakon toga moći ćete ih koristiti kontinuirano.

2. Kako omogućiti Firewalld?

Trebali biste započeti pokretanjem demon programa u pozadini. Datoteka jedinice systemd naziva se firewalld.service. da biste omogućili program demon koji trebate naredbeni redak brojčanik:

Sudo systemctl pokreni firewalld.service

Moramo biti sigurni da je usluga počela. Za ovo će vam trebati:

Firewall-cmd --stanje pokrenuto

Vatrozid je pokrenut i radi prema zadanim uputama. Imajte na umu da je usluga omogućena, ali se neće automatski pokrenuti s poslužiteljem. Da biste to učinili, morat ćete konfigurirati automatsko pokretanje. Osim toga, napravite skup pravila kako ne biste bili blokirani na vlastitom poslužitelju.

3. Zadana pravila vatrozida

Kako ih mogu vidjeti?

Za pregled zadane zone upišite:

Firewall-cmd --get-default-zone public

Vidimo da Firewalld nije dobio upute u vezi s drugim zonama. Javno se koristi prema zadanim postavkama i jedina je aktivna zona, jer nijedno sučelje nije bilo povezano s ostalima. Ako želite vidjeti popis svih dostupnih domenskih zona, tada unesite u konzolu:

Firewall-cmd --get-active-zones javna sučelja: eth0 eth1

Vidimo dva mrežna sučelja povezana s javnom zonom. Rade prema pravilima određenim za ovu zonu. Zadana pravila možete vidjeti na sljedeći način:

Firewall-cmd --list-all javna (zadana, aktivna) sučelja: eth0 eth1 izvori: usluge: dhcpv6-klijent ssh portovi: maskarada: nema portova za prosljeđivanje: icmp-blokovi: bogata pravila:

Ukratko:

Zadana i jedina aktivna zona je javna;

Dva su sučelja dodijeljena ovoj zoni: eth0 i eth1;

Public podržava udaljenu SSH administraciju kao i DHSP dodjelu IP adresa.

Ostale zone vatrozida

Pogledajmo koje druge zone vatrozid ima. Da biste vidjeli popis svih dostupnih, upišite u konzolu:

Također možete dobiti parametre za svaku specifičnu zonu dodavanjem oznake -zone=:

Firewall-cmd --zone=home --list-all početna sučelja: izvori: usluge: dhcpv6-klijent ipp-klijent mdns samba-klijent ssh portovi: maskarada: nema portova za prosljeđivanje: icmp-blokovi: bogata pravila:

Ako trebate ispisati definicije svih dostupnih zona, koristite opciju --list-all-zones. Pošaljimo izlaz na stranicu kako bismo ga lakše vidjeli:

Firewall-cmd --list-all-zones | manje

4. Kako konfigurirati zone sučelja?

Sva su mrežna sučelja inicijalno vezana za zadanu zonu.

Promjena zone sučelja za samo jednu sesiju

U tu svrhu trebat će nam dvije opcije: --change-interface= i --zone=. Za prijenos u matičnu eth0 zonu birajte:

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

Imajte na umu da to može utjecati na funkcionalnost određenih usluga. Na primjer, SSH je podržan u matičnoj zoni, tj. veze se neće resetirati. Međutim, to se može dogoditi u drugim zonama, što će dovesti do blokiranja pristupa vlastitom poslužitelju. Moramo biti sigurni da je sučelje vezano za novu zonu. Upišite u naredbeni redak:

Kada se vatrozid ponovno pokrene, sučelje će se ponovno povezati sa zadanom zonom.

Sudo systemctl restart firewalld.service firewall-cmd --get-active-zones javna sučelja: eth0 eth1

Trajna promjena zone sučelja

Nakon ponovnog pokretanja vatrozida, sučelje će se ponovno dodijeliti zadanoj zoni ako nijedna druga zona nije navedena u postavkama sučelja. Konfiguracije u CentOS-u nalaze se u datotekama formata ifcfg-sučelja u direktoriju /etc/sysconfig/network-scripts. Da biste definirali zonu sučelja, trebate otvoriti njegovu konfiguracijsku datoteku:

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

Dodajmo varijablu ZONE= na kraj datoteke. Postavimo drugu zonu kao vrijednost:

DNS1=2001:4860:4860::8844 DNS2=2001:4860:4860::8888 DNS3=8.8.8.8 ZONE=dom

Sada spremimo promjene, nakon čega se datoteka može zatvoriti. Za ažuriranje postavki morat ćete ponovno pokrenuti mrežnu uslugu, kao i vatrozid:

Sudo systemctl ponovno pokrenite network.service sudo systemctl ponovno pokrenite firewalld.service

Nakon toga, eth0 sučelje će biti dodijeljeno matičnoj zoni.

Firewall-cmd --get-active-zones početna sučelja: eth0 javna sučelja: eth1

Postavljanje zadanih zona

Također se može postaviti druga zadana zona. Opcija --set-default-zone= će nam pomoći u tome, jer veže sva mrežna sučelja na drugu zonu.

Sudo firewall-cmd --set-default-zone=home početna sučelja: eth0 eth1

5. Kako napraviti pravila za aplikacije?

Dodavanje u područje usluge

To je najlakše učiniti na portu koji koristi vatrozid. Da biste vidjeli sve dostupne usluge, upišite u naredbeni redak:

Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns ftp visoka dostupnost http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms- wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radijus rpc-bind samba samba-klijent smtp ssh telnet tftp tftp-klijent prijenos-klijent vnc-poslužitelj wbem-https

Upamtite da .xml datoteke u direktoriju /usr/lib/firewalld/services pohranjuju sve informacije o svakoj usluzi. Informacije o SSH-u mogu se pronaći u /usr/lib/firewalld/services/ssh.xml. Izgledaju ovako:

Da biste omogućili podršku za usluge u zonama, potrebna vam je zastavica -add-service=, ali je opcija -zone korisna za određivanje ciljne zone. Upamtite da će takve promjene vrijediti samo za jednu sesiju. Ako trebate spremiti promjene za kasniju upotrebu, koristite oznaku -permanent. Pogledajmo kako radi. Pokrenimo web poslužitelj tako da može posluživati ​​HTTP promet. Omogućimo podršku za jednu sesiju u javnoj zoni. Upišite u konzolu:

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

Nemojte koristiti opciju -zone= ako uslugu dodajete u zadanu zonu. Provjerimo je li sve radilo:

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

Sada moramo testirati vatrozid i samu uslugu. Ako vidite da je sve u redu, možete sigurno promijeniti stalni skup pravila. Da biste dodali pravilo podrške za novu uslugu, trebate navesti u konzoli:

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

Ako trebate vidjeti cijeli popis pravila koja su na snazi ​​na trajnoj osnovi, tada:

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

Kao rezultat toga, javna zona podržavat će port 80 i HTTP. Ako vaš poslužitelj može posluživati ​​SSL/TLS promet, možete dodati HTTPS uslugu:

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

6. Što ako je usluga nedostupna?

Prema zadanim postavkama Firewalld uključuje mnoge popularne usluge. No događa se da programi trebaju druge usluge koje nisu uključene u vatrozid. Ovaj problem se može riješiti na nekoliko načina.

Metoda #1: Definiranje usluge

Dodavanje porta u zonu prilično je jednostavno. Međutim, ako postoji dosta aplikacija, bit će teško razumjeti koji port koristi što. U takvoj situaciji dobro rješenje postojat će definicija usluga umjesto luka. U osnovi, usluga je grupa portova koji su dobili naziv i opis. Uz njihovu pomoć bit će lakše upravljati postavkama. Ali usluga je nešto kompliciranija od luke.

Počnimo s kopiranjem postojeće skripte iz mape /usr/lib/firewalld/services, iz koje vatrozid preuzima nestandardne postavke u /etc/firewalld/services. Kopirajmo definiciju SSH usluge da je upotrijebimo kao primjer definicije uvjetne usluge. Ne zaboravite da naziv skripte mora odgovarati nazivu usluge i također imati ekstenziju datoteke .xml. Upišite u konzolu:

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

Sada trebate izvršiti izmjene u kompajliranoj datoteci:

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

Unutra je SSH definicija:

SSH Secure Shell (SSH) je protokol za prijavu i izvršavanje naredbi na udaljenim strojevima. Omogućuje sigurnu šifriranu komunikaciju. Ako svom stroju planirate pristupiti daljinski putem SSH-a preko vatrozidnog sučelja, omogućite ovu opciju. Morate imati instaliran openssh-server paket da bi ova opcija bila korisna.

Sada spremimo promjene i zatvorimo datoteku. Nakon toga morat ćete ponovno pokrenuti vatrozid koristeći:

Sudo firewall-cmd --reload

Naša će se pojaviti na popisu dostupnih usluga:

Firewall-cmd --get-services RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns primjer ftp visoka dostupnost http https imaps ipp ipp-client ipsec kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms -wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radijus rpc-bind samba samba-klijent smtp ssh telnet tftp tftp-klijent prijenos-klijent vnc-poslužitelj wbem-https

Metoda br. 2: Stvaranje priključka

Otvorimo port aplikacije u željenoj zoni vatrozida i odredimo ga, kao i protokol. Zamislimo situaciju u kojoj u javnu zonu trebate dodati program koji koristi TCP protokol i port 5000. Da biste aktivirali podršku aplikacije za jednu sesiju, trebat će vam opcija -add-port=. Osim toga, morate navesti tcp protokol ili udp:

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

Uvjerimo se da sve radi:

Firewall-cmd --list-ports 5000/tcp

Osim toga, moguće je odrediti raspon priključaka pomoću crtice. Na primjer, ako program koristi priključke 4990-4999, tada ih možete dodati u javnu zonu na sljedeći način:

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

Ako sve radi dobro, dodajte upute u postavke vatrozida:

Sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp sudo firewall-cmd -- zona=javno --trajno --list-ports uspjeh uspjeh 4990-4999/udp 5000/tcp

7. Kako napraviti zonu?

Vatrozid je sposoban pružiti razne predefinirane zone, koje su obično dovoljne za rad, ali ponekad je potrebno stvoriti vlastitu prilagođenu zonu. Na primjer, DNS poslužitelj treba privateDNS zonu, a web poslužitelj treba javnu web zonu. Nakon što stvorite zone, morate ih dodati u postavke vatrozida. Kreirajmo publicweb i privateDNS zone upisivanjem u konzolu:

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

Provjerimo je li sve radilo:

Sudo firewall-cmd --permanent --get-zones block dmz drop external home internal privateDNS public publicweb trusted work

Firewall-cmd --get-zones block dmz drop external home interni javni pouzdani rad

Međutim, nove zone neće biti dostupne u trenutnoj sesiji:

Firewall-cmd --get-zones block dmz drop external home interni javni pouzdani rad

Ponovno pokrenimo vatrozid kako bismo dobili pristup novim zonama:

Sudo firewall-cmd --reload firewall-cmd --get-zones block dmz drop external home internal privateDNS public publicweb trusted work

Sada će nove zone moći definirati luke i usluge. Recimo da je potrebno dodati SSH, HTTP i HTTPS u zonu publicweb:

Sudo firewall-cmd --zone=publicweb --add-service=ssh sudo firewall-cmd --zone=publicweb --add-service=http sudo firewall-cmd --zone=publicweb --add-service=https firewall- cmd --zone=publicweb --list-all publicweb sučelja: izvori: usluge: http https ssh portovi: maskarada: nema portova za prosljeđivanje: icmp-blokovi: bogata pravila:

Osim toga, možete dodati DNS u zonu privateDNS koristeći:

Sudo firewall-cmd --zone=privateDNS --add-service=dns firewall-cmd --zone=privateDNS --list-all privateDNS sučelja: izvori: usluge: dns portovi: masquerade: nema forward-portova: icmp-blokovi: bogata pravila:

Nakon toga možete sigurno dodijeliti mrežna sučelja novim zonama:

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

Provjerite rade li postavke. Ako je sve u redu, dodajte ih stalnim pravilima:

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

Sada prijeđimo na postavljanje mrežnih sučelja. Ovo je neophodno za izvođenje automatsko povezivanje u željenu zonu. Recimo da se trebate vezati na publicweb eth0, a zatim:

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

Povežimo također eht1 s privatnim DNS-om koristeći:

Sudo nano /etc/sysconfig/network-scripts/ifcfg-eth1. . . NETMASK=255.255.0.0 DEFROUTE="ne" NM_CONTROLLED="da" ZONE=privatniDNS

Da bi promjene stupile na snagu, morat ćete ponovno pokrenuti vatrozid i mrežne usluge:

Sudo systemctl ponovno pokrenite mrežu sudo systemctl ponovno pokrenite vatrozid

Morate provjeriti zone kako biste bili sigurni da su usluge registrirane:

Firewall-cmd --get-active-zones privatnaDNS sučelja: eth1 publicweb sučelja: eth0

Sada moramo provjeriti rade li:

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

Kao što vidimo, korisničke zone su potpuno spremne za rad. Bilo koji od njih može se dodijeliti kao zadani. Na primjer:

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

8. Kako mogu učiniti da se vatrozid automatski pokrene?

Nakon provjere pravila i svih postavki, konfigurirat ćemo automatsko pokretanje pomoću:

Sudo systemctl omogući vatrozid

To će omogućiti aktiviranje vatrozida odmah nakon pokretanja poslužitelja.

Kao zaključak, vrijedi napomenuti da je vatrozid Firewalld prilično fleksibilan alat u pogledu postavki. I možete promijeniti politiku njegovog rada pomoću zona.

Prvi korak u zaštiti poslužitelja od vanjskih prijetnji je vatrozid koji filtrira dolazni i odlazni promet. U ovom članku želim raspravljati o postavljanju iptables, posebnom slučaju vatrozida na CentOS-u, te također razgovarati o njegovoj instalaciji i onemogućavanju. Moj vodič neće biti iscrpan; razmotrit ću samo one aspekte koje smatram najvažnijima i koje sam koristim u svom radu.

Ovaj je članak dio jedne serije članaka o poslužitelju.

Uvod

Iptables je trenutno de facto standard među modernim distribucijama Linuxa. Ne mogu se uopće sjetiti što se još koristi kao vatrozid. Dakle, svaki Linux administrator mora se nositi s postavljanjem ovog vatrozida u svom radu.

Postoje različite veze s ovim vatrozidom koje se koriste za "praktičniju" konfiguraciju. Ubuntu ima ufw, u centima - vatrozid, ostale ne znam. Osobno, ne vidim nikakvu pogodnost u korištenju ovih alata. Navikao sam postavljati Linux firewall na starinski način, kako sam naučio na samom početku svog rada. Mislim da je ovo najjednostavniji i najprikladniji način, koji ću podijeliti s vama. Njegova se bit svodi na činjenicu da se skripta stvara prema pravilima vatrozida. Ova se skripta može jednostavno uređivati ​​kako bi odgovarala vašim potrebama i prenositi s poslužitelja na poslužitelj.

Onemogućavanje vatrozida

Već sam se dotaknuo pitanja onemogućavanja vatrozida u temi na . Prije svega, onemogućimo firewalld, koji je prisutan u centos 7 prema zadanim postavkama odmah nakon instalacije:

# systemctl zaustavi vatrozid

Uklonimo ga sada iz pokretanja kako se ne bi ponovno uključio nakon ponovnog pokretanja:

# systemctl onemogući vatrozid

Nakon toga, postavke vatrozida na poslužitelju postaju potpuno otvorene. Iptables pravila možete vidjeti naredbom:

Instalacija iptables

Zapravo, već imamo vatrozid na našem poslužitelju i on radi, jednostavno nema pravila, sve je otvoreno. Morat ćemo instalirati dodatne uslužne programe za upravljanje, bez kojih je nemoguće konfigurirati iptables. Na primjer, neće biti moguće ponovno pokrenuti vatrozid:

# systemctl ponovno pokrenite iptables.service Nije uspjelo izdavanje poziva metode: Jedinica iptables.service nije uspjela učitati: Nema takve datoteke ili direktorija.

Ili ga nećete moći dodati u automatsko pokretanje:

# systemctl enable iptables.service Nije uspjelo izdavanje poziva metode: Nema takve datoteke ili direktorija

Da biste izbjegli takve pogreške, instalirajte potrebni paket s uslužnim programima:

# yum -y instaliraj iptables-services

Sada možete dodati iptables za pokretanje i pokretanje:

# systemctl omogući iptables.service # systemctl pokreni iptables.service

Postavljanje vatrozida

Koristim skriptu za upravljanje pravilima vatrozida. Stvorimo ga:

# mcedit /etc/iptables.sh

Zatim ćemo ga ispuniti potrebnim pravilima. Analizirat ću sve značajne dijelove scenarija, i U cijelosti ću ga dati kao tekstualnu datoteku na kraju članka. Pravila su napravljena u obliku slika kako bi se zabranilo kopiranje i lijepljenje. To može dovesti do pogrešaka u radu pravila, s kojima sam se i sam susreo tijekom pripreme članka.

Razmotrit ćemo situaciju u kojoj je poslužitelj pristupnik Internetu za lokalnu mrežu.

Prije svega, postavimo sve varijable koje ćemo koristiti u skripti. Ovo nije potrebno, ali se preporučuje jer je zgodno prenijeti postavke s poslužitelja na poslužitelj. Bit će dovoljno jednostavno ponovno dodijeliti varijable.

Prije primjene novih pravila brišemo sve lance:

Blokiramo sav promet koji ne odgovara nijednom od pravila:

Dopusti sav lokalni i lokalni promet:

Dopuštamo ping:

Ako vam ovo nije potrebno, onda nemojte dodavati dopuštajuća pravila za icmp.

Otvaramo pristup Internetu samom poslužitelju:

Ako želite otvoriti sve dolazne veze s poslužiteljem, dodajte sljedeće pravilo:

Dodajmo sada zaštitu od najčešćih mrežnih napada. Prvo, odbacimo sve pakete koji nemaju status:

Blokiranje nultih paketa:

Zaštitite se od syn-flood napada:

Ako ne postavite ograničenja pristupa iz lokalne mreže, tada dopuštamo svima pristup Internetu:

Zatim zabranjujemo pristup s interneta lokalnoj mreži:

Kako bi naša lokalna mreža mogla koristiti internet, omogućujemo nat:

Kako ne bismo izgubili pristup poslužitelju, nakon primjene pravila dopuštamo veze putem ssh-a:

I na kraju zapišemo pravila tako da se primjenjuju nakon ponovnog pokretanja:

Sastavili smo jednostavnu konfiguraciju koja blokira sve dolazne veze osim ssh i dopušta pristup s lokalne mreže na Internet. Istovremeno smo se zaštitili od nekih mrežnih napada.

Spremite skriptu, učinite je izvršnom i pokrenite:

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

Pogledajmo pravila i provjerimo jesu li sva pravila na mjestu:

# iptables -L -v -n

Imajte na umu da pravila trebate primijeniti samo ako imate pristup konzoli poslužitelja. Ako postoji pogreška u postavkama, možete izgubiti pristup. Provjerite možete li u hitnim slučajevima onemogućiti vatrozid i prilagoditi postavke.

Otvaranje portova

Sada malo proširimo našu konfiguraciju i otvorimo portove u iptables za neke usluge. Recimo da imamo pokrenut web poslužitelj i trebamo mu otvoriti pristup s interneta. Dodajte pravila za web promet:

Dodana je dozvola za dolazne veze na portovima 80 i 443 koje web poslužitelj koristi u svom radu.

Ako imate instaliran poslužitelj e-pošte, morate dopustiti dolazne veze na njega na svim korištenim portovima:

Za ispravan rad DNS poslužitelja morate otvoriti UDP port 53

Port prosljeđivanje

Razmotrimo situaciju kada je potrebno proslijediti portove s vanjskog sučelja na neko računalo na lokalnoj mreži. Recimo da trebate dobiti rdp pristup računalu 10.1.3.50 s Interneta. Prosljeđujemo TCP port 3389:

Ako ne želite izložiti poznati port izvana, možete se preusmjeriti s nestandardnog porta na rdp port ciljanog računala:

Ako vanjski priključak prosljeđujete na lokalnu mrežu, svakako komentirajte pravilo koje blokira pristup s vanjske mreže na unutarnju. U mom primjeru ovo pravilo je: $IPT -A FORWARD -i $WAN -o $LAN1 -j REJECT

Ili prije ovog pravila stvorite dopuštajuće pravilo za vanjski pristup internoj usluzi, na primjer ovako:

$IPT -A NAPRIJED -i $WAN -d 10.1.3.50 -p tcp -m tcp --dport 3389 -j PRIHVAT

Omogućavanje zapisnika

Tijekom postavljanja korisno je omogućiti zapisnike za praćenje blokiranih paketa i saznati zašto nema pristupa potrebnim servisima za koje se čini da smo već otvorili. Šaljem sve blokirane pakete u zasebne lance (block_in, block_out, block_fw) koji odgovaraju smjeru prometa i označavam svaki smjer u zapisima. To čini prikladnijim obaviti debrifing. Dodajte sljedeća pravila na sam kraj skripte, prije spremanja postavki:

Sve blokirane pakete možete pratiti u datoteci /var/log/messages.

Nakon što završite s postavljanjem, komentirajte ove retke i onemogućite zapisivanje. To je svakako vrijedno učiniti, jer trupci rastu vrlo brzo. Ja osobno ne vidim nikakvog praktičnog smisla u pohranjivanju takvih informacija.

Kako onemogućiti iptables

Ako iznenada odlučite da vam vatrozid više nije potreban, možete ga onemogućiti na sljedeći način:

# systemctl zaustavi iptables.service

Ova naredba zaustavlja vatrozid. A sljedeće ga uklanja iz pokretanja:

# systemctl onemogući iptables.service

Isključivanjem vatrozida dopustili smo sve veze.

Zaključak

Kao što sam obećao, objavljujem gotovu skriptu s osnovnim skupom pravila koja smo razmotrili

Želio bih još jednom naglasiti da prilikom postavljanja iptables morate biti izuzetno oprezni. Nemojte pokretati ovaj posao ako nemate pristup konzoli poslužitelja. Još dok sam pisao ovaj članak, izgubio sam pristup poslužitelju zbog smiješne greške u pravilima. Ova pogreška nastala je zbog prepisivanja i gubitka dvostruke crtice - zamijenjena je jednom.

online tečaj “Linux Administrator” na OTUS-u. Tečaj nije za početnike, za upis je potrebno osnovno znanje o mrežama i instaliranju Linuxa na virtualni stroj. Obuka traje 5 mjeseci, nakon čega će uspješni polaznici tečaja moći proći razgovore s partnerima. Što će vam ovaj tečaj dati:

  • Poznavanje Linux arhitekture.
  • Ovladavanje suvremenim metodama i alatima za analizu i obradu podataka.
  • Mogućnost odabira konfiguracije za tražene zadatke, upravljanje procesima i osiguranje sigurnosti sustava.
  • Poznavanje osnovnih radnih alata administratora sustava.
  • Razumijevanje specifičnosti postavljanja, konfiguriranja i održavanja mreža izgrađenih na Linuxu.
  • Sposobnost brzog rješavanja novonastalih problema i osiguravanja stabilnog i nesmetanog rada sustava.
Testirajte se na prijemnom ispitu i pogledajte program za više detalja.

Danas ću vas upoznati sa svojom vizijom početne konfiguracije univerzalnog poslužitelja na popularnom OS-u. Govorit ću o tome kako izvršiti osnovno postavljanje centos poslužitelja odmah nakon instalacije kako biste ga koristili u bilo kojem svojstvu prema vlastitom nahođenju. Dani praktični savjeti povećavaju sigurnost i udobnost rada s poslužiteljem. Članak će biti relevantan za dva najnovija izdanja Centos - 7 i 8.

  1. Navedite početne centos postavke koje izvodim na svježe instaliranom poslužitelju.
  2. Pokažite primjere konfiguracija koje koristim u tipičnom postavljanju.
  3. Dajte savjet o postavljanju centos na temelju vašeg iskustva sa sustavom.
  4. Navedite popis tipičnih programa i uslužnih programa koji pomažu u administriranju poslužitelja.

Ovaj je članak dio jedne serije članaka o poslužitelju.

Uvod

Nakon izlaska novog izdanja Centos 8 postalo je teško opisati ga u jednom članku početno postavljanje oba poslužitelja, ali nisam htio razdvojiti članak jer ima puno dolaznih poveznica s različitih mjesta. Praktičnije je održavati opći materijal na oba izdanja, što ću i učiniti. Istovremeno, razlike između ove dvije verzije bit će jasno vidljive; nekoliko godina nakon izlaska centos 8 obje će biti relevantne i morat ćete koristiti obje verzije, ovisno o situaciji.

Centos 7 koristi upravitelj paketa njam, au Centosu 8 - dnf. Pritom su ostavili simboličan link od yum do dnf, tako da možete napisati i ime i drugo. Radi dosljednosti, cijelo vrijeme ću koristiti yum, ali upozoravam vas, samo da razumijete zašto to radim na ovaj način. Zapravo, CentOS 8 koristi dnf, ovo je još jedan, moderniji upravitelj paketa koji vam omogućuje rad s različite verzije isti softver. U tu svrhu koriste se zasebni repozitoriji koji su se pojavili za centos 8.

Početno postavljanje CentOS-a

Osobno, bilo koje postavljanje sustava, bio to centos ili neki drugi, započinjem nakon instalacije potpunim ažuriranjem sustava. Ako je instalacijska slika bila svježa ili je instalacija izvršena preko mreže, najvjerojatnije neće biti ažuriranja. Najčešće postoje jer se instalacijske slike ne ažuriraju uvijek redovito.

Ažuriranje sustava

# njam ažuriranje

Radi lakše administracije uvijek instaliram Midnight Commander ili samo mc:

# yum instalirajte mc

I odmah za njega uključujem označavanje sintakse za sve datoteke koje nisu eksplicitno označene u datoteci /usr/share/mc/syntax/Sintaksa sintaksa za sh i bash skripte. Ova univerzalna sintaksa je dobra za konfiguracijske datoteke s kojima najčešće morate raditi na poslužitelju. Prepisivanje datoteke nepoznato.sintaksa. Ovo je uzorak koji će se primijeniti na .conf i .cf datoteke, budući da njima nije pridružena eksplicitna sintaksa.

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

Sljedeći će vam dobro doći mrežni uslužni programi. Ovisno o skupu početnih paketa koje odaberete prilikom instaliranja sustava, imat ćete jedan ili onaj skup mrežnih uslužnih programa. Ovdje je popis onih na koje sam osobno navikao - ifconfig, netstat, nslookup i neki drugi. Ako vam treba, baš kao i meni, predlažem da ih instalirate zasebno ako već nisu instalirani. Ako vam nisu posebno potrebni i ne koristite ih, možete preskočiti njihovu instalaciju. Provjerimo što trenutno imamo u sustavu

# ifconfig

Ako vidite odgovor:

Bash: ifconfig: naredba nije pronađeno

To znači da uslužni program nije instaliran. Umjesto ifconfig-a u CentOS-u sada postoji uslužni program ip. Ovo se ne odnosi samo na cento. Ovo je slika u gotovo svim popularnim modernim distribucijama Linuxa. Dugo sam navikao na ifconfig, iako ga u zadnje vrijeme nisam puno koristio. Uvijek mi se sviđalo što je u različitim distribucijama Linuxa sve približno isto. Koristeći ifconfig možete konfigurirati mrežu ne samo u Linuxu, već iu freebsd-u. Udobno je. A kada svaka distribucija ima svoj alat, to nije zgodno. Iako sada to više nije toliko relevantno, budući da više ne radim s Freebsd-om, a uslužni program ip dostupan je u svim distribucijama Linuxa. Međutim, ako trebate ifconfig, možete instalirati paket net-alati, koje uključuje:

# yum instalirajte net-tools

Da bi nslookup ili npr. host naredbe radile, moramo instalirati paket bind-utils. Ako to nije učinjeno, upotrijebite naredbu:

#nslookup

Izlaz će biti:

Bash: nslookup: naredba nije pronađena

Dakle, instalirajmo bind-utils:

# yum instaliraj bind-utils

Onemogući SELinux

Onemogući SELinux. Njegova uporaba i konfiguracija je posebna stvar. Neću to sada učiniti. Pa hajde da ga isključimo:

# mcedit /etc/sysconfig/selinux

promijeniti vrijednost

SELINUX=onemogućeno

Možete ponovno pokrenuti sustav kako bi promjene stupile na snagu:

# ponovno podizanje sustava

A ako želite onemogućiti SELinux bez ponovnog pokretanja, pokrenite naredbu:

#setenforce 0

Stalno dobivam mnogo kritika o onemogućavanju SELinuxa. Znam kako radi, znam kako to konfigurirati. Zaista nije komplicirano i nije ga teško svladati. Ovo je moj svjestan izbor, iako ga ponekad mijenjam. Način na koji radim sa sustavom je takav da mi SELinux najčešće ne treba, pa ne gubim vrijeme na njega i onemogućujem centos u osnovnim postavkama. Sigurnost sustava složen je pothvat, posebno u moderni svijet web razvoj, gdje vladaju mikroservisi i spremnici. SELinux je nišni alat koji nije potreban uvijek i ne svugdje. Stoga mu nije mjesto u ovom članku. Oni kojima je to potrebno zasebno će omogućiti SELinux i konfigurirati ga.

Određivanje mrežnih parametara

Nastavljamo s osnovnim postavljanjem centosa nakon instalacije. Sada ćemo to učiniti ako iz nekog razloga to nismo učinili tijekom instalacije ili ako ih trebate promijeniti. U opći slučaj, mreža u Centosu je konfigurirana pomoću NetworkManager i njega uslužni program konzole nmtui. Dolazi s osnovnom instalacijom sustava. Postoji jednostavno i jasno grafičko sučelje, tako da se nema što reći. Više sam navikao na postavljanje mreže putem konfiguracijske datoteke mrežne skripte. U verziji 7 centos-a oni su prisutni izvan kutije, u verziji 8 su uklonjeni. Da biste ih koristili za konfiguriranje mreže, morate zasebno instalirati paket mrežne skripte.

# yum instalirajte mrežne skripte

Sada možete konfigurirati mrežu. Da biste to učinili, otvorite datoteku /etc/sysconfig/network-scripts/ifcfg-eth0

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

Ako primite mrežne postavke putem dhcp-a, tada će minimalni skup postavki u konfiguracijskoj datoteci biti sljedeći.

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

Za konfiguriranje statičke IP adrese, postavke će biti sljedeće.

TYPE="Ethernet" BOOTPROTO="nema" DEFROUTE="da" IPV4_FAILURE_FATAL="ne" NAME="eth0" DEVICE="eth0" ONBOOT="da" IPADDR=192.168.167.117 DNS1=192.168.167.113 PREFIX=28 GATEWAY= 192.168.167.113

U polje IPADDR upisujemo vašu adresu, u PREFIX masku mreže, u GATEWAY gateway, DNS adresu dns servera. Spremite datoteku i ponovno pokrenite mrežu za primjenu postavki:

# systemctl ponovno pokrenite mrežu

Postavljanje vatrozida

Dodavanje spremišta

Prilikom postavljanja Centosa često vam je potreban softver koji nije uključen u standardnu ​​repu. Za instaliranje dodatnih paketa potrebno je. Najpopularniji je EPEL. Nekada je postojao rpmforge, ali je zatvoren već nekoliko godina. Svi su ga zaboravili. Povezujemo EPEL spremište. S njim je sve jednostavno, dodaje se iz standardne repe:

# yum instalirajte epel-release

Također za CentOS 7, REMI repozitorij je izuzetno koristan, koji vam omogućuje da instalirate novije verzije php-a, za razliku od onih u standardnom repozitoriju. Podsjetit ću vas da se radi o verziji PHP 5.4 koja više ne valja i skinuta je s podrške.

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

Za Centos 8 remi još nije relevantan, ali mislim da je privremen. U principu, ova dva repozitorija u centosima su mi obično dovoljna u općem slučaju. Drugi se spajaju za specifične potrebe instaliranja različitog softvera.

Postavljanje pohrane povijesti u bash_history

Prijeđimo na postavljanje centos sustava na poslužitelju. Bit će korisno napraviti neke promjene u standardnom mehanizmu za spremanje povijesti naredbi. Često pomaže kada se morate sjetiti neke od prethodno unesenih naredbi. Standardne postavke imaju neka ograničenja koja su nezgodna. Evo njihovog popisa:

  1. Prema zadanim postavkama sprema se samo zadnjih 1000 naredbi. Ako ih ima više, stariji će biti izbrisani i zamijenjeni novima.
  2. Ne postoje datumi izvršenja za naredbe, samo njihov popis po redoslijedu izvršenja.
  3. Datoteka popisa naredbi se ažurira nakon završetka sesije. Tijekom paralelnih sesija, neke se naredbe mogu izgubiti.
  4. Apsolutno sve naredbe su spremljene, iako neke nema smisla pohranjivati.

Popis nedavno izvedenih naredbi pohranjuje se u korisničkom početnom direktoriju u datoteci .bash_povijest(točka na početku). Možete ga otvoriti bilo kojim uređivačem i pregledati. Za praktičniji prikaz popisa možete unijeti naredbu u konzolu:

#povijest

i pogledajte numerirani popis. Određenu naredbu možete brzo pronaći filtriranjem samo potrebnih redaka, na primjer ovako:

#povijest | grep njam

Na taj način ćemo vidjeti sve opcije za pokretanje naredbe yum, koje su pohranjene u povijesti. Ispravit ćemo navedene nedostatke standardne postavke pohranjivanje povijesti naredbi u CentOS. Da biste to učinili, morate urediti datoteku .bashrc, koji se nalazi u istom direktoriju kao i datoteka povijesti. Dodajte mu sljedeće retke:

Izvoz HISTSIZE=10000 izvoz HISTTIMEFORMAT="%h %d %H:%M:%S " PROMPT_COMMAND="povijest -a" izvoz HISTIGNORE="ls:ll:history:w:htop"

Prva opcija povećava veličinu datoteke na 10 000 redaka. Možete napraviti više, iako je ova veličina obično dovoljna. Drugi parametar određuje da datum i vrijeme izvršenja naredbe trebaju biti pohranjeni. Treći red prisiljava na spremanje u povijest odmah nakon izvršenja naredbe. U zadnjem retku kreiramo popis iznimaka za one naredbe koje ne moraju biti zabilježene u povijesti. Dao sam primjer najjednostavnije liste. Možete ga dodati po vlastitom nahođenju.

Za primjenu promjena potrebno se odjaviti i ponovno spojiti ili pokrenuti naredbu:

# izvor ~/.bashrc

To je sve o postavljanju pohrane povijesti naredbi. Postoji mnogo zanimljivih stvari koje možete konfigurirati u .bashrc datoteci. Jedno vrijeme sam se zanio i eksperimentirao, ali onda sam sve napustio jer nije imalo smisla. Kada radim s korisničkim poslužiteljima, najčešće vidim zadani bash, pa je bolje naviknuti se na njega i raditi u njemu. I individualne postavke i ukrasi su puno osobnih računala i poslužitelji. Ne radnici. Stoga ne konfiguriram ništa drugo prema standardu u centos poslužitelju u tom pogledu.

Automatsko ažuriranje sustava

Da bi se sigurnost poslužitelja održala na odgovarajućoj razini, potrebno ga je barem pravovremeno ažurirati - poput same jezgre s pomoćni programi sustava, kao i ostali paketi. To možete učiniti ručno, ali za učinkovitiji rad bolje je konfigurirati automatsko izvršenje. Nije potrebno automatski instalirati ažuriranja, ali barem provjerite njihov izgled. Obično slijedim ovu strategiju.

Njam-cron

Pomoći će nam uslužni program za automatsku provjeru ažuriranja u Centosu 7 njam-cron. Tradicionalno se instalira putem yum-a iz standardnog repozitorija.

# yum instalirajte yum-cron

Nakon instalacije kreira se yum-cron automatski zadatak izvršiti uslužni program u /etc/cron.daily I /etc/cron.svaki sat. Prema zadanim postavkama, uslužni program preuzima pronađena ažuriranja, ali ih ne primjenjuje. Umjesto toga, administrator na lokalu poštanski sandučić obavijest o ažuriranjima šalje se rootu. Onda ste već unutra ručni mod uđite i odlučite hoćete li instalirati ažuriranja ili ne u vrijeme koje vama odgovara. Smatram da je ovaj način rada najprikladniji, pa ne mijenjam te postavke.

Možete konfigurirati yum-cron putem konfiguracijskih datoteka koje se nalaze na /etc/yum/yum-cron.conf I yum-cron-po satu.konf. Dobro su komentirani, pa im ne trebaju detaljna objašnjenja. Skrećem vam pozornost na odjeljak , gdje možete odrediti parametre za slanje poruka. Prema zadanim postavkama, pošta se šalje putem lokalnog hosta. Ovdje možete promijeniti postavke i slati poruke putem poslužitelja pošte treće strane. No umjesto toga, osobno radije globalno konfiguriram cijeli poslužitelj da proslijedi lokalnu korijensku poštu u vanjski poštanski sandučić putem autorizacije na drugom SMTP poslužitelju.

Dnf-automatski

Kao što sam ranije rekao, Centos 8 koristi drugačiji upravitelj paketa - dnf. Konfiguriranje ažuriranja paketa tamo se vrši putem uslužnog programa dnf-automatski. Instalirajmo ga i konfigurirajmo.

# yum instaliraj dnf-automatic

Više nije cron taj koji upravlja planiranim pokretanjima, već systemd sa svojim ugrađenim planerom. Pogledajte mjerače vremena automatsko pokretanje možete koristiti naredbu:

# systemctl popis vremena *dnf-*

Ako tamo nema zadataka, možete ručno dodati mjerač vremena:

# systemctl enable --now dnf-automatic.timer

Zadani mjerač vremena postavljen je na pokretanje dnf-automatic sat vremena nakon podizanja poslužitelja i ponavlja se svakodnevno. Konfiguracija tajmera nalazi se ovdje - /etc/systemd/system/multi-user.target.wants/dnf-automatic.timer.

Konfiguracija za dnf-automatic postoji /etc/dnf/automatic.conf. Prema zadanim postavkama samo preuzima ažuriranja, ali ih ne primjenjuje. Konfiguracija je dobro komentirana, tako da je možete prilagoditi kako želite. Nije potrebno nikakvo posebno objašnjenje. Konfigurirajte ažuriranje paketa sustava prema vlastitom nahođenju. Kao što sam već rekao, samo ih preuzimam automatski. Instalaciju uvijek držim pod kontrolom s ručnim upravljanjem.

Onemogući preplavljivanje poruka u /var/log/messages

Nastavljajući konfigurirati centos, ispravit ćemo jednu malu neugodnost. U zadanoj instalaciji 7. verzije sustava, cijeli dnevnik vašeg sustava /var/log/messages Nakon nekog vremena poslužitelj će biti zakrčen sljedećim zapisima.

16. listopad 14:01:01 xs-files systemd: kreiran isječak user-0.slice. 16. listopada 14:01:01 xs-files systemd: Pokretanje user-0.slice. 16. listopad 14:01:01 xs-files systemd: Pokrenuta sesija 14440 root korisnika. 16. listopada 14:01:01 xs-files systemd: Pokretanje sesije 14440 root korisnika. 16. listopada 14:01:01 xs-files systemd: Uklonjen isječak user-0.slice. 16. listopada 14:01:01 xs-files systemd: Zaustavljanje user-0.slice. 16. listopad 15:01:01 xs-files systemd: kreiran isječak user-0.slice. 16. listopada 15:01:01 xs-files systemd: Pokretanje user-0.slice. 16. listopada 15:01:01 xs-files systemd: Pokrenuta sesija 14441 root korisnika. 16. listopada 15:01:01 xs-files systemd: Pokretanje sesije 14441 root korisnika. 16. listopad 15:01:01 xs-files systemd: Pokrenuta sesija 14442 korisnika root. 16. listopada 15:01:01 xs-files systemd: Pokretanje sesije 14442 root korisnika. 16. listopada 15:01:01 xs-files systemd: Uklonjen isječak user-0.slice. 16. listopada 15:01:01 xs-files systemd: Zaustavljanje user-0.slice. 16. listopad 16:01:01 xs-files systemd: kreiran isječak user-0.slice. 16. listopada 16:01:01 xs-files systemd: Pokretanje user-0.slice. 16. listopad 16:01:01 xs-files systemd: Pokrenuta sesija 14443 root korisnika. 16. listopad 16:01:01 xs-files systemd: Pokretanje sesije 14443 korijenskog korisnika. 16. listopada 16:01:01 xs-files systemd: Uklonjen isječak user-0.slice.

Nisam ih primijetio u Centosu 8, pa tamo ne moram ništa raditi. Poruke ne donose nikakvu praktičnu korist, pa ćemo ih isključiti. Da bismo to učinili, stvorit ćemo zasebno pravilo za rsyslog, gdje ćemo navesti sve predloške poruka koje ćemo izrezati. Smjestimo ovo pravilo zasebna datoteka /etc/rsyslog.d/ignore-systemd-session-slice.conf.

# cd /etc/rsyslog.d && mcedit ignore-systemd-session-slice.conf ako $programname == "systemd" i ($msg sadrži "Pokretanje sesije" ili $msg sadrži "Pokrenuta sesija" ili $msg sadrži "Stvoreno odsječak" ili $msg sadrži "Pokretanje korisnika-" ili $msg sadrži "Pokretanje korisničkog odsječka od" ili $msg sadrži "Uklonjena sesija" ili $msg sadrži "Uklonjeni odsječak korisnika odsječak od" ili $msg sadrži "Zaustavljanje korisničkog odsječka od" ) zatim prestanite

Spremite datoteku i ponovno pokrenite rsyslog za primjenu postavki.

# systemctl ponovno pokrenite rsyslog

Potrebno je razumjeti da u ovom slučaju onemogućujemo poplavu u log datoteci samo za lokalni poslužitelj. Ako zapise pohranjujete na , tada će ovo pravilo morati biti konfigurirano na njemu.

Instaliranje iftop, atop, htop, lsof na CentOS

I na kraju, da bismo dovršili postavljanje, dodat ćemo nekoliko korisnih uslužnih programa koji bi mogli dobro doći tijekom rada poslužitelja.

iftop pokazuje učitavanje mrežnog sučelja u stvarnom vremenu, može se pokrenuti raznim tipkama, neću se detaljno zadržavati na ovome, na Internetu postoje informacije o ovoj temi. Stavljamo:

# yum instalirajte iftop

I dva zanimljiva task managera, najčešće koristim htop, ali ponekad mi dobro dođe atop. Instalirajmo oboje, uvjerite se sami, shvatite što vam se najviše sviđa, što vam odgovara:

# yum instaliraj htop # yum instaliraj na vrh

Za prikaz informacija o tome koje datoteke koriste koji procesi, savjetujem vam da instalirate uslužni program lsof. Najvjerojatnije će vam dobro doći prije ili kasnije kada budete dijagnosticirali poslužitelj.

# yum instalirajte wget bzip2 traceroute gdisk

To je sve za mene. Osnovno postavljanje CentOS je gotov, možete početi instalirati i konfigurirati glavnu funkcionalnost.

Postavljanje sistemske pošte

Za dovršetak postavljanja CentOS poslužitelja, pobrinimo se da se pošta upućena lokalnom korijenu šalje preko vanjskog poslužitelja pošte u odabrani poštanski sandučić. Ako se to ne učini, bit će lokalno prevedeno u datoteku /var/spool/mail/root. A možda ima i važnih i korisnih informacija. Konfigurirajmo ga za slanje u poštanski sandučić administratora sustava.

O tome sam detaljno govorio u zasebnom članku -. Ovdje su samo naredbe i brzo postavljanje. Instalirajte potrebne pakete:

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

Nacrtajmo nešto poput ove konfiguracije za postfix.

Cat /etc/postfix/main.cf ## DEFAULT CONFIG BEGIN ####################### 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/aliases alias_database = hash:/etc/aliases debug_peer_le vel = 2 debugg er_command = PATH =/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 sendmail_path = /usr/sbin/sendmail.postfix newaliases_path = /usr/bin / newaliases.postfix mailq_path = /usr/bin/mailq.postfix setgid_group = postdrop html_directory = no manpage_directory = /usr/share/man sample_directory = /usr/share/doc/postfix-2.10.1/samples readme_directory = /usr/share / doc/postfix-2.10.1/README_FILES ## DEFAULT CONFIG END ######################## # Naziv poslužitelja kao izlaz naredbe hostname myhostname = centos- test.xs.local # Ovdje, logično, trebate ostaviti samo domenu, ali u ovom slučaju bolje je ostaviti puno ime poslužitelja tako da polje pošiljatelja # sadrži puno ime poslužitelja, to čini praktičniji za analiziranje servisnih poruka mydomain = centos-test.xs.local mydestination = $myhostname myorigin = $mydomain # Adresa poslužitelja preko kojeg ćemo slati poštu relayhost = mailsrv.mymail.ru:25 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash :/etc/postfix/sasl_passwd smtp_sasl_security_options = neanonimni smtp _tls_security_level = može

Izrađujemo datoteku s podacima o korisničkom imenu i lozinci za autorizaciju.

# mcedit /etc/postfix/sasl_passwd mailsrv.mymail.ru:25 [e-mail zaštićen]:lozinka

Stvorite db datoteku.

# postmap /etc/postfix/sasl_passwd

Sada možete ponovno pokrenuti postfix i provjeriti radi li.

# systemctl restart postfix

Na standardni alias za root in /etc/aliases, dodajte vanjsku adresu na kojoj će se duplicirati pošta upućena rootu. Da bismo to učinili, uređujemo navedena datoteka, mijenjajući zadnji redak.

#korijen: marc

Korijen: korijen, [e-mail zaštićen]

Ažuriranje baze certifikata:

#novizapisi

Pošaljimo pismo putem konzole lokalnom korijenu:

# df -h | mail -s "Upotreba diska" root

Pismo treba ići u vanjski poštanski sandučić. Ako koristite poštanski sandučić iz Yandexa, najvjerojatnije ćete dobiti pogrešku u dnevniku poslužitelja e-pošte i pismo neće biti poslano.

Relay=smtp.yandex.ru:25, delay=0.25, delays=0/0/0.24/0.01, dsn=5.7.1, status=bounced (host smtp.yandex.ru je rekao: 553 5.7.1 Adresa pošiljatelja odbijena: nije u vlasništvu auth korisnika. (kao odgovor na naredbu MAIL FROM))

Ova pogreška znači da vaš pošiljatelj e-pošte nije isti poštanski sandučić koji koristite za autorizaciju. Reći ću vam kako to popraviti u zasebnom članku -. S drugim sustavima pošte gdje nema takve provjere, sve bi trebalo biti u redu kako jest.

Ovo dovršava postavljanje lokalne pošte. Sada će sva pisma upućena lokalnom korijenu, na primjer, izvješća crona, biti duplicirana u vanjski poštanski sandučić i poslana putem punopravnog poslužitelja pošte. Tako će pisma biti isporučena normalno, bez da završe u spamu (iako ne nužno, postoje i heuristički filteri).

Zaključak

Prošli smo kroz neke početne korake za postavljanje CentOS poslužitelja, što je ono što obično radim kada pripremam poslužitelj odmah nakon instalacije. Ne pretvaram se da sam apsolutna istina; možda nešto propuštam ili radim nešto što nije sasvim ispravno. Bit će mi drago razumnim i smislenim komentarima i prijedlozima.

..
  • Razumijevanje specifičnosti postavljanja, konfiguriranja i održavanja mreža izgrađenih na Linuxu.
  • Sposobnost brzog rješavanja novonastalih problema i osiguravanja stabilnog i nesmetanog rada sustava.
  • Testirajte se na prijemnom ispitu i pogledajte program za više detalja.